davide 960b007ba7 Add Docker Compose stack with PostgreSQL and Caddy
Production traffic enters through Caddy, which terminates TLS for the public
domain and the CMS subdomain and sets HSTS and the other security headers.
PostgreSQL, Strapi and Nuxt publish no ports of their own.

docker-compose.dev.yml publishes the ports on localhost and drops Caddy for
local testing. It is a separate file rather than an override.yml so it can only
be applied when passed explicitly, never by accident in production.
2026-08-25 11:42:24 +02:00

Blog

Blog platform: a public website built with Nuxt, and a private Strapi CMS where editors write the articles. Everything runs behind Caddy via Docker Compose.

Browser → Caddy ─┬─ public domain → Nuxt (website)
                 └─ cms subdomain → Strapi (CMS) → PostgreSQL

Status: bootstrap. The application code is not in place yet.

Getting started

Requires Docker and Node.js 20+.

cp .env.example .env    # fill in the secrets, never commit this file
docker compose up -d --build

Then open the CMS URL to create the first admin account and start publishing. The public site picks up published articles automatically.

Working on it

cd frontend && npm run dev    # website
cd cms && npm run develop     # CMS

Architecture, conventions and constraints are documented in CLAUDE.md.

License

Proprietary — Copyright (c) 2026 Davide Grilli. All rights reserved. See LICENSE.

S
Description
No description provided
Readme
1.2 MiB
Languages
TypeScript 60.1%
Vue 29.7%
JavaScript 5%
CSS 4%
Dockerfile 0.9%
Other 0.3%