Trace install tas - Gitea
Trace install tas - Gitea
Gitea fournit le service Git local de tas.
Accès et exposition
- URL canonique :
https://gitea.lololand.org/ - Accès externe alternatif :
https://lololand.hopto.org:25702/ - Publication locale :
127.0.0.1:8105vers le port conteneur3000 - Le serveur SSH interne de Gitea est désactivé ; la surface publiée est HTTP/HTTPS.
Runtime
Le runtime est Podman rootless + Quadlet + systemd utilisateur.
- Application :
/home/loic/.config/containers/systemd/gitea.container - PostgreSQL :
/home/loic/.config/containers/systemd/postgresql-gitea.container - Réseau :
gitea-net, assuré par/home/loic/.config/systemd/user/gitea-network.service - Données Gitea : volume Podman
gitea_datamonté sur/data - Cache Gitea : volume Podman
gitea_cachemonté sur/cache - Données PostgreSQL :
/media/loic/nem/gitea/postgres - Reverse proxy : bloc Gitea dans
/etc/caddy/Caddyfile
Images actuellement utilisées et tags versionnés :
docker.io/gitea/gitea:1.27.1docker.io/library/postgres:17.10
Secret PostgreSQL
Les Quadlets ne contiennent plus la valeur du mot de passe. Les deux conteneurs utilisent le secret Podman gitea-postgres-password : POSTGRES_PASSWORD pour PostgreSQL et GITEA__database__PASSWD pour Gitea.
La valeur n'est jamais publiée dans cette documentation. Pour vérifier uniquement la présence du secret :
podman secret inspect gitea-postgres-password
Pour créer ou remplacer le secret sans l'écrire dans un Quadlet :
read -r -s -p 'Mot de passe PostgreSQL Gitea: ' GITEA_DB_PASSWORD
printf '\\n'
printf '%s' "$GITEA_DB_PASSWORD" | podman secret create --replace gitea-postgres-password -
unset GITEA_DB_PASSWORD
Le mot de passe du rôle PostgreSQL doit correspondre au secret avant de redémarrer Gitea. Une rotation doit donc être effectuée avec une commande SQL locale contrôlée, puis le secret doit être remplacé et Gitea redémarré.
Étapes de configuration
- Créer le réseau
gitea-netet le maintenir pargitea-network.service. - Créer le secret Podman
gitea-postgres-password. - Démarrer PostgreSQL avec le volume persistant et le secret injecté dans
POSTGRES_PASSWORD. - Démarrer Gitea avec le même secret injecté dans
GITEA__database__PASSWD. - Configurer Gitea pour PostgreSQL sur
gitea-db:5432, avec la base et l'utilisateurgitea. - Publier le port HTTP local
8105via Caddy versgitea.lololand.orget le port externe25702. - Vérifier systemd, PostgreSQL, la réponse HTTP locale et la réponse publique.
Commandes de vérification
systemctl --user daemon-reload
systemctl --user is-active gitea-network.service postgresql-gitea.service gitea.service
podman exec gitea-db pg_isready -U gitea -d gitea
podman exec gitea gitea --version
podman exec gitea-db postgres --version
curl -fsS -o /dev/null -w '%{http_code}\\n' http://127.0.0.1:8105/
Sauvegarde et retour arrière
Le backup de la modification du 4 août 2026 est dans :
/home/loic/backups/gitea-quadlet-hardening-20260804T102558+0200/
Restaurer les Quadlets depuis ce dossier, exécuter systemctl --user daemon-reload, puis redémarrer PostgreSQL et Gitea dans cet ordre. Ne pas supprimer le volume PostgreSQL lors d'un retour arrière.
Vérifications du 4 août 2026
- Gitea
1.27.1actif. - PostgreSQL
17.10actif etpg_isreadypositif. - HTTP local :
200. - HTTP public sur
https://gitea.lololand.org/:200. - Aucun mot de passe en clair dans les deux Quadlets Gitea/PostgreSQL.