Sisyphus / status

Self-healing personal infrastructure — Flatcar, Docker, Caddy, AI SRE Agent

Oh My Ondas
Checking…
Marta Smaldone
Checking…
Fluid Reliability
Checking…
Maestro
Checking…
Apapacho
Checking…
Oh My Sax
Checking…
Jaco Sales Assistant
Checking…
SRE Agent Mode
loading…

Hosted Sites

ProjectTypeDomain
Oh My Ondas Web Audio / GPS app ohmyondas2.levm.eu
Marta Smaldone Portfolio (Astro) portfolio.martasmaldone.com
Fluid Reliability Professional framework (Jekyll) fluid-reliability2.levm.eu
Sisyphus Dashboard (this page) sisyphus.levm.eu
Maestro AI Tutoring (Next.js) maestro.levm.eu
Apapacho Marta's business (Vite+React) apapacho.martasmaldone.com
Oh My Sax Music ohmysax.levm.eu
Jaco Sales Assistant AI sales assistant (Next.js) jaco-sales-assistant.levm.eu

Architecture

Host OS
Flatcar Container Linux
Runtime
Docker
Orchestration
docker-compose
Reverse Proxy
Caddy v2 (auto-HTTPS)
Networking
Headscale (zero-trust mesh)
Security
CrowdSec + Headscale ACLs
Monitoring
Python SRE Agent + Claude API
Backups
restic → Hetzner Storage Box
Secrets
.env files (not in git)
Provisioning
Bash + Butane/Ignition

SRE Agent →

Lightweight self-healing daemon. Polls every 60s, detects anomalies, remediates automatically. Claude Haiku provides root-cause analysis for correlated failures, capped at €5/month.

Operating Modes

off
Heartbeat only, no monitoring.
€0/mo
observe
Monitor + alert + light remediation.
€0/mo
diagnose
Observe + AI root-cause analysis.
~€0.01–0.05/incident
auto
Full closed loop: detect → diagnose → remediate → verify.
~€0.02–0.10/incident

Automated Remediations

TriggerActionMin. Mode
Container unhealthy >2minRestart (3/hr limit)observe
Disk >85%Light pruneobserve
Disk >90%Full prune + log cleanupdiagnose
Memory >90%Restart heaviest containerauto
TLS cert <7 daysAlert (Caddy auto-renews)observe
Backup stale >26hAlertobserve
Correlated failures (≥2)Claude AI diagnosisdiagnose

Service Level Objectives

MetricTargetWindow
Site availability (non-5xx)99.5%Rolling 24h
Latency p95<500msRolling 1h
Disk usage<85%Point-in-time
Memory usage<90%Rolling 5min
CPU sustained<95%Rolling 5min
Daily backup100%Daily
TLS cert expiry>7 daysDaily check
Container health100%Rolling 1min

How to Host a Site in Sisyphus

You don't need to know anything about infrastructure. You work on your site, Sisyphus handles the rest.

What you need

Your workflow

  1. Clone your repo and open it with Claude Code
  2. Work on your site — edit HTML, CSS, images, whatever you need. Ask Claude to help you build pages, fix styles, add content.
  3. Preview locally — open your index.html in a browser to check it looks right
  4. Commit & push — when you're happy, commit your changes and push to GitHub. Claude can do this for you.
  5. Done. Sisyphus picks up the changes automatically, runs security and sanitation checks, and pushes your site live.

That's it

You never touch servers, config files, or infrastructure. You just work on your site and push. If something goes wrong, the SRE Agent catches it before it reaches production.

App projects (Next.js, etc.)

Projects with a backend run as their own container behind Caddy. Deploys are fully automated: push to main → CI builds image → VPS pulls and restarts.

Onboarding a new app (one-time, done by infra operator)

  1. Dockerfile — must exist in the project repo (multi-stage, alpine, non-root user)
  2. Sisyphus config — add the service to docker-compose.yml with build: context, a Caddy reverse proxy block, and a Consul project entry
  3. Secrets — generate a deploy secret (openssl rand -hex 32), set it on the VPS as DEPLOY_SECRET_<PROJECT>
  4. Env vars — place .env.local on the VPS (API keys, database URLs — never in git)

Your workflow (after onboarding)

  1. Work on your code — develop, test locally
  2. Push to main — that's it
  3. Deploy webhook triggers: VPS pulls source, builds Docker image, restarts container
  4. Health check confirms it's up. If unhealthy, auto-rollback to previous version.

You never SSH into the VPS, run docker commands, or touch infrastructure. You just push code.

Roadmap

ItemStatusNotes
Deploy webhooks + CI pipelines Done Static sites: GitHub Actions builds to gh-pages branch, VPS pulls. App projects: source built on VPS via HMAC-signed webhook.
Consul-Template Planned Auto-generate Caddyfile and docker-compose service blocks from Consul catalog. Add a project to Consul → config files update automatically.

Design Priorities

  1. Don't distract from the projects. Infrastructure must be boring once running.
  2. Serve the sites reliably. Real people depend on these sites.
  3. Testbed for future career. Relevant tech: AI ops, containers, immutable OS, zero-trust.
  4. Test cutting-edge technology. Be novel in layers touched daily, boring in plumbing.
Be cutting-edge where it teaches you something transferable. Be boring where it just needs to work.

Monthly Cost

ItemCost
Hetzner CX22 (2 vCPU, 4 GB)€4.00
Hetzner Storage Box 1 TB€3.50
Cloudflare DNS€0.00
Domains (amortized)~€3.00
Anthropic API (capped)€5.00 max
Total€15.50 max