Configuration

The PCS’s main settings file1 and Flower settings file2 can be modified directly or with values specified through the use of environment variables. Environment variable values may be passed directly or as the contents of a file. In the latter case, the full path of the file should be passed as a variable’s value. Environment variable values may be stored and passed as Docker Secrets.

Default Values

Many of the default values used in the PCS’s configuration files are designed for a Docker deployment similar to the examples in the Docker Deployment section of this documentation.

Notation

(D) debug mode DEBUG=True
(P) production mode DEBUG=False


Django

The following variables, located in the main settings file1, map to various Django settings. A link to the relevant Django documentation is provided for each variable.

General

Variable Default Description
SECRET_KEY a long string3 Docs
DEBUG False Docs
ALLOWED_HOSTS [] Docs
TIME_ZONE America/New_York Docs

Cache

Variable Default Description
CACHE_LOCATION redis://redis:6379/0 Docs
CACHE_TIMEOUT (D) 0
(P) 300
Docs

Database

Variable Default Description
SQL_HOST mariadb Docs
SQL_PORT 3306 Docs
SQL_DATABASE contestsuite Docs
SQL_USER contestadmin Docs
SQL_PASSWORD seminoles1! Docs
SQL_TIMEZONE America/New_York Docs

Email

Variable Default Description
EMAIL_BACKEND (D) django.core.mail.backends.console.EmailBackend
(P) django.core.mail.backends.smtp.EmailBackend
Docs
EMAIL_HOST None Docs
EMAIL_PORT 587 Docs
EMAIL_HOST_USER None Docs
EMAIL_HOST_PASSWORD None Docs
EMAIL_USE_SSL False Docs
EMAIL_USE_TLS False Docs
DEFAULT_FROM_EMAIL acm@cs.fsu.edu Docs

Celery

The following variables, located in the main settings file1, map to various Celery settings. A link to the relevant Celery documentation is provided for each variable.

Variable Default Description
CELERY_BROKER amqp://rabbitmq:5672 Docs
CELERY_BACKEND redis://redis:6379/1 Docs
CELERY_TIMEZONE America/New_York Docs

Celery Beat

The following variables, located in the main settings file1, map to various Celery Beat settings. A link to the relevant Celery Beat documentation is provided for each variable.

Variable Default Description
CELERY_BEAT_SCHEDULE {'cleanup-lfg-rosters': {'task': 'lfg.tasks.cleanup_lfg_rosters', 'schedule': 600.0,}, 'scrape-discord-members': {'task': 'lfg.tasks.scrape_discord_members', 'schedule': 1800.0,}, 'verify-lfg-profiles': { 'task': 'lfg.tasks.verify_lfg_profiles', 'schedule': 600.0,},} Docs

Flower

The following variables, located in the Flower settings file2, map to various Flower settings. A link to the relevant Flower documentation is provided for each variable.

Variable Default Description
FLOWER_BROKER_API http://rabbitmq:15672/api/vhost Docs
FLOWER_USER (P) contestadmin Docs
FLOWER_PASSWORD (P) seminoles1! Docs
FLOWER_COOKIE_KEY (P) None Docs
FLOWER_URL_PREFIX (P) flower Docs

Discord

The following variables, located in the main settings file1, map to various PCS specific settings required for integration with Discord.

Variable Default Description
ANNOUNCEMENT_WEBHOOK_URL None URL of Discord server’s announcement channel webhook
BOT_CHANNEL_WEBHOOK_URL None URL of Discord server’s bot command channel webhook
GUILD_ID 0 Discord server’s Guid ID
SCRAPE_BOT_TOKEN None Discord bot token required by the LFG helper bot

Misc

The following variables, located in the main settings file1, map to miscellaneous PCS specific settings. A link to relevant documentation is provided for each variable.

Variable Default Description
DOMJUDGE_URL https://domjudge.cs.fsu.edu/public Full URL of the DOMjudge server. Used for PCS homepage contest server status card.
PCS_DOCS_URL https://mmcinnestaylor.github.io/Programming-Contest-Suite Base URL of the project’s documentation website. Used to link registration guide and other manuals.
HASHID_FIELD_SALT a long string4 Docs The django-hashid-field library is used to hash sensitive PCS database model fields.
GTAG None Google Analytics site tag
  1. Programming-Contest-Suite/src/contestsuite/settings.py  2 3 4 5 6

  2. Programming-Contest-Suite/src/contestsuite/flowerconfig.py  2

  3. 86@j2=z!=&1r_hoqboog1#*mb$jx=9mf0uw#hrs@lw&7m34sqz 

  4. 0s97rx*t4%68jell&lw3^)97o*kr*+*2o^(76q)ix+ilc!4ax#