The Ubersystem Project is a web app written in Python and designed for high customization to suit any event's needs. It's aimed largely at fandom events and can track things like registration, events, staffers, groups, dealers, jobs, game checkouts, etc.
This app was originally developed by MAGFest as their internal registration system, named Ubersystem, and is now open source and available for anyone to use. Eternal thanks to Eli Courtwright for tirelessly developing Ubersystem for over ten years.
Ubersystem is a single-tenant, single-event system. You must deploy an instance of Ubersystem for each event that you host.
Ubersystem uses configuration files and a plugin mechanism to support customization. Most events end up creating a plugin with their theming, custom business logic, and other bespoke needs. See magprime for a fully-fledged event plugin with many customizations.
Ubersystem has many names! You may hear reference to RAMS (Registration And Management System), Reggie, Uber, and Ubersystem. These names are all used to refer both to the code in this repository as well as individual events' instantiations of Ubersystem with their own modifications.
Most developers choose to use docker compose to deploy their local instances.
The docker-compose.yml file in the root of this repo will provision a barebones Ubersystem server with a cherrypy web worker, celery task runner and scheduler, rabbitmq message broker, and postgresql database.
Additionally, it will mount the repository directory into the containers at /app/plugins/uber
so that code changes will
immediately be available inside the containers.
To install Ubersystem using docker compose do the following:
git clone https://github.com/magfest/ubersystem.git
cd ubersystem
docker compose up
At this point you should see the containers starting up. After everything has launched you can connect to uber by going to: http://localhost/.
On first startup you can create an admin user by navigating to http://localhost/accounts/insert_test_admin.
After doing this you can log in using magfest@example.com
as a username and magfest
as a password.
Now that you have a working instance you can look at the configuration guide to start customizing your instance or check out the sample event plugin to dive deeper into making Ubersystem your own.
:exclamation: If you didn't get a working instance check out the troubleshooting guide. |
---|
There are many ways to successfully deploy an Ubersystem instance. Currently, MAGFest is using Amazon ECS deployed using this Terraform code. Other groups use Docker Compose for their production instances.
For large deployments we provide a helm chart for deploying Ubersystem on Kubernetes.
After installing Ubersystem, please refer to the Stripe instructions to set up immediate payment processing.
Here are some quick reference notes on common PostgreSQL tasks.