Installation
From a clean Ubuntu server → first monitor UP and Doctor HEALTHY in ~10–15 minutes. No Django or Celery knowledge required.
Requirements
sudo apt update
sudo apt install -y python3 python3-venv redis-server
sudo systemctl enable --now redis-server
- Python 3.10+
- Redis (Celery broker — required)
- A Linux server; Ubuntu 24.04 recommended
Quick install (recommended)
# put the release (or git checkout) in /opt/siroping, then:
cd /opt/siroping
sudo ./deploy/install.sh
The installer handles everything:
- Creates the
siropingsystem user and the Python venv - Installs dependencies and Playwright Chromium (for login-form checks)
- Generates
.envwith a freshSECRET_KEY+ENCRYPTION_KEY - Runs
migrate+collectstatic - Installs the three systemd units (
siroping-web,siroping-worker,siroping-beat) - Runs Doctor
Re-running it is safe: .env is preserved and keys are not regenerated.
Databases
SQLite is the zero-config default and is fully certified. For larger installs you can use
MySQL, MariaDB or PostgreSQL — set DATABASE_URL in .env before running the installer:
# MySQL 8
DATABASE_URL=mysql://siroping:pass@127.0.0.1:3306/siroping
# MariaDB 10.11+
DATABASE_URL=mariadb://siroping:pass@127.0.0.1:3306/siroping
# PostgreSQL 16
DATABASE_URL=postgres://siroping:pass@127.0.0.1:5432/siroping
MySQL and MariaDB both use port 3306 and override each other's systemd unit —
MySQL/MariaDB use utf8mb4; backups need mysqldump; PostgreSQL needs pg_dump (Doctor warns
if the dump binary is missing).
First setup
Open https://<your-server>/setup/ → create the first admin → add a monitor. See
Quick Start.
Nginx + HTTPS
Install nginx + certbot and reverse-proxy to 127.0.0.1:8000:
server_name siroping.example.com;
location /static/ { alias /opt/siroping/staticfiles/; expires 7d; }
location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme; }
After HTTPS is up, set in .env and restart:
SESSION_COOKIE_SECURE=True
CSRF_COOKIE_SECURE=True
SECURE_SSL_REDIRECT=True
SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO|https
Open only 22/80/443 in the firewall (UFW).
Update
git pull # or replace the release
./venv/bin/pip install -r requirements.txt
python manage.py upgrade_check # preflight
python manage.py upgrade # backup → migrate → collectstatic → check → doctor
sudo systemctl restart siroping-web siroping-worker siroping-beat
python manage.py doctor
See Upgrade for details and rollback.
Uninstall / recovery
sudo systemctl disable --now siroping-web siroping-worker siroping-beat
sudo userdel siroping
sudo rm -rf /opt/siroping # CAREFUL: removes DB + backups too
Recovery: reinstall, then python manage.py restore <backup> --yes.