This is the documentation on the ''mentors.debian.net'' deployment of [[Debexpo]]. == Basics == Here are the basic facts: * ''mentors.debian.net'' is Xen VM hosted by [[https://www.wavecon.de/|wavecon]]. * The machine is mostly maintained by Baptiste Beauplat (lyknode), Mattia Rizzolo (mattia) and Paul Wise (pabs). * We run the Debexpo app through Apache2 and mod_wsgi. == Shell account(s) == * On the machine, there is one important account: ''expo''. Here are the important directories: * /home/expo/debexpo/ # The application repository, tracks the live branch * /home/expo/mentors/ # The maintenance repository * /var/spool/debexpo/ # The upload queues (ftp and http) * /var/lib/debexpo/ # The git storage and debian repository Do not make local changes. To deploy a new version, follow those steps: * Test your changes locally * Make sure to cover your code with tests * Merge and peer-review your work into live * Run the deployement script as the ''expo'' user: - /home/expo/mentors/bin/update-live.sh If you have access to the expo account, I ''think'' that will be all you need to maintain the service. If you need sudo for something, do ping the current maintainers. == configuration files == Configuration files are found into `/home/expo/debexpo/debexpo/settings`. The following files are loaded: * common.py (included in debexpo.py) * prod.py (linked as debexpo.py) * debexpo.py Make all the changes to prod.py. Additionally, two private files are used to store credentials and secret tokens. Those files are not tracked in the repository (only available locally). * redis-password * secretkey == postgresql == We use Postgres as the database for storing debexpo data. == backups == Backup are run daily via /etc/cron.d/backup, invoking /root/scripts/backup.sh. They are stored in /root/backup. Retention period is 5 days. The backup include a copy of /var/lib/debexpo/ and the database. A copy is sent to a personal server (contact Baptiste Beauplat to restore the copy). == Dependencies == We use dependencies packaged in Debian to run the application. The meta-package [[https://salsa.debian.org/mentors.debian.net-team/mentors.debian.net|mentors.debian.net]] is kept up-to date with the application requirements. A copy of the package is retained in /root/m.d.n-pkg. == Getting access == If you want access to deploy code, the process is pretty simple: * Contribute a patch to debexpo, or otherwise demonstrate that you're interested in debexpo and going to be helpful. * Ask Mattia to give you shell access. Right now, the following people have shell access: * lyknode * mapreri * pabs We also hang out on #debexpo on irc.debian.org. == Automatic test suite running with Salsa CI == On creating or merging a merge request, the Salsa CI is automatically triggered. It will check the coding style (flake8), the database migrations, the translations and run the actual test suite. Make sure everything passes before merging or deploying the code. You can see pipelines results at https://salsa.debian.org/mentors.debian.net-team/debexpo/-/pipelines.