Wiki home ยท prompt-a-thon.bitilia.com
Production install is for Ubuntu or Debian with systemd. The installer is setup.py. It is not a setuptools package.
When run as root, setup.py:
promptathon and promptathon-convert/opt/prompt-a-thon (change with --install-dir)/opt/prompt-a-thon/.env with a new SECRET_KEY and mode 0600requirements.txtprompt-a-thon.service โ Gunicorn on 127.0.0.1:8100prompt-a-thon-convert.service โ DOCX to PDF daemonprompt-a-thon-jobs.timer โ maintenance every 15 minutesIt does not obtain a TLS certificate. Put Caddy or nginx in front of port 8100. Examples are in deploy/.
sudo python3 setup.py
sudo python3 setup.py --yes \
--domain competition.example.edu \
--admin-email [email protected] \
--app-name "prompt-a-thon" \
--college-name "Example College" \
--mail-provider smtp \
--smtp-host smtp.example.edu \
--smtp-user [email protected] \
--smtp-password 'replace-me'
--mail-provider accepts smtp, brevo_api, ses_api, or postfix.
python3 setup.py --dev creates a virtualenv in the checkout, writes .env if missing, and initialises the database. It does not need root and does not install systemd units. On Windows the virtualenv executables are under venv\Scripts\.
LibreOffice must be installed separately if you want DOCX conversion. PDF uploads do not need it. The conversion daemon listens on a Unix socket, which is the production path on Linux.
127.0.0.1:8100 and terminate TLS there.Do not publish port 8100. The app trusts the number of proxy hops in PROXY_FIX_X_FOR, PROXY_FIX_X_PROTO, and PROXY_FIX_X_HOST (default 1).