Free Mumble Hosting
GuildBit is a full-stack application written in Python to offer temporary virtual Mumble servers to users. Guildbit depends on murmur-rest API backend to interface with the virtual Mumble servers.
- Flask - Python Framework
- Flask-SQLAlchemy - PostgreSQL/SQLite ORM
- Celery - Message Queue for scheduling Mumble Server tasks
- Redis - Cache backend and message broker for Celery
- Python-requests - HTTP requests to murmur-rest API
- Murmur-rest - Murmur HTTP API
It is highly recommended to use Docker to setup your environment. A
docker-compose.yml is provided as a typical setup for the following services:
- Guildbit App
- Celery - Task scheduler.
- Flower - Celery Dashboard UI
- NGINX - optional reverse proxy
- Redis Server - key/value storage for caching and message broker
- murmur-rest - Murmur HTTP API
- murmurd - Mumble Server
If using Docker, scroll down to Docker Setup
murmur-rest MUST be setup in order to deploy virtual Mumble servers. However, it is possible to work on the Guildbit app without murmur-rest, you just won't be able to deploy or administer any Mumble servers.
$ git clone https://github.com/alfg/guildbit $ virtualenv env --system-site-packages $ . env/bin/activate $ pip install -r requirements.txt $ export FLASK_ENV=development $ export FLASK_RUN_HOST=0.0.0.0 $ export FLASK_RUN_PORT=5000 $ flask run * Running on http://0.0.0.0:5000/ * Restarting with reloader
- Database and schema will automatically be created via Flask-Migrate.
- Development server is running with default settings. See Configuration Guide for additional configuration options.
- Run celery in a separate process (but in the same python environment) to start the messaging queue:
$ celery worker --app=app.tasks -l info
A Dockerfile and
docker-compose.yml is provided for setting up a local development server. This will startup and link all services needed to run Guildbit:
$ docker-compose build $ docker-compose up Starting guildbit_redis_1 ... done Starting guildbit_murmurd_1 ... done Starting guildbit_db_1 ... done Starting guildbit_flower_1 ... done Starting guildbit_murmur-rest_1 ... done Starting guildbit_guildbit_1 ... done Starting guildbit_guildbit-tasks_1 ... done Starting guildbit_nginx_1 ... done guildbit_1 |  [INFO] Starting gunicorn 19.5.0 guildbit_1 |  [INFO] Listening at: http://0.0.0.0:8081 (1) guildbit_1 |  [INFO] Using worker: sync guildbit_1 |  [INFO] Booting worker with pid: 9
flask run via Docker for active devleopment with a local volume mounted:
λ docker-compose run --service-ports guildbit bash Starting guildbit_db_1 ... done Starting guildbit_redis_1 ... done Starting guildbit_murmurd_1 ... done Starting guildbit_murmur-rest_1 ... done Creating guildbit_guildbit_run ... done root@dbf0add00eec:/opt/guildbit# . venv/bin/activate (venv) root@dbf0add00eec:/opt/guildbit# flask run * Serving Flask app "app" (lazy loading) * Environment: development * Debug mode: on * Running on http://0.0.0.0:8081/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 212-673-348
The database schema should automatically be created and ready for use.
http://localhost:8081 in your browser.
See Configuring Hosts on the wiki for next steps on setting up Hosts to start deploying Mumble servers.
See: Activating Admin
Translations are welcome. To add or update a translation, please add a file or update a file in https://github.com/alfg/guildbit/tree/master/app/translations. For more information, please read the wiki.
MIT License © Alfred Gutierrez