Docs › Installation

🚀 Installation

5-minute self-host setup. Works on Mac mini, NAS, Linux server, or any Docker host.

Requirements

If you want to expose the dashboard to the public internet, also: Cloudflare Tunnel (free, easiest) OR an SSL reverse proxy.

One-line install

curl -fsSL https://raw.githubusercontent.com/Scarif-One/scarif-one/main/scripts/install.sh | bash

This:

  1. Verifies Docker is installed
  2. Creates ~/scarif-one/
  3. Downloads docker-compose.yml + .env.example
  4. Prompts for your GEMINI_API_KEY
  5. Pulls the image from GHCR + starts the container
  6. Tells you when http://localhost:3000 is ready

Manual install

If you don't want to pipe a script to bash, do it yourself:

mkdir scarif-one && cd scarif-one

curl -fsSL https://raw.githubusercontent.com/Scarif-One/scarif-one/main/docker-compose.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/Scarif-One/scarif-one/main/.env.example -o .env.local

# Edit .env.local — at minimum set GEMINI_API_KEY
nano .env.local

docker compose up -d

First run

  1. Open http://localhost:3000
  2. The first-run wizard auto-launches
  3. 5 steps: business info → AI brand voice scan → locale → integrations → admin login
  4. Total time: ~10 minutes
  5. Wizard finish → land on the dashboard already logged in

Auto-updates

Optional. Adds a Watchtower container that polls GHCR every 24h:

cd ~/scarif-one
docker compose --profile auto-update up -d

To pin a specific version (skip auto-updates):

SCARIF_VERSION=v0.2.0 docker compose up -d

Exposing to the internet (optional)

The simplest path: Cloudflare Tunnel.

  1. Sign up at cloudflare.com + add your domain
  2. Cloudflare Zero Trust → Networks → Tunnels → Create tunnel
  3. Run the cloudflared install command Cloudflare gives you
  4. Map your subdomain to localhost:3000
  5. Done — your dashboard is accessible at e.g. scarif.yourdomain.com

Cloudflare handles the SSL + DDoS protection automatically. Free.

Backups

Set SCARIF_BACKUP_DIR in .env.local to enable nightly tarball backups at 04:00:

SCARIF_BACKUP_DIR=/path/to/backups

Manual backup any time: POST /api/admin/backup-now with SCARIF_SUPERADMIN_TOKEN.

S3-compatible (R2, B2, AWS) backup support is on the v1.5 roadmap — for now, sync your SCARIF_BACKUP_DIR to S3 with rclone or similar.

Updating

cd ~/scarif-one
docker compose pull
docker compose up -d

Your tenant data persists across updates (it's in ./data).

Stuck?

Check the container logs:

cd ~/scarif-one && docker compose logs -f

Or email hello@scarifone.com with the output.