Three ways to install
Rosco is one application with three processes (the API, a background worker and the web app) and one PostgreSQL database. No Redis, message broker or object store.
Docker Compose
A Linux host with Docker Engine 24 or later, a DNS name and ports 80 and 443. Caddy handles TLS: its own certificate authority for offline use, Let's Encrypt, or your own certificate.
sudo mkdir -p /opt/rosco && cd /opt/rosco
sudo cp .env.example .env && sudo chmod 600 .env
sudo nano .env
sudo docker compose up -d
The containers run as an unprivileged user with a read-only root filesystem and no Linux capabilities.
Without internet access
An air-gapped bundle for each release with the Rosco, PostgreSQL and Caddy images, the compose files, an installer and checksums. Nothing is fetched.
sha256sum -c rosco-<version>-airgap-amd64.tar.sha256
tar -xf rosco-<version>-airgap-amd64.tar
sudo ./install.sh /opt/rosco
sudo docker compose up -d --pull never
Upgrades run the new bundle's installer, which keeps your settings.
deb and rpm packages
For Ubuntu 22.04 and 24.04, Debian 12, and RHEL, Rocky and Alma Linux 9, on amd64 and arm64. The packages bring their own Node.js runtime and run as systemd services, with logs in journald.
sudo apt install ./rosco_<version>_amd64.deb
sudo nano /etc/rosco/rosco.env
sudo systemctl enable --now rosco.target
Samples for nginx, Apache and Caddy are included.