Homelab/CLAUDE.md

2.1 KiB

CLAUDE.md

Commandes Terraform

Le .env est gitignore — le sourcer avant chaque commande Terraform :

source ~/homelab/.env
cd ~/homelab/terraform/proxmox
terraform apply

Commandes Ansible

Toujours --ask-vault-pass, jamais --vault-password-file. Toujours lancer depuis ~/homelab/ansible/ (ansible.cfg y est).

cd ~/homelab/ansible

# Déployer tout
ansible-playbook -i inventory/hosts.yml site.yml --ask-vault-pass

# Un seul playbook
ansible-playbook -i inventory/hosts.yml playbooks/forgejo.yml --ask-vault-pass

# Éditer le vault
ansible-vault edit inventory/group_vars/all/vault.yml --ask-vault-pass

Déploiement d'une nouvelle VM

Ordre obligatoire :

cd ~/homelab/ansible
ansible-playbook -i inventory/hosts.yml playbooks/base.yml --limit <vm> --ask-vault-pass
ansible-playbook -i inventory/hosts.yml playbooks/docker.yml --limit <vm> --ask-vault-pass
ansible-playbook -i inventory/hosts.yml playbooks/<service>.yml --ask-vault-pass

SSH agent (obligatoire avant Ansible)

eval $(ssh-agent -s) && ssh-add ~/.ssh/homelab

Infrastructure

Hôte IP Rôle
Proxmox 192.168.1.242 Hyperviseur
vm-gateway 192.168.1.254 WireGuard
vm-forgejo 192.168.1.50 Forgejo :3000
vm-nextcloud 192.168.1.51 Nextcloud :8080
vm-tools 192.168.1.52 Stirling PDF :8081
vm-runner 192.168.1.53 Forgejo Actions Runner
VPS Scaleway 51.158.126.113 Caddy + WireGuard
QNAP 192.168.1.208 NAS NFS/SMB

Vault — variables clés

vault_forgejo_db_password, vault_forgejo_domain, vault_nextcloud_db_password, vault_nextcloud_admin_user, vault_nextcloud_admin_password, vault_nextcloud_domain, vault_admin_password, vault_wg_*, vault_forgejo_runner_token

Pièges connus

  • Les VMs Rocky Linux utilisent firewalld, le VPS Debian utilise ufw
  • Docker gère lui-même les règles firewalld — ne pas les gérer dans les playbooks
  • NEXTCLOUD_TRUSTED_DOMAINS n'est lu qu'au premier démarrage — utiliser occ pour modifier après install
  • Le VPS a ansible_user: Elewyn (root SSH désactivé)