60 lines
2.7 KiB
Markdown
60 lines
2.7 KiB
Markdown
# 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)**.
|
|
|
|
### Run with Docker
|
|
|
|
```sh
|
|
cp docker.env.example docker.env # fill in PUBLIC_URL, JWT_SECRET and SMTP_*
|
|
docker compose pull
|
|
docker compose up -d # http://localhost:8080
|
|
```
|
|
|
|
Upgrade with `docker compose pull && docker compose up -d`. The image is `git.floriansylvain.fr/fsylvain/renewcms`. Every release is a pre-release for now, so the default tag is the moving `beta`. Pin a version with `RENEWCMS_IMAGE`. Tags, building from source and publishing are in **[docs/docker.md](docs/docker.md)**.
|
|
|
|
### Updates from the browser
|
|
|
|
On Linux with systemd, install v2.6.0-beta or newer manually, then follow [the browser-update setup guide](docs/deployment.md#browser-updates). It covers finding the actual database directory, installing the helper, testing a restart and troubleshooting. Other platforms use manual upgrades.
|
|
|
|
### 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/docker.md](docs/docker.md) | Running RenewCMS in Docker: image, Compose, data volume, backups, reverse proxy, tags, upgrades, publishing |
|
|
| [docs/configuration.md](docs/configuration.md) | Every environment variable |
|
|
| [docs/architecture.md](docs/architecture.md) | Backend layering and how the SPA is embedded |
|
|
| [docs/performance.md](docs/performance.md) | Measured costs, such as the `?seo=` article filter |
|
|
| [docs/api.md](docs/api.md) | API reference: authentication, API keys, routes and the activity log |
|
|
| [docs/api/articles.md](docs/api/articles.md) | Reading articles: pagination, search, `format` and body schemas |
|
|
| [docs/image-variants.md](docs/image-variants.md) | Image variants and their cache |
|
|
| [docs/release-notes.md](docs/release-notes.md) | Release notes format, the published releases and how to publish one |
|
|
|
|
## TODOs
|
|
|
|
- Cancel button when email validation pending or expired
|