Initialisation du Homelab

This commit is contained in:
2026-07-07 09:32:57 +02:00
commit ce5bd20a0b
4 changed files with 141 additions and 0 deletions

32
.gitignore vendored Normal file
View File

@@ -0,0 +1,32 @@
# Secrets
.env
.env.*
secrets/
*.key
*.pem
*.crt
*.token
.vault_pass
# Runtime / data
data/
postgres/
backup/
backups/
logs/
# Dumps / exports
*.sql
*.dump
*.zip
*.tar.gz
*.gz
# Gitea runtime config
app.ini
# OS / editors
Thumbs.db
.DS_Store
.vscode/
.idea/

28
README.md Normal file
View File

@@ -0,0 +1,28 @@
\# Homelab
Dépôt d'infrastructure du homelab.
Objectifs :
\- centraliser les stacks Docker Compose
\- éviter les secrets en clair dans Git
\- préparer le déploiement via Ansible
\- préparer le CI/CD via Gitea Actions
Règles :
\- aucun mot de passe dans les docker-compose.yml
\- aucun fichier .env de production dans Git
\- aucun dossier data, postgres, backup ou secrets dans Git

32
docs/bootstrap.md Normal file
View File

@@ -0,0 +1,32 @@
\# Bootstrap initial
Ce dépôt est initialisé manuellement car Gitea et Ansible ne sont pas encore automatisés.
Ordre de mise en place :
1\. Création du LXC Docker pour Gitea
2\. Installation manuelle de Docker
3\. Déploiement de Gitea avec Docker Compose
4\. Création du dépôt homelab
5\. Création future d'un LXC ansible-runner
6\. Mise en place d'Ansible Vault
7\. Ajout futur de Gitea Actions
8\. Migration progressive des services vers Docker Compose + Ansible
Les secrets ne doivent jamais être versionnés.

View File

@@ -0,0 +1,49 @@
services:
db:
image: postgres:16-alpine
container_name: gitea-db
restart: unless-stopped
environment:
POSTGRES_DB: gitea
POSTGRES_USER: gitea
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
volumes:
- ./postgres:/var/lib/postgresql/data
secrets:
- postgres_password
networks:
- gitea_internal
gitea:
image: docker.gitea.com/gitea:1.24.7
container_name: gitea
restart: unless-stopped
depends_on:
- db
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__server__DOMAIN: git.thomasmlg.fr
GITEA__server__ROOT_URL: https://git.thomasmlg.fr/
GITEA__server__SSH_DOMAIN: git.thomasmlg.fr
GITEA__server__SSH_PORT: 2222
GITEA__server__START_SSH_SERVER: "false"
GITEA__service__DISABLE_REGISTRATION: "true"
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
secrets:
- postgres_password
networks:
- gitea_internal
secrets:
postgres_password:
file: ./secrets/postgres_password
networks:
gitea_internal: