Skip to content

Quick Start

Pull the Image

docker pull ghcr.io/charliek/folio:latest

Run Locally

docker run -p 8080:8080 \
  -e GCS_BUCKET=your-bucket \
  -e LOGIN_PASSWORD=your-password \
  -e COOKIE_HMAC_KEY=your-secret-key \
  -e COOKIE_SECURE=false \
  ghcr.io/charliek/folio:latest

Visit http://localhost:8080 to see the login page.

Note

Set COOKIE_SECURE=false for local HTTP development. In production behind HTTPS, leave it at the default (true).

Deploy to Cloud Run

gcloud run deploy folio-server \
  --image ghcr.io/charliek/folio:latest \
  --set-env-vars GCS_BUCKET=my-bucket \
  --set-secrets LOGIN_PASSWORD=folio-password:latest,COOKIE_HMAC_KEY=folio-hmac:latest \
  --min-instances 0 --max-instances 2 \
  --allow-unauthenticated

See the GCP Setup Guide for full provisioning instructions.

Disable Authentication

If you handle auth externally (Tailscale, VPN, Cloud Run IAP):

docker run -p 8080:8080 \
  -e GCS_BUCKET=your-bucket \
  -e AUTH_MODE=none \
  ghcr.io/charliek/folio:latest

Next Steps