# Selflify > Free and open source self-hosted preview deploy control panel for static SPA sites. Canonical URL: https://selflify.github.io/ ## Summary Selflify is a self-hosted control panel for teams that run static SPA previews on their own server. It manages file-backed stable and preview deploys, generated Caddy routing, Cloudflare DNS records, preview authentication, runtime backups and cleanup flows without introducing a separate deploy database. The project is MIT licensed and the source code lives at https://github.com/Selflify/Selflify ## Key facts - Stable site URLs look like `app.example.dev` - Preview site URLs look like `pr-6825.app.example.dev` - Deploy directories live under `/var/www//` - Runtime state lives in `runtime/selflify.config.json` - Caddy handles routing and zero-downtime reloads - Cloudflare is used for DNS automation, typically in DNS-only mode - Preview credentials are hashed through `caddy hash-password` ## Core sections - Landing: https://selflify.github.io/ - Bootstrap: https://selflify.github.io/#bootstrap - Workflow: https://selflify.github.io/#workflow - DNS stack: https://selflify.github.io/#dns-stack - Environment: https://selflify.github.io/#environment - Integrations: https://selflify.github.io/#integrations ## Bootstrap model Selflify ships with a one-line installer published from the main GitHub repository. It can: - install Docker Engine - install the Docker Compose plugin - download and unpack the Selflify bundle - seed `.env`, runtime config and Caddy config - start the stack with `docker compose up -d --build` After bootstrap, the first UI session is used to create the account, enter the main domain, server IP, Caddy contact email and provide the Cloudflare API token. ## Integration model Selflify supports two practical integration styles: - GitHub-native preview deploy workflows with reusable `Selflify/*` actions - generic CLI-based uploads with plain SSH and `rsync` ## Runtime model Selflify is intentionally literal: - the UI reads real deploy folders from disk - the web server config is generated from app state - the DNS adapter updates stable and wildcard records for each site - cleanup jobs remove stale preview deploys and orphaned site folders ## Best queries Useful search intents this page answers well: - self-hosted preview deploys - netlify alternative for static spa previews - caddy cloudflare preview routing - filesystem-backed deploy preview control panel - self-hosted caddy preview auth dashboard