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