Initial commit

This commit is contained in:
TheThomaas 2026-10-19 10:31:32 +02:00
commit 470fd5a60c
6 changed files with 169 additions and 0 deletions

20
.env.example Normal file
View file

@ -0,0 +1,20 @@
# ============================================
# Variables communes à tous les serveurs
# Copier en .env et remplir les valeurs
# ============================================
# --- Identité et localisation ---
LOCAL_DOMAIN=
TZ=Europe/Zurich
# --- Chemins de stockage ---
APPDATA=
MEDIADIR=
# --- Permissions ---
PUID=
PGID=
# --- Réseau Docker ---
# Nom du réseau externe partagé (créé une fois avec : docker network create proxy)
PROXY_NETWORK=proxy

58
.gitignore vendored Normal file
View file

@ -0,0 +1,58 @@
# ============================================
# Secrets et variables d'environnement
# ============================================
.env
.env.*
*.env
# On garde les fichiers d'exemple comme documentation
!.env.example
!*.env.example
# ============================================
# Overrides Docker Compose locaux
# ============================================
# Fichiers d'override spécifiques à une machine
compose.override.yml
compose.override.yaml
# Variantes d'environnement (prod, test, etc.) si elles contiennent des secrets
compose.*.yml
compose.*.yaml
# On garde les fichiers principaux
!compose.yml
!compose.yaml
# ============================================
# Fichiers système et éditeurs
# ============================================
.DS_Store
Thumbs.db
*~
*.swp
*.swo
.vscode/
.idea/
*.iml
# ============================================
# Logs et fichiers temporaires
# ============================================
*.log
logs/
tmp/
temp/
*.tmp
# ============================================
# Données locales
# ============================================
# data/
# volumes/
# backups/
# ============================================
# Fichiers d'état OpenTofu
# ============================================
*.tfstate
*.tfstate.*
.terraform/
.terraform.lock.hcl

16
README.md Normal file
View file

@ -0,0 +1,16 @@
# homeserver/infrastructure
Configuration du homelab, organisée par serveur.
## Mise en place sur un nouveau serveur
```bash
# 1. Cloner le dépôt
git clone https://git.thethomaas.net/homeserver/infrastructure.git ~/infrastructure && cd ~/infrastructure
# 2. Copier les fichiers d'environnement et remplir les valeurs
cp .env.example .env
cp servers/<serveur>/.env.example servers/<serveur>/.env
# 3. Créer le réseau partagé
docker network create proxy
```

View file

@ -0,0 +1,19 @@
# ============================================
# Variables spécifiques au serveur principal
# Copier en servers/principal/.env
# ============================================
# --- Jellyfin ---
JELLYFIN_PORT=8096
# --- Sonarr / Radarr / etc. ---
SONARR_PORT=8989
RADARR_PORT=7878
# --- Forgejo ---
FORGEJO_PORT=3000
FORGEJO_DB_PASSWORD=
# --- Pocket-ID (si hébergé sur ce serveur) ---
POCKET_ID_DB_PASSWORD=
POCKET_ID_ENCRYPTION_KEY=

View file

@ -0,0 +1,28 @@
services:
radarr:
image: linuxserver/radarr:6.4.4
container_name: radarr
volumes:
# Config
- ${APPDATA}/radarr:/config
# Media
- ${MEDIADIR}/movies:/movies
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.radarr.rule=Host(`radarr.${LOCAL_DOMAIN}`)"
- "traefik.http.routers.radarr.entrypoints=https"
- "traefik.http.routers.radarr.tls=true"
- "traefik.http.services.radarr.loadbalancer.server.port=7878"
- "traefik.http.routers.radarr.middlewares=redirect-to-https@file"
networks:
- proxy
restart: unless-stopped
networks:
proxy:
external: true
name: ${PROXY_NETWORK:-proxy}

View file

@ -0,0 +1,28 @@
services:
sonarr:
image: linuxserver/sonarr:4.0.20
container_name: sonarr
volumes:
# Config
- ${APPDATA}/sonarr:/config
# Media
- ${MEDIADIR}/shows:/tv
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
labels:
- "traefik.enable=true"
- "traefik.http.routers.sonarr.rule=Host(`sonarr.${LOCAL_DOMAIN}`)"
- "traefik.http.routers.sonarr.entrypoints=https"
- "traefik.http.routers.sonarr.tls=true"
- "traefik.http.services.sonarr.loadbalancer.server.port=8989"
- "traefik.http.routers.sonarr.middlewares=redirect-to-https@file"
networks:
- proxy
restart: unless-stopped
networks:
proxy:
external: true
name: ${PROXY_NETWORK:-proxy}