SiroPing
Open App
Community · Pro · Business

Installation

Install SiroPing on Ubuntu from a clean server to first monitor and Doctor HEALTHY in about 10–15 minutes.

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
# put the release (or git checkout) in /opt/siroping, then:
cd /opt/siroping
sudo ./deploy/install.sh

The installer handles everything:

  • Creates the siroping system user and the Python venv
  • Installs dependencies and Playwright Chromium (for login-form checks)
  • Generates .env with a fresh SECRET_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
warning

MySQL and MariaDB both use port 3306 and override each other's systemd unit —

install **only one** of them per server.

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.

Was this page helpful?