Skip to content

ekeeya/jasmin-web-gui

Repository files navigation

☕ Joyce: Django GUI for Jasmin SMS Gateway

Tired of fiddling with jcli? Joyce is a friendly Django interface that lets you manage Jasmin SMS Gateway using its powerful Perspective Broker API. Send SMS, create groups, add users, and more — all through a clean UI.


🎯 Purpose

Jasmin allows managing SMS routing via CLI (jcli) or the more developer-friendly Perspective Broker API. Joyce uses the PB API to offer:

  • Group management
  • User management
  • Route configuration
  • And more...
  • No more telnet, no more jcli

🔌 Integration with Jasmin

This Django application uses the Twisted framework to communicate with the Jasmin RouterPB service.

The integration relies on a custom service layer that uses Twisted’s asynchronous Perspective Broker client to interact with the running Jasmin service.

🛠 Setup Guide

This project uses Poetry for dependency management and includes Docker support for consistent local environments.

Requirements

  • Python 3.11+
  • Poetry
  • Docker (optional but recommended)
  • Jasmin SMS Gateway (via Docker or manual installation)

Step-by-step (Local)

  1. Clone the project:

    git clone https://github.com/ekeeya/jasmin-web-gui.git 
    cd jasmin-web-gui
  2. Create and activate virtual environment:

    python3.11 -m venv venv
    source venv/bin/activate

    Optionally install poetry in the ven if you do not have it globally using pip

    pip install poerty
  3. Install dependencies:

    poetry install
  4. Apply migrations:

    python manage.py migrate
  5. Start server:

    python manage.py runserver

🐳 Running Services Docker

We recommend using Docker for local dev environments. The full Docker setup is defined in docker-compose.yml. In production you may want to add your django service to docker-compose.yml but in dev, you may want to run the django project in an IDE that allows debugging. That is why we have excluded (commented it out by default)

📦 What's Included

This project is a complete, containerized environment for Jasmin and supporting services:

  • A Django web GUI for Jasmin (disabled in docker by default as explained above )
  • Redis (for caching and Celery results)
  • RabbitMQ (as Celery broker)
  • Jasmin SMS Gateway
  • Jasmin REST API container (served via twistd + WSGI)
  • A test SMPP server (smppsim) for development

To bring up the services:

docker compose up --build

🤝 Contributing

If you find this useful, feel free to fork, improve, and submit pull requests. Bug reports and feature suggestions are always welcome.


❤️ Thanks

Thanks to the amazing Jasmin team for building such a powerful and extensible SMS gateway. This project is made possible because of their work.


☕ Buy Me a Coffee on Crypto

If this project helped you avoid hours of pain, consider showing some love, unfortunately we only have crypto:

BTC Wallet: 13it3P99sbMrtobij7S9ecJbE6jTciUw7E

ETH Wallet: 0xA83a39024BEd22ebcE2e64c8D28b541140A9d18d

Every sip counts and boosts moral!


📬 Contact

Want to get in touch?

For business inquiries, feel free to reach out any time.

About

Joyce allows you web GUI control Jasmin SMS gateway

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published