No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-07 00:11:46 +02:00
.forgejo/workflows Update ghcr.io/renovatebot/renovate Docker tag to v44.14.3 2026-08-06 22:05:33 +00:00
projects Merge pull request 'Update bjorkan/meshcore-mqtt-broker Docker digest to 6a5fe9e' (#260) from renovate/bjorkan-meshcore-mqtt-broker into main 2026-08-07 00:09:55 +02:00
.gitignore Fix aedes 2026-06-11 21:16:59 +02:00
active-stacks.yaml Add Pocket ID 2026-08-06 23:20:47 +02:00
LICENSE.md Add License 2026-07-08 22:20:23 +02:00
README.md Migrera till Docker Swarm och lägg till swarm-dashboard 2026-06-24 08:29:43 +02:00
renovate.env.example Inital commit 2026-06-11 11:12:20 +02:00
renovate.json Enable Renovate for Beacon 2026-06-28 09:09:00 +02:00

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_HOST
  • MESHCORE_DEPLOY_USER
  • MESHCORE_DEPLOY_PORT
  • MESHCORE_DEPLOY_SSH_KEY
  • MESHCORE_DEPLOY_KNOWN_HOSTS

Renovate behöver:

  • MESHAT_RENOVATE_TOKEN
  • MESHAT_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.