Open Source, Web-based league system designed for games such as Team Fortress 2.
- Highly configurable league system
- Full automation for regular tasks (league management/setup, etc.)
- Fine grained permission system
You will need for running:
- Ruby 2.5
- Bundler
- Postgres 9.5 (configured in
config/database.yml) - ImageMagick
You will also need for testing:
- A js runtime supported by execjs
To configure secrets (ie. steam API key) for development, run rails credentials:edit.
To run Citadel with Docker Compose:
docker compose upThis will start the Rails application on http://localhost:3000. PostgreSQL runs in a separate container and is only accessible within the Docker network for security reasons—the web container communicates with it through the internal Docker network.
The production Docker image uses Puma as the application server. Puma's behavior and logging can be controlled through environment variables:
RAILS_MAX_THREADS- The minimum and maximum number of threads in the thread pool (default: 5)WEB_CONCURRENCY- The number of Puma worker processes to fork in clustered mode (default: 2)RAILS_LOG_LEVEL- The log level for Rails logging (default: info). Valid values are:debug,info,warn,error,fatal
By default, the application is only accessible on localhost (127.0.0.1). To expose the application to external network interfaces, remove the 127.0.0.1 binding from the port configuration in docker-compose.yml.
If you're running Citadel in HTTP mode behind a reverse proxy that handles TLS, set config.force_ssl = false in config/environments/production.rb.
Here are some specific install instructions for operating systems/distributions.
Use either RVM or rbenv to install Ruby 2.3.3.
Install postgres with:
sudo apt install postgresqlThen install all native dependencies required to install this project's gems:
sudo apt install libpq-dev imagemagickThen install this project's gems:
bundle installOr alternatively, if you don't want any of the test/development dependencies:
bundle install --without test developmentIf you're planning on running the test suite, you will also need to install a js runtime. Install nodejs like this:
sudo apt install nodejsThis project uses rspec, rubocop, haml-lint and rails-best-practices for
testing and linting.
To set up the database for testing, run: rake parallel:setup.
All of these can be run in one command with rake:
rake
# or
rake test