1 line
7.3 KiB
JSON
1 line
7.3 KiB
JSON
{"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 d’autres 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 à l’utilisateur 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 l’interface web\n\n* Ouvrez [http://votre-serveur:3000](http://votre-serveur:3000) (ou le port que Gitea utilise) dans un navigateur.\n* Dans l’assistant d’installation, choisissez *PostgreSQL* comme type de base de données. Entrez :\n\n * Host : `localhost:5432` (ou l’IP/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/Let’s 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 d’installation Gitea + Nginx. ([James R. S. Kemp Git][5])\nSi vous utilisez un autre proxy (ex: Traefik ou « zoraxyproxy »), adaptez la configuration pour qu’il 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 l’interface). 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 n’utilisez 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 l’utilisateur `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":[]} |