docs: Dateien zum Forgejo-Artikel in Ausgabe 25/03
This commit is contained in:
parent
41abdbe549
commit
d0d5280021
4 changed files with 160 additions and 0 deletions
45
2503-forgejo/README.md
Normal file
45
2503-forgejo/README.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# Softwareprojekte selbst hosten mit Forgejo
|
||||
|
||||
Dieses Verzeichnis enthält die begleitenden Konfigurationsdateien und Befehle zum Artikel in der Ausgabe 03/25.
|
||||
|
||||
## Dateien
|
||||
|
||||
- [docker-compose.yml](docker-compose.yml)
|
||||
vollständige Container-Konfiguration mit Forgejo, MariaDB, Traefik und Runner
|
||||
- [traefik.yml](traefik.yml)
|
||||
zentrale Traefik-Konfigurationsdatei für TLS und Routing
|
||||
|
||||
## Befehle
|
||||
|
||||
```bash
|
||||
# Verzeichnisse vorbereiten
|
||||
mkdir -p /data/docker/mariadb
|
||||
mkdir -p /data/docker/traefik
|
||||
mkdir -p /data/docker/forgejo
|
||||
mkdir -p /data/docker/forgejo-runner/data
|
||||
|
||||
# acme.json vorbereiten (für Let's Encrypt)
|
||||
touch /data/docker/traefik/acme.json
|
||||
chmod 600 /data/docker/traefik/acme.json
|
||||
|
||||
# Traefik starten und testen
|
||||
docker compose up traefik
|
||||
|
||||
# MariaDB initialisieren
|
||||
docker compose up mariadb
|
||||
|
||||
# Forgejo starten
|
||||
docker compose up -d
|
||||
|
||||
# Runner Konfigurationsdatei erzeugen
|
||||
docker compose run --rm \
|
||||
forgejo-runner forgejo-runner generate-config \
|
||||
> /data/docker/forgejo-runner/data/config.yaml
|
||||
|
||||
# Runner registrieren
|
||||
docker compose run --rm -it \
|
||||
forgejo-runner forgejo-runner register
|
||||
|
||||
# Runner starten
|
||||
docker compose up -d forgejo-runner
|
||||
```
|
89
2503-forgejo/docker-compose.yml
Normal file
89
2503-forgejo/docker-compose.yml
Normal file
|
@ -0,0 +1,89 @@
|
|||
networks:
|
||||
forgejo:
|
||||
driver: bridge
|
||||
enable_ipv6: true
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
container_name: mariadb
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- forgejo
|
||||
ports:
|
||||
- "127.0.0.1:3306:3306"
|
||||
environment:
|
||||
- MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=0
|
||||
- MARIADB_DATABASE=forgejo
|
||||
- MARIADB_USER=forgejo
|
||||
- MARIADB_PASSWORD=forgejo-db-passwort
|
||||
volumes:
|
||||
- /data/docker/mariadb:/var/lib/mysql
|
||||
|
||||
traefik:
|
||||
image: traefik:latest
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- forgejo
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- /data/docker/traefik/traefik.yml:/traefik.yml:ro
|
||||
- /data/docker/traefik/acme.json:/acme.json
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.dashboard.rule=Host(`traefik.example.eu`)"
|
||||
- "traefik.http.routers.dashboard.entrypoints=https"
|
||||
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.dashboard.service=api@internal"
|
||||
- "traefik.http.routers.dashboard.middlewares=auth"
|
||||
- "traefik.http.middlewares.auth.basicauth.users=benutzername:passworthash"
|
||||
|
||||
forgejo:
|
||||
image: codeberg.org/forgejo/forgejo:11
|
||||
container_name: forgejo
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- forgejo
|
||||
ports:
|
||||
- "23:22"
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- FORGEJO__server__DOMAIN=git.example.eu
|
||||
- FORGEJO__server__ROOT_URL=https://git.example.eu
|
||||
- FORGEJO__database__DB_TYPE=mysql
|
||||
- FORGEJO__database__HOST=mariadb:3306
|
||||
- FORGEJO__database__NAME=forgejo
|
||||
- FORGEJO__database__USER=forgejo
|
||||
- FORGEJO__database__PASSWD=forgejo-db-passwort
|
||||
volumes:
|
||||
- /data/docker/forgejo:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
depends_on:
|
||||
- mariadb
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.forgejo.rule=Host(`git.example.eu`)"
|
||||
- "traefik.http.routers.forgejo.entrypoints=https"
|
||||
- "traefik.http.routers.forgejo.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.forgejo.service=forgejo"
|
||||
- "traefik.http.services.forgejo.loadbalancer.server.port=3000"
|
||||
|
||||
forgejo-runner:
|
||||
image: code.forgejo.org/forgejo/runner:6
|
||||
container_name: forgejo-runner
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /data/docker/forgejo-runner/data:/data
|
||||
environment:
|
||||
- DOCKER_HOST=unix:///var/run/docker.sock
|
||||
networks:
|
||||
- forgejo
|
||||
user: 0:0
|
||||
command: forgejo-runner -c /data/config.yaml daemon
|
21
2503-forgejo/traefik.yml
Normal file
21
2503-forgejo/traefik.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
entryPoints:
|
||||
http:
|
||||
address: ":80"
|
||||
https:
|
||||
address: ":443"
|
||||
|
||||
api:
|
||||
dashboard: true
|
||||
|
||||
providers:
|
||||
docker:
|
||||
endpoint: "unix:///var/run/docker.sock"
|
||||
exposedByDefault: false
|
||||
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
email: admin@example.eu
|
||||
storage: /acme.json
|
||||
httpChallenge:
|
||||
entryPoint: http
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
In diesem Repository findest du die Quelltexte und Konfigurationsbeispiele zu Artikeln, die von mir in der Zeitschrift *Java aktuell* veröffentlicht wurden. Da in einer gedruckten Zeitschrift kein direktes Kopieren von Quelltexten möglich ist (und selbst bei PDF-Versionen oft Formatierungsprobleme auftreten), stelle ich hier alle relevanten Dateien in strukturierter Form zur Verfügung.
|
||||
|
||||
## Artikel
|
||||
|
||||
- [Softwareprojekte selbst hosten mit Forgejo](2503-forgejo)
|
||||
*Java aktuell 03/25*
|
||||
|
||||
## Struktur
|
||||
|
||||
Für jeden Artikel gibt es ein eigenes Unterverzeichnis. Der Verzeichnisname besteht aus der Ausgabennummer und einem thematischen Stichwort.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue