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