69 lines
2.4 KiB
Markdown
69 lines
2.4 KiB
Markdown
# 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/`](site/), commit, and push to `main`.
|
|
The [`.gitea/workflows/deploy.yml`](.gitea/workflows/deploy.yml) workflow
|
|
`rsync`s 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.html`
|
|
→ `https://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
|
|
|
|
```bash
|
|
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`.
|