Skip to content

alfg/guildbit

master
Switch branches/tags
Code

GuildBit.com

Free Mumble Hosting

Guildbit.com

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.

https://guildbit.com

Screenshots

Guildbit.com Home Guildbit.com Server

Technology Stack

Development

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

Requirements

Please note 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
    

Docker

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 | [1] [INFO] Starting gunicorn 19.5.0
guildbit_1 | [1] [INFO] Listening at: http://0.0.0.0:8081 (1)
guildbit_1 | [1] [INFO] Using worker: sync
guildbit_1 | [9] [INFO] Booting worker with pid: 9

Or run 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.

Load http://localhost:8081 in your browser.

See Configuring Hosts on the wiki for next steps on setting up Hosts to start deploying Mumble servers.

Admin

See: Activating Admin

Translations

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.

Resources

License

MIT License © Alfred Gutierrez