Files
varlog/_cache/articles/f008f509-2cad-437f-9850-7b39ec37262a.json
T
2026-05-15 10:37:48 +02:00

1 line
7.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"uuid":"f008f509-2cad-437f-9850-7b39ec37262a","slug":"gitea-l-installation","title":"gitea, l'installation","author":"cedric@abonnel.fr","published":true,"published_at":"2025-11-07 11:01:57","created_at":"2025-11-07 11:01:57","updated_at":"2025-11-07 11:01:57","revisions":[],"cover":"","category":"informatique","content":"# gitea, l'installation\n\nVoici un guide pas à pas pour installer Gitea sur Debian 13 avec PostgreSQL comme base de données, et configurer un reverse-proxy (par ex. Traefik ou Nginx) pour servir Gitea. \n\n---\n\n## 1. Pré-requis\n\n* Un serveur Debian 13 à jour.\n\n ```bash\n sudo apt update && sudo apt upgrade -y\n ```\n* Installer Git, et éventuellement dautres dépendances.\n\n ```bash\n sudo apt install -y git ca-certificates\n ```\n* Un nom de domaine `git.abonnel.fr` pointant vers votre serveur (DNS A ou AAAA).\n* Assurez-vous que le port 80 et/ou 443 sont ouverts sur le serveur (pour le proxy).\n* Installer PostgreSQL.\n\n---\n\n## 2. Installer PostgreSQL et créer base & utilisateur\n\n1. Installer PostgreSQL (Debian 13 inclut postgresql dans ses dépôts).\n\n ```bash\n sudo apt install -y postgresql postgresql-contrib\n ```\n2. Passer à lutilisateur postgres et créer la base + utilisateur pour Gitea :\n\n ```bash\n sudo -i -u postgres\n psql\n CREATE DATABASE gitea WITH ENCODING 'UTF8' TEMPLATE template0;\n CREATE USER gitea WITH PASSWORD 'votre_mot_de_passe_sécurisé';\n GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea;\n \\q\n exit\n ```\n\n Ces commandes sont conformes à la documentation Gitea pour PostgreSQL. ([Gitea Documentation][1])\n3. Vérifier que PostgreSQL fonctionne :\n\n ```bash\n sudo systemctl status postgresql\n ```\n4. (Optionnel) Modifier le fichier `pg_hba.conf` si vous voulez autoriser certaines connexions supplémentaires (ex: accès réseau).\n\n---\n\n## 3. Installer Gitea\n\n1. Créer un utilisateur système qui va exécuter Gitea :\n\n ```bash\n sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git\n ```\n\n ([Gitea Documentation][2])\n2. Créer les dossiers de travail :\n\n ```bash\n sudo mkdir -p /var/lib/gitea/{custom,data,log}\n sudo chown -R git:git /var/lib/gitea/\n sudo chmod -R 750 /var/lib/gitea/\n sudo mkdir /etc/gitea\n sudo chown root:git /etc/gitea\n sudo chmod 770 /etc/gitea\n ```\n\n ([Gitea Documentation][3])\n3. Télécharger le binaire Gitea :\n\n ```bash\n wget -O gitea https://dl.gitea.com/gitea/1.24.7/gitea-1.24.7-linux-amd64\n chmod +x gitea\n sudo mv gitea /usr/local/bin/gitea\n ```\n\n (Vérifiez la version la plus récente sur le site officiel) ([Gitea Documentation][2])\n4. Créer un fichier de service systemd pour Gitea. Exemple minimal (`/etc/systemd/system/gitea.service`) :\n\n ```ini\n [Unit]\n Description=Gitea (Git with a cup of tea)\n After=network.target postgresql.service\n\n [Service]\n User=git\n Group=git\n WorkingDirectory=/var/lib/gitea/\n ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini\n Restart=always\n Environment=USER=git HOME=/var/lib/gitea GITEA_WORK_DIR=/var/lib/gitea\n\n [Install]\n WantedBy=multi-user.target\n ```\n\n Ensuite :\n\n ```bash\n sudo systemctl daemon-reload\n sudo systemctl enable --now gitea\n sudo systemctl status gitea\n ```\n\n ([Gitea Documentation][4])\n\n---\n\n## 4. Configuration via linterface web\n\n* Ouvrez [http://votre-serveur:3000](http://votre-serveur:3000) (ou le port que Gitea utilise) dans un navigateur.\n* Dans lassistant dinstallation, choisissez *PostgreSQL* comme type de base de données. Entrez :\n\n * Host : `localhost:5432` (ou lIP/port selon)\n * Database : `gitea`\n * Username : `gitea`\n * Password : celui que vous avez défini\n* Dans le champ \"Base URL\", indiquez `https://git.abonnel.fr/` (ou http selon votre setup).\n* Complétez le reste (admin account, etc.).\n ([James R. S. Kemp Git][5])\n\n---\n\n## 5. Configurer reverse-proxy pour `git.abonnel.fr`\n\nSi vous utilisez Nginx ou Traefik (ou un autre proxy) vous devez rediriger le domaine vers Gitea.\n\n### Exemple avec Nginx :\n\n```nginx\nserver {\n listen 80;\n server_name git.abonnel.fr;\n\n # redirection vers HTTPS (si certbot/Lets Encrypt)\n return 301 https://$host$request_uri;\n}\n\nserver {\n listen 443 ssl;\n server_name git.abonnel.fr;\n\n ssl_certificate /etc/letsencrypt/live/git.abonnel.fr/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/git.abonnel.fr/privkey.pem;\n\n location / {\n proxy_pass http://127.0.0.1:3000;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n}\n```\n\nCet exemple est inspiré des tutos dinstallation Gitea + Nginx. ([James R. S. Kemp Git][5])\nSi vous utilisez un autre proxy (ex: Traefik ou « zoraxyproxy »), adaptez la configuration pour quil fasse passer `git.abonnel.fr` vers `localhost:3000` et gère SSL.\n\n### Activer HTTPS\n\n* Installez `certbot` ou utilisez votre gestionnaire de certificats.\n\n ```bash\n sudo apt install -y certbot python3-certbot-nginx\n sudo certbot --nginx -d git.abonnel.fr\n ```\n* Vérifiez que le certificat est actif et que `https://git.abonnel.fr` fonctionne.\n\n---\n\n## 6. Configuration finale dans app.ini\n\nAprès installation, vous pouvez ajuster `/etc/gitea/app.ini` (ou via linterface). Exemples de réglages utiles :\n\n* Dans `[server]` :\n\n ```\n ROOT_URL = https://git.abonnel.fr/\n HTTP_PORT = 3000\n SSH_PORT = 22 # ou le port SSH que vous utilisez pour Git \n START_SSH_SERVER = false # si vous nutilisez pas le serveur SSH interne \n DOMAIN = git.abonnel.fr\n ```\n* Dans `[database]` :\n\n ```\n DB_TYPE = postgres\n HOST = 127.0.0.1:5432\n NAME = gitea\n USER = gitea\n PASSWD = votre_mot_de_passe\n SSL_MODE = disable # ou require selon votre config\n ```\n* Redémarrez Gitea après modification :\n\n ```bash\n sudo systemctl restart gitea\n ```\n\n---\n\n## 7. Sécuriser & entretien\n\n* Assurez-vous que seuls les ports nécessaires sont exposés (ex: 80/443 via proxy, 3000 en local si non exposé).\n* Faites des sauvegardes régulières : base PostgreSQL + dossier `/var/lib/gitea/data` (ou vos dépôts).\n* Vérifiez les logs de Gitea (souvent dans `/var/lib/gitea/log/`).\n* Gardez Gitea et PostgreSQL à jour.\n* Si vous utilisez SSH pour les repos Git, configurez correctement les clés SSH utilisateur et vérifiez que lutilisateur `git` a bien les permissions.\n\n---\n\n\n[1]: https://docs.gitea.com/enterprise/installation/linux?utm_source=chatgpt.com \"Install on Linux | Gitea Enterprise Documentations\"\n[2]: https://docs.gitea.com/installation/install-from-binary?utm_source=chatgpt.com \"Installation from binary | Gitea Documentation\"\n[3]: https://docs.gitea.com/1.18/installation/install-from-binary?utm_source=chatgpt.com \"Installation from binary | Gitea Documentation\"\n[4]: https://docs.gitea.com/1.20/category/installation?utm_source=chatgpt.com \"Installation | Gitea Documentation\"\n[5]: https://git.jamesrskemp.com/hosting/gitea.html?utm_source=chatgpt.com \"Gitea - Git Commands by James Skemp\"\n","featured":false,"files_meta":[],"external_links":[],"tags":[]}