Update topology: non-prod stages on the VPS, Prod host decided at go-live
Kickoff update by the project owner: test.dorfteich.cloud and int.dorfteich.cloud run on the VPS 188.245.116.44 (DNS for *.dorfteich.cloud and *.dorfteich.online already points there); the Prod host for dorfteich.online is chosen at go-live. Dev runs locally via Docker. Affects deployment.md, roadmap.md, and ADR 0014; the matching Gitea issues (#8, #9, #87, #89) were updated in place. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
0629411966
commit
6517c8fb71
@ -7,15 +7,17 @@
|
||||
|
||||
The project is hosted on a self-managed Gitea (`gitea.101010.cloud`).
|
||||
Environments (kickoff): Dev runs locally on contributors' machines;
|
||||
Test, Int, and Prod run as separate Compose stacks on the LEISINGER host
|
||||
initially, with Prod moving to a dedicated host at go-live (architecture
|
||||
must keep that move cheap). Contributors include AI coding sessions —
|
||||
gates must be automated and objective wherever possible.
|
||||
Test and Int run as separate Compose stacks on the operator's VPS
|
||||
(`188.245.116.44`, domains `test.dorfteich.cloud` / `int.dorfteich.cloud`);
|
||||
the Prod host (`dorfteich.online`) is decided at go-live — the VPS or a
|
||||
dedicated host — so the architecture must keep that choice and any later
|
||||
move cheap. Contributors include AI coding sessions — gates must be
|
||||
automated and objective wherever possible.
|
||||
|
||||
## Decision
|
||||
|
||||
- **Gitea Actions** is the CI/CD system (GitHub-Actions-compatible syntax);
|
||||
an act_runner runs on LEISINGER with Docker access.
|
||||
an act_runner runs on the VPS (`188.245.116.44`) with Docker access.
|
||||
- **Images** are built once per change and promoted, never rebuilt per
|
||||
stage: pushed to the **Gitea container registry**
|
||||
(`gitea.101010.cloud/stwaidele/dorfteich-{web,api,collab}`), tagged with
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
# Deployment architecture
|
||||
|
||||
Four stages, one Compose definition. Foundational decisions: ADR 0014
|
||||
(CI/CD), ADR 0015 (backup), kickoff topology decision (Dev local; Test, Int,
|
||||
Prod on the LEISINGER host initially; Prod moves to a dedicated host at
|
||||
go-live).
|
||||
(CI/CD), ADR 0015 (backup), kickoff topology decision (Dev local on the
|
||||
developer's machine; Test and Int on the operator's VPS `188.245.116.44`;
|
||||
the Prod host is decided at go-live — the architecture must keep that
|
||||
choice and any later move cheap). DNS status: `*.dorfteich.online` and
|
||||
`*.dorfteich.cloud` already point to the VPS.
|
||||
|
||||
## The Compose stack
|
||||
|
||||
@ -40,10 +42,10 @@ Self-hosters without a proxy can enable the optional `caddy` Compose profile
|
||||
|
||||
| Stage | Where | Domain | Purpose | Data |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| **Dev** | contributor machine | `localhost` | feature work; hot reload via `compose.dev.yml` overlay (source mounts, vite dev server) | fixtures/seed script |
|
||||
| **Test** | LEISINGER, `/home/DOCKER/dorfteich-test/` | `dorfteich-test.101010.cloud` | auto-deploy target of `main`; e2e suite runs here | reset-able; seeded |
|
||||
| **Int** | LEISINGER, `/home/DOCKER/dorfteich-int/` | `dorfteich-int.101010.cloud` | stable preview; manual/exploratory testing; release candidates | persistent test data |
|
||||
| **Prod** | LEISINGER initially → dedicated host at go-live | `dorfteich.online` | public flagship instance | real data; full backup + mirror |
|
||||
| **Dev** | contributor machine (e.g. the operator's MacBook), Docker Desktop | `localhost` | feature work; hot reload via `compose.dev.yml` overlay (source mounts, vite dev server) | fixtures/seed script |
|
||||
| **Test** | VPS `188.245.116.44`, `/home/DOCKER/dorfteich-test/` | `test.dorfteich.cloud` | auto-deploy target of `main`; e2e suite runs here | reset-able; seeded |
|
||||
| **Int** | VPS `188.245.116.44`, `/home/DOCKER/dorfteich-int/` | `int.dorfteich.cloud` | stable preview; manual/exploratory testing; release candidates | persistent test data |
|
||||
| **Prod** | host decided at go-live (M8): the VPS or a dedicated host | `dorfteich.online` | public flagship instance | real data; full backup + mirror |
|
||||
|
||||
Stage layout follows the operator's Docker host convention:
|
||||
compose file + `.env` under `/home/DOCKER/dorfteich-<stage>/`, bulk data
|
||||
|
||||
@ -14,9 +14,10 @@ Goal: empty but deployed. Monorepo scaffold (pnpm, ESLint/Prettier, Vitest,
|
||||
Playwright), NestJS api with `/healthz` + Prisma + first migration, React
|
||||
SPA shell with routing + i18n scaffold (ADR 0012), Dockerfiles + Compose
|
||||
stack + dev overlay, Gitea Actions pipeline (lint/test/build → images →
|
||||
deploy Test → e2e smoke → promote Int), stage setup on LEISINGER.
|
||||
deploy Test → e2e smoke → promote Int), stage setup on the VPS
|
||||
(`188.245.116.44`).
|
||||
**Exit criterion**: a commit to `main` automatically reaches
|
||||
`dorfteich-test.101010.cloud` and shows a styled "hello" shell.
|
||||
`test.dorfteich.cloud` and shows a styled "hello" shell.
|
||||
|
||||
## M1 — Accounts & authentication (`auth`, `backend`, `frontend`)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user