2.1 KiB
Admin (Decap CMS)
A lightweight, git-based editor at /admin. It commits markdown straight to the
Gitea repo — no database, no server. The public site stays static; rebuilding it
after an edit is a separate step (see Deploy below).
1. Put the repo on Gitea
The site must live in a Gitea repo (e.g. git.kgva.ch/karim/kgva). Set the same
repo and branch in static/admin/config.yml.
2. Create a Gitea OAuth app
In Gitea: Settings → Applications → Create OAuth2 application.
- Redirect URI:
https://<your-site>/admin/ - Copy the Client ID into
static/admin/config.yml→backend.app_id.
Decap uses PKCE, so no client secret and no auth proxy are needed.
3. Edit
Open https://<your-site>/admin/, log in with Gitea. New project:
Portfolio → New Project; images upload into static/img and are referenced as
/img/.... Saving commits to the repo on the configured branch.
4. Deploy (rebuild after an edit)
Because the site is baked into the Docker image, a commit must trigger a rebuild. Pick one:
-
Manual: on the host,
docker compose up -d --build. -
Gitea Actions (
.gitea/workflows/deploy.yml), sketch:on: { push: { branches: [main] } } jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: docker compose up -d --build # on a runner with access to the host(Adjust to your Proxmox/LXC setup — same place OPENBUREAU deploys.)
-
Webhook: point a Gitea webhook at a tiny script on the host that runs the
docker composeline.
Local editing (no auth)
npx decap-server # in one terminal
# uncomment `local_backend: true` in config.yml
hugo server # in another
# open http://localhost:1313/admin/
Self-hosting the CMS bundle (optional)
To avoid the CDN (in the spirit of the colophon), download the bundle once and
point static/admin/index.html at it:
curl -L https://unpkg.com/decap-cms@^3.3.3/dist/decap-cms.js \
-o static/admin/decap-cms.js
# then in index.html: <script src="/admin/decap-cms.js"></script>