Damien 1d94d57403 fix(gitea): ordonnancer tailscale avant rsyslog, retirer gcompat
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.
2026-08-01 18:16:57 +02:00
2026-05-12 15:17:34 +02:00

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 logrotate config (no unbounded log files)
  • Console auto-login: Proxmox LXCs are configured for root auto-login on tty1 (fast pct enter and 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
S
Description
Public infrastructure deployment scripts - curl-friendly automation
Readme
654 KiB
Languages
Shell 100%