Initial commit
This commit is contained in:
commit
470fd5a60c
20
.env.example
Normal file
20
.env.example
Normal 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
58
.gitignore
vendored
Normal 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
16
README.md
Normal 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
|
||||||
|
```
|
||||||
19
servers/sunstreaker/.env.example
Normal file
19
servers/sunstreaker/.env.example
Normal 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=
|
||||||
28
servers/sunstreaker/radarr/compose.yaml
Normal file
28
servers/sunstreaker/radarr/compose.yaml
Normal 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}
|
||||||
28
servers/sunstreaker/sonarr/compose.yaml
Normal file
28
servers/sunstreaker/sonarr/compose.yaml
Normal 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}
|
||||||
Loading…
Reference in a new issue