Self-host Progress Watch with Docker

Your own server, on your own box. Nothing here talks to progress.watch.

Save this as docker-compose.yml. It runs the published image, so there is nothing to clone and nothing to build — and it is yours to edit from here on.

services:
  progresswatch:
    image: progresswatch/progresswatch:latest
    container_name: progresswatch
    restart: unless-stopped
    ports:
      - 7979:3000
    volumes:
      - storage:/rails/storage
    environment:
      - SECRET_KEY_BASE=replace-me-with-openssl-rand-hex-64
      - DATABASE_URL=sqlite3:storage/production.sqlite3?timeout=5000
      - REDIS_URL=redis://redis:6379
    depends_on:
      - redis

  redis:
    image: redis:8-alpine
    container_name: progresswatch-redis
    restart: unless-stopped
    command: redis-server --save "" --appendonly no

volumes:
  storage:

Generate a secret and paste it over the placeholder.

Start it. The app, a Redis, and a SQLite file on a volume.

Then point the CLI at it. This page is served from https://progress.watch.

That is a working server. Notifications, Postgres, the one thing worth putting on a cron and the one-click deploy are all in Self-hosting in the sidebar.