This is a convenience script that is used to install CMS using the Python Virtual Environment (venv) method
- Run the following command in the directory you want to install cms in
wget -O cms-install.sh https://raw.githubusercontent.com/pxsit/cms-install-script/refs/heads/main/cms-install.sh && bash cms-install.sh && rm cms-install.sh- Follow the script instructions
- Access at https://localhost:8888 https://localhost:8889 https://localhost:8890
- To use scripts like cmsAddUser please activate venv at /usr/cmsuser/cms/target/bin/activate
For ease of demonstration my websites name will be https://grader.cms.com, https://admin.cms.com, and https://leaderboard.cms.com
-
Make sure that your domain have an Active status on Cloudflare and that you have port 443,80 Forwarded
-
Go to DNS -> Records
-
Add 3 type A records with the name of each records being the name you want your subdomain to be and the IPV4 address be your server's IPV4 address and with Proxied status DNS only. If you have finished you will have something that looked like this

-
Run the following command in the directory you want to install cms in
wget -O cms-install.sh https://raw.githubusercontent.com/pxsit/cms-install-script/refs/heads/main/cms-install.sh && bash cms-install.sh && rm cms-install.sh- Follow the scripts instructions and when prompted to link you cms to a website answer Y
- Enter the subdomain of each Service, mine will be grader.cms.com, admin.cms.com, and leaderboard.cms.com respectively
- (Recommend) Add an SSL certificate using certbot
- Once certbot have finished or you decided you don't want an SSL certificate change the Proxied status to Proxied.
If your CMS only have one contest, RWS will work normally without configuration But if more than one contest is present, you need to configure RWS by editing resource-service.conf in your cms directory by changing the contest id to the contest id you want to have the RWS linked to (beware, other contest will not become accessible)
The contest id will be shown when editing a contest in the admin tab as shown in the image
After confiuration, restart the cms services by runnning the following command
sudo systemctl restart cms-log
sudo systemctl restart cms
sudo systemctl restart cms-rankingConfiguration can be done at /home/cmsuser/cms/target/etc/cms.toml
