Currently running at: marvin.st-andrews.ac.uk on port 80.
The StABDMIN site was born of the need of a way to track the users on marvin, the PIs they're associated with, the funded and unfunded grants they hold and the data they use.
It was written by Joe in about 2 weeks in 2019 and he apologises sincerely for the lack of comments in the code, and absence of tests. It's still a damn site better than what was there before (i.e. nothing).
Keeping it running
The database is called StABDMIN, the database user is StABDMIN and the password is stored in /etc/mysql/stabdmin.cnf.
The code for the project is in /storage/home/users/StABDMIN. The site is set to store static files (css, js etc) in /var/www/StABDMIN/.
Currently static files are being server using the python package "whitenoise", but this ought to be done with nginx or apache in the long run. It's also not served over https currently as marvin can't cope with a modern apache (mod_wsgi was compiled with python 2.6).
Restarting the server
- To start the webserver navigate to /storage/home/users/StABDMIN/StABDMIN
- run module load python/3.6.4
- run sh run_webserver.sh
And this will run gunicorn using
gunicorn StABDMIN.wsgi:application --pid StABDMIN.pid -b marvin.st-andrews.ac.uk:80 -n StABDMIN -D
You can stop it with the process id in StABDMIN.pid file, and/or by using pkill gunicorn
Importing data into the backend
The script /storage/home/users/StABDMIN/StABDMIN/importUsageFromFiles.py is set into cron to run everyday at 5.05am. It relies on the result of the /mnt/system_usage/ scripts written by Peter Thorpe. It loads the data from the files created by this script into the system for tracking user data usage and total disk use/free space.
module load python/3.6.4 python3 importUsageFromFiles.py
will load the data in manually.
To add users/PIs/Grants, you need to use the ADMIN site, access from the "Admin" link on the navigation bar of the website.
If a new PI has a new Users and a new Grant, the PI must be created first.
If a new bioinformatician joins, assign them the PI "StABU" and add them to the bioinformatician table. This allows tracking of their use within the StABU PI, and also allows them to be assigned as primary bioinformaticians on grants.
How it works
There are 5 tables in the database directly used by django.
Pis stores all the PI information. GrantSubmissions stores the grants information, whether it's proposals, expired, or funded. Users stores the information on users. help notes stores notes on help given, meaning we can track what we've done for people. These can be assigned to users, PIs and/or grants. Bioinformaticians is a way of highlighting user instances as bioinformaticians so we can assign them to grants.