Skip to content

ozfortress/citadel

Repository files navigation

Citadel

Build Status codecov Code Climate

Open Source, Web-based league system designed for games such as Team Fortress 2.

Goals

  • Highly configurable league system
  • Full automation for regular tasks (league management/setup, etc.)
  • Fine grained permission system

Dependencies

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.

Docker

To run Citadel with Docker Compose:

docker compose up

This 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.

Production Image

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.

Installing

Here are some specific install instructions for operating systems/distributions.

Ubuntu

Use either RVM or rbenv to install Ruby 2.3.3.

Install postgres with:

sudo apt install postgresql

Then install all native dependencies required to install this project's gems:

sudo apt install libpq-dev imagemagick

Then install this project's gems:

bundle install

Or alternatively, if you don't want any of the test/development dependencies:

bundle install --without test development

If you're planning on running the test suite, you will also need to install a js runtime. Install nodejs like this:

sudo apt install nodejs

Tests

This 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

About

esports league framework by ozfortress.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10