Files
plate-software-web/README.md
pplate 177d5859e1
Deploy to plate-software.de / deploy (push) Failing after 19s
Initial web presence: bilingual landing page + push-to-deploy pipeline
2026-06-22 12:27:29 +02:00

2.4 KiB

plate-software.de — Web Presence

Static website for https://plate-software.de (the Apache landing page + any additional static pages/assets). This repo is the single source of truth for the public web presence.

How deployment works (push-to-deploy, zero SSH)

edit site/  →  git push origin main
                     │
                     ▼
        Gitea Actions (self-hosted runner on TrueNAS)
                     │  rsync over SSH (dedicated deploy key)
                     ▼
        IONOS Apache  /var/www/html/   (82.165.206.45)
                     │
                     ▼
            https://plate-software.de  (TLS via Let's Encrypt)

Just edit files under site/, commit, and push to main. The .gitea/workflows/deploy.yml workflow rsyncs the contents of site/ to the Apache DocumentRoot. No SSH access to the server is needed — the runner holds a dedicated deploy key.

workflow_dispatch is also enabled, so you can re-deploy manually from the Gitea Actions tab without a new commit.

Repo layout

site/              ← everything in here is published to the web root
  index.html       ← the bilingual (DE/EN) landing page
.gitea/workflows/
  deploy.yml       ← the push-to-deploy pipeline

Add more pages by dropping files into site/ (e.g. site/impressum.htmlhttps://plate-software.de/impressum.html). Subfolders work too.

Safety notes

  • Non-destructive sync. The workflow uses rsync without --delete, so other content already living on the server (downloads/, owncloud/, .well-known/, ACME challenges, old index.html.bak.*) is never removed. If you ever want exact mirroring, add --delete — but only after confirming site/ is the complete intended web root.
  • Subdomains are separate. cannamanage., inspectflow. and git. are their own apps/proxies (frp → TrueNAS). This repo only owns the root domain's static files.

Required secret

Settings → Actions → Secrets:

Secret Value
IONOS_DEPLOY_KEY private ed25519 key whose public half is in root@82.165.206.45:~/.ssh/authorized_keys (comment gitea-actions-plate-software-web)

Local preview

cd site && python3 -m http.server 8000   # http://localhost:8000

The language toggle defaults to German; English shows automatically for en-* browsers, and the choice is remembered in localStorage.