1d94d57403bbee9763f8f4f92d09e8c0f18806c9
configure_rsyslog_forwarder() cible SYSLOG_TARGET, un nom MagicDNS. Il tournait avant configure_tailscale_proxy() dans install_inside_lxc() et update_inside_lxc() : au moment où rc-service rsyslog start s'exécutait, tailscale up n'avait pas encore tourné, le nom ne résolvait pas, et omfwd démarrait cassé jusqu'à un redémarrage manuel. Pire avec TS_AUTHKEY absent : configure_tailscale_proxy() retourne tôt avec un warning, et rsyslog restait cassé jusqu'à ce que l'opérateur relance après son tailscale up manuel. configure_tailscale_proxy est désormais appelée avant configure_rsyslog_forwarder dans les deux fonctions. Comme la résolution MagicDNS peut prendre quelques secondes après tailscale up, ajoute une attente bornée (30s) sur getent hosts "$SYSLOG_TARGET" avant de démarrer rsyslog — même pattern que le start_pre() de gitea-runner/install.sh. Non bloquant : au-delà du délai, un avertissement est affiché et rsyslog démarre quand même (l'opérateur peut relancer le script une fois la résolution effective). Retire aussi gcompat des dépendances apk (couche de compatibilité glibc, résidu de l'approche binaire téléchargé abandonnée au profit de apk add gitea — précisément ce que l'en-tête du script explique vouloir éviter) et remplace apk list -I (parcourt tout l'index des paquets) par apk info -e -v gitea (interrogation directe du paquet) dans le MOTD et le message de fin de update_inside_lxc.
infra-scripts
Public infrastructure deployment scripts designed to be executed directly via curl | bash.
Philosophy
These scripts automate the deployment of personal infrastructure components. They are:
- Self-contained: No external dependencies beyond standard Debian packages
- Idempotent-ish: Safe to re-run (where possible)
- Curl-friendly: Designed for one-liner deployment from a fresh server
- Multi-OS: Supports Debian and Alpine-based deployments, chosen per-script based on that service's requirements
- Loopback by default: Services bind to
127.0.0.1; Tailscale handles the reverse proxy and TLS termination - Log hygiene: Every long-running service ships with a
logrotateconfig (no unbounded log files) - Console auto-login: Proxmox LXCs are configured for root auto-login on
tty1(fastpct enterand Web UI shell access) - Keep it simple: One script per service, plain bash, no frameworks — readability over cleverness
Available Scripts
| Script | Description | Usage |
|---|---|---|
proxy/install.sh |
Reverse proxy with Tailscale + Nginx Proxy Manager | curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/proxy/install.sh | bash |
netlab/install.sh |
Network lab with ContainerLab | curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/netlab/install.sh | bash |
gitea-runner/install.sh |
Gitea Act Runner on Alpine LXC (Proxmox) | bash -c "$(curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/gitea-runner/install.sh)" |
gitea/install.sh |
Gitea Git service on Alpine LXC (Proxmox) | bash -c "$(curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/gitea/install.sh)" |
openbao/install.sh |
OpenBao secrets manager on Alpine LXC (Proxmox) | bash -c "$(curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/openbao/install.sh)" |
komodo/install.sh |
Komodo (Docker + MongoDB) on Alpine VM | bash -c "$(curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/komodo/install.sh)" |
Requirements
- Fresh Debian 12/13 installation (proxy, netlab) or Proxmox VE host (gitea-runner, openbao) or Alpine VM (komodo)
- User with sudo privileges (do not run as root) — except gitea-runner, openbao, and komodo which run as root
- Internet access
Languages
Shell
100%