Deployment Guide

Suture Platform is a single static binary. Deploy it anywhere.

Quick Start (Binary)

JWT_SECRET=$(openssl rand -hex 32) ./suture-platform --addr 0.0.0.0:8080

Docker / Podman

docker run -d \
  --name suture \
  -p 8080:8080 \
  -e JWT_SECRET=$(openssl rand -hex 32) \
  -v suture-data:/data \
  ghcr.io/wyattau/suture-platform:latest

Docker Compose

JWT_SECRET=$(openssl rand -hex 32) docker compose up -d

Kubernetes (k3s, k8s, EKS, GKE, AKS)

kubectl apply -f k8s/
kubectl create secret generic suture-secrets \
  --from-literal=jwt-secret=$(openssl rand -hex 32)

Terraform (Docker, Podman, Firecracker)

cd infra/terraform
terraform init
terraform apply -var='jwt_secret=YOUR_SECRET'

Systemd (Bare Metal / VPS)

sudo JWT_SECRET=$(openssl rand -hex 32) ./suture-platform --addr 0.0.0.0:8080
# Or use the service installer:
sudo ./scripts/install-systemd.sh

Nix

nix run github:WyattAu/suture

Environment Variables

VariableRequiredDescription JWT_SECRETYesJWT signing secret (min 32 chars) STRIPE_KEYNoStripe API key STRIPE_WEBHOOK_SECRETNoStripe webhook signing secret PLATFORM_URLNoPublic URL for CORS RUST_LOGNoLog level (default: info) CORS_ORIGINSNoComma-separated allowed origins