# CLAUDE.md ## Commandes Terraform Le `.env` est gitignore — le sourcer avant chaque commande Terraform : ```bash 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). ```bash 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 : ```bash cd ~/homelab/ansible ansible-playbook -i inventory/hosts.yml playbooks/base.yml --limit --ask-vault-pass ansible-playbook -i inventory/hosts.yml playbooks/docker.yml --limit --ask-vault-pass ansible-playbook -i inventory/hosts.yml playbooks/.yml --ask-vault-pass ``` ## SSH agent (obligatoire avant Ansible) ```bash 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é) - Forgejo runner : la registration nécessite `user: "0:0"` et `working_dir: /data` — sinon permission denied sur `.runner` - Terraform : `clone.datastore_id` et `initialization.datastore_id` doivent être explicites — `local-lvm` n'existe plus sur ce Proxmox