| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .forgejo/workflows | ||
| projects | ||
| .gitignore | ||
| active-stacks.yaml | ||
| LICENSE.md | ||
| README.md | ||
| renovate.env.example | ||
| renovate.json | ||
meshcore-infra
Infra-repo för Meshcore-servern. Servern kör Docker Swarm (single-node).
Repot innehåller Docker Compose-stackarna i projects/ och en enkel lista över
vilka som ska köras i active-stacks.yaml.
projects/
traefik/
compose.yaml
uptime-kuma/
compose.yaml
...
Deploy
När något pushas till main kör .forgejo/workflows/validera-infrastruktur.yml.
flowchart LR
A[Push till main] --> B[Codeberg Actions]
B --> C[SSH till servern]
C --> D[git pull]
D --> E[Läs active-stacks.yaml]
E --> F{Stack aktiv?}
F -- ja --> G[docker compose pull + docker stack deploy]
F -- nej --> H[docker stack rm]
G --> I[docker image prune]
H --> I
Servern använder repot som source of truth:
/home/jesper/Meshcore/meshcore-infra
Alla stackar använder ett gemensamt Swarm-nätverk backend (bridge, swarm-scope)
för intern kommunikation (t.ex. Traefik → tjänster).
Filer
active-stacks.yaml- stackar som ska vara igång.projects/<namn>/compose.yaml- Compose-fil för en stack..forgejo/workflows/validera-infrastruktur.yml- validerar och deployar till servern..forgejo/workflows/renovate.yml- kör Renovate.renovate.json- Renovate-regler.renovate.env.example- visar vilka Renovate-secrets som behövs.
Secrets
Deploy behöver:
MESHCORE_DEPLOY_HOSTMESHCORE_DEPLOY_USERMESHCORE_DEPLOY_PORTMESHCORE_DEPLOY_SSH_KEYMESHCORE_DEPLOY_KNOWN_HOSTS
Renovate behöver:
MESHAT_RENOVATE_TOKENMESHAT_GITHUB_RENOVATE_TOKEN
Public repo
Riktiga .env-filer, nycklar, certifikat, databaser, loggar och runtime-data
ska inte committas. .env.example är okej.
Publika domäner och hostnames är inte hemligheter. Traefik-regler som
Host(`status.meshat.se`) får ligga direkt i Compose-filerna.
Det här är ett monorepo: alla stackar versioneras tillsammans i samma Git-repo.
Lägg därför bara deployment-konfiguration, .env.example och kort stackdokumentation
i projects/<namn>/. Applikationskällkod och image-byggen hör inte hemma här när
stacken använder en färdig image. Git-, workflow- och Renovate-konfiguration finns
gemensamt i repo-roten.