Releases: justhasanuknow/servitor-cms
Release list
Servitor CMS 0.2.0
Backups and restores are now part of the panel.
Added
- Backups in the panel under Administration → Backups, for the founder with two-factor authentication: create backups in the background, download them, optionally encrypted with a passphrase, upload archives of any size in chunks, delete them, and restore one through a controlled restart that applies it before the database is opened.
- Scheduled backups every day or every Monday at a UTC hour. Servitor keeps a chosen number of scheduled archives and emails the founder when one fails.
decrypt-backupon the command line for archives downloaded with a passphrase.- A guide to backups and restores, also served at
/docs/backups.
Changed
- Backups leave out sessions and verification tokens, so restoring one signs everybody out; restores also remove sessions from older archives.
- Restores compare the database with the schema of its migration history and refuse archives from newer versions or with extra tables, triggers or views.
- The backup manifest records the app version and whether the panel, the schedule or the command line made it.
- The systemd example restarts the app always, which a restore from the panel needs.
Downloading, restoring and deleting backups and changing the schedule require the password and a current authenticator code, every backup action is written to the audit log, and a download sends the founder an email notice.
Upgrading from 0.1.x
Take a backup, then check out the new tag:
docker compose exec servitor node build/cli.js backup
git fetch --tags
git checkout v0.2.0Set SERVITOR_VERSION=0.2 in your .env (add the line if you came from 0.1.0), then pull and start the image:
docker compose pull
docker compose up -dA migration adds the backup_schedule table; it runs on start. If you run Servitor without Docker, set your service manager to always restart it, for example Restart=always in systemd.
The image for linux/amd64 and linux/arm64 is ghcr.io/justhasanuknow/servitor-cms:0.2.0 (also 0.2 and latest). Verify it with the GitHub CLI:
gh attestation verify oci://ghcr.io/justhasanuknow/servitor-cms:0.2.0 --owner justhasanuknowThe full list is in CHANGELOG.md.
Servitor CMS 0.1.1
Servitor CMS now ships as a prebuilt image, so installations pull it instead of building on the server.
Added
- Every release is published as a prebuilt image for
linux/amd64andlinux/arm64atghcr.io/justhasanuknow/servitor-cms, tagged with the version, the minor line andlatest, and with a signed build provenance attestation.
Changed
docker-compose.ymlruns the prebuilt image in the version set by the newSERVITOR_VERSIONvariable.docker compose up -d --buildstill builds from the source.- The installation and update guides describe the prebuilt image and pinning a version.
- The project website is servitor.rua.systems.
Fixed
- An end-to-end test of the public pages could fail when it ran at the same time as the headless mode test.
Updating from 0.1.0
Take a backup, then check out the new tag, add SERVITOR_VERSION to your .env and start the image:
docker compose exec servitor node build/cli.js backup
git fetch --tags
git checkout v0.1.1
echo "SERVITOR_VERSION=0.1" >> .env
docker compose pull
docker compose up -d0.1 follows the newest 0.1.x release; use 0.1.1 to pin exactly this one. There are no database or configuration changes besides SERVITOR_VERSION.
Verify the image with the GitHub CLI:
gh attestation verify oci://ghcr.io/justhasanuknow/servitor-cms:0.1.1 --owner justhasanuknowThe full list is in CHANGELOG.md, and the update guide has the details.
Servitor CMS 0.1.0
The first public release of Servitor CMS: a self-hostable, multilingual CMS for blog posts and articles that runs as a single container with SQLite.
Highlights
- Writing: a block editor with tables, highlighted code, math, images and video embeds; automatic saving, revision history and previews; a media library that re-encodes uploads to WebP and strips metadata.
- Many languages: one translation per content language for every post, any number of content languages, and a panel in English, Turkish, French, German, Japanese and Simplified Chinese.
- Editorial workflow: founder, admin and author roles, direct publishing for trusted authors, a review queue, scheduling, moderation and an append-only audit log.
- Delivery: server-rendered public pages without JavaScript, with SEO metadata, RSS and sitemaps, or headless mode; a read-only REST API with scoped keys and an OpenAPI description; signed webhooks with retries.
- Security and operations: reviewed against OWASP ASVS 5.0 levels 1 and 2; automatic migrations, a health check, backup and restore commands and a software bill of materials in the image.
Install
git clone https://github.com/justhasanuknow/servitor-cms.git
cd servitor-cms
git checkout v0.1.0
cp .env.example .envFill in .env, then run docker compose up -d --build to build the image from this release.
The prebuilt image for amd64 and arm64 is also available as ghcr.io/justhasanuknow/servitor-cms:0.1.0 (and 0.1), with a signed build provenance attestation:
docker pull ghcr.io/justhasanuknow/servitor-cms:0.1.0
gh attestation verify oci://ghcr.io/justhasanuknow/servitor-cms:0.1.0 --owner justhasanuknowThe docker-compose.yml of this release still builds locally; from the next release on, it pulls the prebuilt image by default. The installation guide and the deployment guide cover a production setup behind a TLS proxy. Every installation also serves the documentation at /docs.
Notes
- Servitor runs as a single instance per data directory.
- Before 1.0.0, a minor version may change configuration, the API or the data in incompatible ways; the notes of each release say so.
- Report vulnerabilities privately as described in SECURITY.md.
The full list is in CHANGELOG.md.