Compare commits

...

75 Commits

Author SHA1 Message Date
73ff6292cf kea 2026-02-23 20:52:22 +01:00
4f7abe45c3 infra(portainer): docker-compose neu erstellt 2026-02-23 18:45:27 +01:00
d6ae6a03ac infra(portainer): docker-compose neu erstellt 2026-02-23 18:42:36 +01:00
1c7fc9fbda infra(portainer): docker-compose neu erstellt 2026-02-23 18:38:18 +01:00
ab178c9b5a infra(portainer): docker-compose neu erstellt 2026-02-23 18:32:24 +01:00
4aab974d50 infra(portainer): docker-compose neu erstellt 2026-02-23 18:20:21 +01:00
a331fa1519 infra(portainer): docker-compose neu erstellt 2026-02-23 17:29:50 +01:00
f06bd59a7c infra(portainer): docker-compose neu erstellt 2026-02-23 17:25:45 +01:00
f62d773556 infra(portainer): docker-compose neu erstellt 2026-02-23 17:23:14 +01:00
f8c80670df docs(adg-kea-caddy): Snippets inlude 2026-02-23 17:17:12 +01:00
2d3a376ff7 infra(all): versionsangabe entfernt 2026-02-23 17:10:39 +01:00
be38484a23 infra(caddy): docker-compose neu erstellt 2026-02-23 17:05:19 +01:00
5de624ae12 infra(kea-dhcp4): docker-compose neu estellt 2026-02-23 16:59:09 +01:00
0f3a12a87d infra(kea-dhcp4): docker-compose neu estellt 2026-02-23 16:57:24 +01:00
644939779e docs(mkdocs): Update include docker-compose 2026-02-23 16:51:31 +01:00
302f5fd32d docs(mkdocs): Update include docker-compose 2026-02-23 16:48:54 +01:00
adef02452e docs(mkdocs): Update include docker-compose 2026-02-23 16:43:28 +01:00
2a2bf3d8ae docs(mkdocs): Update include docker-compose 2026-02-23 16:43:18 +01:00
cd985561af docs(mkdocs): Update include docker-compose 2026-02-23 16:38:56 +01:00
5b117b9057 docs(mkdocs): Update include docker-compose 2026-02-23 16:34:04 +01:00
ab5e8d8fe6 docs(mkdocs): Update include docker-compose 2026-02-23 16:33:37 +01:00
3ab84b2037 docs(mkdocs): Update include docker-compose 2026-02-23 16:23:58 +01:00
22cc3c1392 docs(mkdocs): Update include docker-compose 2026-02-23 16:21:01 +01:00
c886dc64f6 docs(mkdocs): Update include docker-compose 2026-02-23 16:20:01 +01:00
d6e4224bac docs(mkdocs): Update include docker-compose 2026-02-23 16:17:47 +01:00
44ea5c657d docs(mkdocs): Update include docker-compose 2026-02-23 16:11:07 +01:00
6c40c0b228 docs(mkdocs): Update include docker-compose 2026-02-23 16:09:48 +01:00
63871a2d45 docs(mkdocs): Update include docker-compose 2026-02-23 16:07:18 +01:00
1711733072 docs(mkdocs): Update include docker-compose 2026-02-23 16:00:23 +01:00
6992c8f07b docs(mkdocs): Update include docker-compose 2026-02-23 15:56:33 +01:00
4cae82c200 docs(mkdocs): Update include docker-compose 2026-02-23 15:55:15 +01:00
3937b36892 docs(adguard): script inlcude 2026-02-23 15:46:43 +01:00
57b68d747e docs(adguard): script inlcude 2026-02-23 15:43:01 +01:00
962e96ee07 docs(adguard): script inlcude 2026-02-23 15:41:25 +01:00
77365cb512 test 2026-02-23 12:55:46 +01:00
f1e9936bf9 deploy 2026-02-23 12:55:22 +01:00
d0a6d2e0a9 test 2026-02-23 12:54:21 +01:00
1772d4da54 deploy 2026-02-23 12:53:48 +01:00
dd10ef93a0 test 2026-02-23 12:49:10 +01:00
842be469b5 deploy 2026-02-23 12:48:14 +01:00
df8d1e0e43 test 2026-02-23 12:44:53 +01:00
132c6c5288 deploy 2026-02-23 12:43:08 +01:00
a835dfba04 test 2026-02-23 12:41:42 +01:00
62f5de810e feat(deploy): RUN docker-compose 2026-02-23 12:39:58 +01:00
108e10a545 test 2026-02-23 12:33:24 +01:00
16c606af39 feat(mkdocs): Container neustart bei Änderung in mkdocs.yml 2026-02-23 12:32:53 +01:00
7b444e62d9 test 2026-02-23 12:30:09 +01:00
9381244bd0 feat(deploy): Test auf neue und veränderte md 2026-02-23 12:28:50 +01:00
d4890e6c13 docs(mkdocs): Update include docker-compose 2026-02-23 12:19:00 +01:00
560056d503 docs(mkdocs): Update include docker-compose 2026-02-23 12:14:59 +01:00
37b7013655 docs(deploy): Update Dokumetation Workflow 2026-02-23 12:05:06 +01:00
05506a75ad docs(deploy): Update Dokumetation Workflow 2026-02-23 10:44:21 +01:00
1b4032acc3 docs(deploy): Update Dokumetation Workflow 2026-02-23 10:42:54 +01:00
011ef949fe docs(deploy): Update Dokumetation Workflow 2026-02-23 10:38:34 +01:00
80f014b5ff tets 2026-02-23 09:06:15 +01:00
f1f194c184 Add SSH volume to bruchtal-webhook service 2026-02-23 09:04:16 +01:00
55a5d94300 deploy 2026-02-23 09:01:34 +01:00
f8c4f60a2d deploy 2026-02-23 09:00:11 +01:00
5401e6a6e7 test 2026-02-23 08:53:37 +01:00
a5c5d1cc2f test 2026-02-23 08:51:59 +01:00
32d3b66115 test 2026-02-23 08:50:50 +01:00
884f55e784 deploy 2026-02-23 08:48:47 +01:00
f0a5d00b7c deploy 2026-02-23 08:47:10 +01:00
3a382278d4 deploy 2026-02-23 08:46:00 +01:00
4d1c5fb7c5 deploy 2026-02-23 08:44:49 +01:00
f643161c0d test 2026-02-23 08:41:37 +01:00
7560d525c3 deploy 2026-02-23 08:40:31 +01:00
1ad05d7a83 test 2026-02-23 08:37:26 +01:00
38a95848eb deploy 2026-02-23 08:36:30 +01:00
122ce374ff test 2026-02-23 08:33:34 +01:00
550effdd16 deploy 2026-02-23 08:30:58 +01:00
2b5962c4b8 deploy 2026-02-23 08:29:09 +01:00
c4f27d6626 deploy 2026-02-23 08:27:36 +01:00
fdf5e79a2d test 2026-02-23 08:22:28 +01:00
fa60ea5b65 deploy 2026-02-23 08:19:08 +01:00
20 changed files with 218 additions and 30 deletions

View File

@@ -1,3 +0,0 @@
FROM thecatlady/webhook:2.8.0
USER root
RUN apk add --no-cache git docker-cli bash

View File

@@ -1,25 +1,25 @@
#!/bin/sh
set -e
# test test
cd /docker/Bruchtal
# test XDG_RUNTIME_DIR
cd /workspace
echo "==> Pulling latest changes"
git pull
echo "==> Checking for changed markdown files"
echo "==> Checking for new or modified Markdown files"
# A = Added, M = Modified
changed=$(git diff --name-status HEAD~1 HEAD | grep -E '^[AM]\s.*(\.md$|mkdocs\.yml$)' | awk '{print $2}' || true)
# Liste der Dateien im letzten Commit
CHANGED_FILES=$(git diff --name-only HEAD@{1} HEAD)
echo "$CHANGED_FILES"
# Prüfen ob .md Datei enthalten ist
if echo "$CHANGED_FILES" | grep -qE '\.md$'; then
echo "==> Markdown changes detected. Restarting container..."
if [ -n "$changed" ]; then
echo "Markdown changes detected:"
echo "$changed"
echo "==> Restarting bruchtal-docs container"
cd /workspace
docker restart bruchtal-docs
else
echo "==> No markdown changes detected. Skipping restart."
echo "No Markdown changes detected. Skipping restart."
fi
echo "==> Deploy finished"

View File

@@ -1,4 +1,4 @@
version: "3.8"
services:
adguardhome:

View File

@@ -0,0 +1,8 @@
FROM thecatlady/webhook:2.8.0
USER root
RUN apk add --no-cache git docker-cli bash openssh-client docker-compose
RUN mkdir -p /root/.ssh && \
ssh-keyscan 192.168.178.204 >> /root/.ssh/known_hosts

View File

@@ -9,4 +9,11 @@ services:
- /docker/Bruchtal:/workspace
- /docker/Bruchtal/deploy/hooks.json:/hooks/hooks.json:ro
- /var/run/docker.sock:/var/run/docker.sock
command: ["-hooks", "/hooks/hooks.json", "-verbose", "-port", "9001", "-ip", "0.0.0.0"]
- /root/.ssh:/root/.ssh:ro
command: ["-hooks", "/hooks/hooks.json", "-verbose", "-port", "9001", "-ip", "0.0.0.0"]
networks:
- bruchtal-net
networks:
bruchtal-net:
external: true

View File

@@ -0,0 +1,11 @@
services:
caddy:
image: caddy:latest
container_name: caddy
restart: unless-stopped
network_mode: host
volumes:
- /docker/caddy/config/Caddyfile:/etc/caddy/Caddyfile:ro
- /docker/caddy/data:/data
- /docker/caddy/ca/rootCA.crt:/etc/ssl/certs/rootCA.crt
- /docker/caddy/ca/rootCA.key:/etc/ssl/private/rootCA.key

View File

@@ -1,5 +1,3 @@
version: "3.8"
services:
server:
image: gitea/gitea:1.24

View File

@@ -1,4 +1,3 @@
version: "2.1"
services:
heimdall:
image: lscr.io/linuxserver/heimdall:latest

View File

@@ -0,0 +1,11 @@
version: "3.8"
services:
kea-dhcp4:
image: serhiymakarenko/isc-kea-dhcp4-server:latest
container_name: kea-dhcp4
restart: unless-stopped
network_mode: host
volumes:
- /home/christian/docker/kea/config:/etc/kea:ro
- /home/christian/docker/kea/leases:/var/lib/kea

View File

@@ -0,0 +1,26 @@
version: "3.8"
services:
portainer:
image: portainer/portainer-ce:latest
container_name: bruchtal-portainer
restart: unless-stopped
ports:
- "9000:9000" # Webinterface
volumes:
- /docker/Daten/portainer-data:/data:rw
- /etc/localtime:/etc/localtime:ro
depends_on:
- portainer_agent
portainer_agent:
image: portainer/agent:latest
container_name: bruchtal-portainer-agent
restart: unless-stopped
environment:
AGENT_CLUSTER_ADDR: tasks.portainer_agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock:rw # nötig für Containersteuerung
- /etc/localtime:/etc/localtime:ro
ports:
- "9001:9001" # Agent Port

View File

@@ -1,4 +1,3 @@
version: "2.1"
services:
wikijs:
image: linuxserver/wikijs:2.5.312

View File

@@ -20,3 +20,10 @@ cd /docker/Bruchtal/docker/adguardhome
git pull
docker compose pull
docker compose up -d
```
## aktuelles Skript
```snippet
--8<-- "/docs/docker/adguardhome/docker-compose.yml"
```

View File

@@ -0,0 +1,33 @@
# 🏗 Bruchtal Docker-Architektur
## Übersicht
Die Bruchtal-Infrastruktur läuft vollständig containerisiert auf einer VM.
Alle Dienste kommunizieren über ein dediziertes Docker-Netzwerk, nutzen Git zur Versionierung und automatisches Deploy über Webhooks.
**Hauptkomponenten:**
| Service | Containername | Funktion |
|----------------|-------------------|---------|
| Gitea | `gitea` | Git-Server für Infrastruktur & Dokumentation |
| Wiki.js | `wikijs` | Wissensmanagement & Dokumentation |
| MkDocs | `bruchtal-docs` | Statische Markdown-Dokumentation |
| Webhook | `bruchtal-webhook`| Automatisches Deploy bei Git Push |
| Docker Host | VM | Plattform für alle Container |
---
## 🔗 Netzwerke
Alle Container laufen im **gemeinsamen Docker-Netzwerk** `bruchtal-net`:
- Kommunikation per Service-Namen (`gitea`, `bruchtal-webhook`)
- Keine Abhängigkeit von Host-IP
- Isoliert von anderen VM-Netzwerken
Beispiel Docker-Compose-Netzwerkdefinition:
```yaml
networks:
bruchtal-net:
external: true

View File

@@ -20,4 +20,11 @@ cd /docker/Bruchtal/docker/heimdall
git pull
docker compose pull
docker compose up -d
``
```
## aktuelles Skript
```snippet
--8<-- "/docs/docker/heimdall/docker-compose.yml"
```

View File

@@ -16,4 +16,10 @@ cd /docker/Bruchtal/docker/it-tools
git pull
docker compose pull
docker compose up -d
``
```
## aktuelles Skript
```snippet
--8<-- "/docs/docker/it-tools/docker-compose.yml"
```

View File

@@ -21,4 +21,10 @@ cd /docker/Bruchtal/docker/wikijs
git pull
docker compose pull
docker compose up -d
``
```
## aktuelles Skript
```snippet
--8<-- "/docs/docker/wikijs/docker-compose.yml"
```

View File

@@ -0,0 +1,36 @@
# DNS - DHCP Konfiguration
## Anmerkungen zu AdGuardHome
- die Konfiguration findet in der adguard/config/AdGuardHome.yaml statt.
**Problem**: dummerweise überschreibt die GUI diese bei jedem Start gnadenlos.
- Blaupause liegt in /docker/AdguardHome.yaml bzw. s.u.
- Entscheidend: dhcp_enabled: false
- bevor Adguard neu gestartet wird die Blaupause in den config-Ordner kopieren
- neue Einträge:
-- WebUI aufrufen (http://192.168.178.204:3001)
-- Filters => DNS-Rewrites
-- dort name und IP eintragen
-- Container **NICHT** neu starten!
### aktuelles Skript
```snippet
--8<-- "/docs/docker/adguardhome/docker-compose.yml"
```
## Anmerkungen zu Kea:
- DHCP-Server, bewusst in der IPv4-Version. IPv6 ist komplett abgestellt, ausser auf der FB für DSlite.
### aktuelles Skript
```snippet
--8<-- "/docs/docker/kea-dhcp4/docker-compose.yml"
```
## Anmerkungen zu caddy
- Reverse-Proxy für internes HTTPS
- Problem: rootCA.crt muss auf dem Client vorhanden sein damit der Browserzugriff funktioniert. Ist ein Browserproblme, eins von DNS verursachtes
### aktuelles Skript
```snippet
--8<-- "/docs/docker/caddy/docker-compose.yml"
```

View File

@@ -7,7 +7,6 @@ Ziel:
- Alles versioniert in Git
- Reproduzierbare Deployments
- Dokumentation immer synchron zur Infrastruktur
---
## Grundprinzip
@@ -18,9 +17,18 @@ Die VM ist nur noch Laufzeitumgebung.
1. Lokal ändern, egal was
2. Committen & Pushen
3. Auf VM pullen
3. der Pull auf der VM wird automatisch über einen Webhook ausgeführt
4. Container neu starten
```mermaid
flowchart LR
Dev -->|git push| Gitea
Gitea -->|POST Hook| Webhook
Webhook -->|git pull| Workspace
Workspace -->|Markdown changes| MkDocs
MkDocs -->|serve| Browser
```
---
## Workflow "neuer Container"
@@ -34,7 +42,6 @@ Die VM ist nur noch Laufzeitumgebung.
- commit mit Message `"infra(<Containername>): docker-compose.yml neu angelegt"`
- push
### neuen Container dokumentieren
- `Bruchtal/docs/<Containername>` anlegen
- `Bruchtal/docs/<Containername>/<Containername>.md` anlegen

2
docs/workflows/test.md Normal file
View File

@@ -0,0 +1,2 @@
## test2

View File

@@ -10,16 +10,44 @@ nav:
- Übersicht: index.md
- Workflows:
- Docker-workflow: workflows/docker-workflow.md
- Adguardhome-Kea-Caddy: workflows/adguard-kea-caddy.md
- Netzwerk:
- Topologie: network/topology.md
- Tunnel: network/tunnel.md
- Proxmox:
- VMs: proxmox/vms.md
- Docker:
- Docker:
- Architektur: docker/architecture.md
- Adguardhome: docker/adguardhome/adguardhome.md
- Wikijs: docker/wikijs/wikijs.md
- Architektur: docker/architecture.md
- It-Tools: docker/it-tools/it-tools.md
- Heimdall: docker/heimdall/heimdall.md
- Backup_Storage:
- Backup: backup/backup.md
- Storage: backup/storage.md
- Storage: backup/storage.md
markdown_extensions:
- pymdownx.highlight
- pymdownx.snippets:
check_paths: false
- pymdownx.tasklist
- pymdownx.tabbed
- pymdownx.mark
- pymdownx.tilde
- pymdownx.critic
- pymdownx.inlinehilite
- pymdownx.details
- pymdownx.keys
- pymdownx.emoji
- pymdownx.betterem
- pymdownx.caret
- pymdownx.mark
- pymdownx.smartsymbols
- pymdownx.magiclink
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format