# RenewCMS A small self-hosted CMS: a Go API and a Vue 3 admin/front SPA, shipped as **a single executable** backed by a SQLite file. > 🚧 **Under development.** Features are incomplete, not fully tested and subject to change. ## Quick start ### Run a release binary ```sh cp .env.example .env # fill in PUBLIC_URL, JWT_SECRET and SMTP_* ./renewcms # → http://localhost:8080 ``` Data is stored in `./data/` by default. For a real server (systemd, HTTPS, backups), see **[docs/deployment.md](docs/deployment.md)**. ### Develop Requires Go 1.27+, Node.js 22, [Bun](https://bun.sh) and [Task](https://taskfile.dev). ```sh cp .env.example .env task setup task dev # API with hot reload + Vite HMR → http://localhost:5173 ``` ## Documentation | Doc | Contents | |---|---| | [docs/development.md](docs/development.md) | Dev setup, how Vite and the API fit together, tests, lint, `task` commands | | [docs/deployment.md](docs/deployment.md) | Building release binaries, running as a service, HTTPS, backups, upgrades | | [docs/configuration.md](docs/configuration.md) | Every environment variable | | [docs/architecture.md](docs/architecture.md) | Backend layering and how the SPA is embedded | ## API Usage TODO ## TODOs - Cancel button when email validation pending or expired