No description
Find a file
2026-02-12 00:50:08 +01:00
defaults Fix linting 2026-02-12 00:29:14 +01:00
handlers Initial commit 2026-01-20 20:54:45 +01:00
meta Correction des dépendances 2026-02-04 17:56:47 +01:00
static Finalisation du dépôts 2026-01-20 21:06:39 +01:00
tasks fix lint 2026-02-12 00:50:08 +01:00
templates Initial commit 2026-01-20 20:54:45 +01:00
.ansible-lint Finalisation du dépôts 2026-01-20 21:06:39 +01:00
example-playbook.yml Initial commit 2026-01-20 20:54:45 +01:00
LICENCE.md Finalisation du dépôts 2026-01-20 21:06:39 +01:00
README.md Ajout de la commande de prise de main sur le compte 2026-01-21 11:33:31 +01:00

Ansible Role: Forgejo avec Podman Rootless

Version Button: GPL v3 Static Badge Static Badge

Ce rôle Ansible déploie Forgejo (un fork de Gitea) en utilisant Podman en mode rootless pour une sécurité accrue.

Prérequis

  • Ansible >= 2.14
  • Collection ansible.posix
  • podman
  • systemd

Variables du Rôle

Utilisateur et système

Variable Défaut Description
forgejo_user forgejo Nom de l'utilisateur système
forgejo_group forgejo Groupe de l'utilisateur
forgejo_uid UID de l'utilisateur
forgejo_gid GID du groupe
forgejo_home /home/forgejo Répertoire home
forgejo_subuid_start 10000 Début de la plage SetUID de l'utilisateur
forgejo_subuid_range 65536 Taille de la plage SetUID de l'utilisateur
forgejo_subgid_start 10000 Début de la plage SetGID du groupe
forgejo_subgid_range 65536 Taille de la plage SetGID du groupe

Image et conteneur

Variable Défaut Description
forgejo_version 13-rootless Version/tag de l'image
forgejo_image codeberg.org/forgejo/forgejo:{{ forgejo_version }} Image complète
forgejo_container_name forgejo Nom du conteneur

Point de montage

Variable Défaut Description
forgejo_data_dir {{ forgejo_home }}/data Répertoire contenant les données
forgejo_config_dir {{ forgejo_home }}/config Répertoire contenant les fichiers de configuration

Réseau

Variable Défaut Description
forgejo_podman_network host Réseau utilisé par le conteneur
forgejo_http_port 3000 Port HTTP exposé
forgejo_ssh_port 2222 Port SSH exposé
forgejo_bind_address 0.0.0.0 Adresse d'écoute

Ressources

Variable Défaut Description
forgejo_container_memory 512m Limite mémoire
forgejo_container_cpus 1 Limite CPU

Service

Variable Défaut Description
forgejo_service_enabled true Active le lancement du conteneur au démarrage

Forgejo Configuration

L'ensemble de la configuration peut être définit sous la forme de variable d'environnement Voir les documentations suivantes :

Variable Défaut Description
forgejo_env_config_custom {} Dictionnaire contenant les variables d'environnements de configuration définit par l'utilisateur. Écrase les clefs définies dans la variable forgejo_env_config_default
forgejo_env_config_default Voir le contenu par défaut Dictionnaire contenant les variables d'environnements par défaut

Exemple d'utilisation

Playbook simple

---
- name: Déployer Forgejo
  hosts: git_servers
  become: true

  roles:
    - role: forgejo
      vars:
        forgejo_domain: "git.example.com"
        forgejo_root_url: "https://git.example.com/"
        forgejo_http_port: 3000
        forgejo_ssh_port: 2222

Inventaire exemple

[git_servers]
git01.example.com

[git_servers:vars]
ansible_user=deploy
ansible_become=true

Structure du déploiement

/home/forgejo/
├── .config/
│   ├── containers/
│   │   ├── storage.conf
│   │   └── registries.conf
│   └── systemd/user/
│       └── container-forgejo.service
├── .local/share/containers/
├── config/
└── data/

Gestion du service

Le service est géré via systemd utilisateur:

# Connexion en tant que forgejo
sudo machinectl -q shell forgejo@
# Vérifier le statut
systemctl --user status container-forgejo.service

# Redémarrer
systemctl --user restart container-forgejo.service

# Voir les logs
journalctl --user -u container-forgejo.service -f

# Ou via podman
sudo -u forgejo podman logs -f forgejo

Sauvegarde

Les données importantes sont dans:

  • {{ forgejo_data_dir }} - Données Git, LFS, attachments
  • {{ forgejo_config_dir }} - Configuration

Tags Ansible

  • forgejo - Toutes les tâches
  • forgejo-validate - Validation des prérequis
  • forgejo-user - Gestion utilisateur
  • forgejo-podman - Configuration Podman
  • forgejo-deploy - Déploiement conteneur
  • forgejo-systemd - Configuration service
# Exemple: seulement reconfigurer
ansible-playbook site.yml --tags deploy

Dépannage

Le conteneur ne démarre pas

# Connexion en tant que forgejo
sudo machinectl -q shell forgejo@
# Vérifier les logs
podman logs forgejo

# Vérifier la configuration
podman inspect forgejo

Problèmes de permissions

# Vérifier les subuid/subgid
grep forgejo /etc/subuid /etc/subgid

# Réinitialiser le stockage si nécessaire
sudo -u forgejo podman system reset

Lingering non actif

# Activer manuellement
sudo loginctl enable-linger forgejo

Licence

GPL-3.0-or-later

Auteur

Hutaeh - HUTIT