In three steps
Create the compose file
Start
Sign in
docker-compose.yml
services:
matcms:
image: ghcr.io/real-ttx/matcms:latest
container_name: matcms
restart: unless-stopped
ports:
- "9101:8080"
volumes:
- matcms-data:/app/appdata # database, keys, media, backups
volumes:
matcms-data:
docker compose up -d
Afterwards MatCMS is reachable at http://your-server:9101. The first sign-in is admin / admin — change the password right away in the setup wizard. For your own domain with HTTPS, put a reverse proxy such as Caddy or Nginx in front.
Frequent questions
What do I need on the server?
Docker with Compose. MatCMS brings everything else: the database is SQLite and sits as a file in the volume, a separate database server is not needed.
How do I update MatCMS?
docker compose pull and then docker compose up -d. Content, settings and keys stay in the volume; changes to the database are applied by MatCMS itself on start. With the optional cloud the update is a single click.
Where is my data?
All in one volume: database, keys, uploaded media and scheduled backups. Whoever backs up the volume backs up the whole website.
Can I run several websites?
Yes. One installation is one website; further websites run as further containers side by side. The MatCMS Cloud helps you maintain many of them centrally — but it is not a must.
How do I move an existing website?
Under “Backup” you export the website as a ZIP and import it into the new installation — completely or only selected parts.