1. Prerequisites
- A Linux host with Docker Engine and Docker Compose v2
- Persistent storage or a NAS location for local copies
- An HTTPS hostname routed through a reverse proxy
- Network reachability to Proxmox, SMB storage, and Google APIs
- A Google OAuth client or Workspace Shared Drive service account
2. Download deployment files
Web, worker, PostgreSQL, state, and local backup volumes.
Safe template with no embedded credentials.
mkdir squishybackup && cd squishybackup
curl -O https://squishybackup.thesquishybit.co.uk/downloads/docker-compose.yml
curl -o .env https://squishybackup.thesquishybit.co.uk/downloads/env.example3. Configure and deploy
Edit .env. Set a long random PostgreSQL password and your final HTTPS URL. Never commit this file.
POSTGRES_PASSWORD=replace-with-a-long-random-password
PUBLIC_URL=https://backup.example.com
HTTP_PORT=8000
TZ=Europe/Londondocker login docker.malyon.co.uk
docker compose pull
docker compose up -d
docker compose ps
docker compose logs -f web workerOpen https://backup.example.com/setup and create the first local administrator. Per-install encryption and session keys are generated inside the persistent state volume.
4. Put HTTPS in front
Proxy the public hostname to the Docker host and HTTP_PORT. Forward the original host and scheme. Only expose the proxy publicly; keep the application port private. PUBLIC_URL must exactly match the external origin because it generates OAuth and OIDC callback URLs.
5. Configure Google Drive
Recommended: OAuth for My Drive
- Create or select a Google Cloud project and enable the Google Drive API.
- Configure the OAuth consent screen and allowed users.
- Create an OAuth client ID of type Web application.
- Add
https://backup.example.com/settings/storage/oauth/callbackas an authorised redirect URI. - Open Settings → Storage → Google Drive, enter the client ID and secret, and connect.
- Choose a writable destination using the folder browser.
Service account for a Shared Drive
- Create a service account and JSON key.
- Add its email as a member of a Workspace Shared Drive with Content manager access.
- Upload or paste the JSON key in the advanced service-account section.
- Select a writable Shared Drive folder.
6. Configure Authentik SSO
- Keep the local administrator working until SSO is tested.
- Create a confidential OAuth2/OpenID Provider in Authentik.
- Set the strict redirect URI to
https://backup.example.com/auth/callback. - Include
openid,profile, andemailscopes. - Create an application and attach the provider.
- Copy the OpenID configuration URL, client ID, and client secret.
- Enter them under Settings → Authentication, enable SSO, and save.
- Test in a private browser window before signing out locally.
OpenID configuration URL:
https://auth.example.com/application/o/squishybackup/.well-known/openid-configuration
Callback URL:
https://backup.example.com/auth/callback7. Create the first backup
- Configure cloud, local storage, or both.
- Add a Proxmox host with a scoped API token, SSH key, and verified host fingerprint—or approve an endpoint.
- Create a policy and set schedules and retention per destination.
- Run it manually and watch Recent activity.
- Confirm the archive exists at each destination.
- Perform a test restore to a non-production target.
8. Upgrade safely
docker compose pull
docker compose up -dBefore upgrades, back up PostgreSQL, the state volume, and deployment files. Archives alone do not preserve policies, users, encryption material, or history.