Tous les systèmes opérationnels 21 cryptomonnaies acceptées · Monero bienvenu Politique sans KYC
ChainVPS

Dev · sans KYC

Hébergez Gitea sur un VPS offshore

Déployez votre propre forge Git légère sur un VPS sans KYC payable en crypto, et gardez chaque dépôt, ticket et pipeline CI à l'écart des clouds tiers.

Ce que c'est

Gitea est un service Git auto-hébergé écrit en Go — une alternative légère à GitHub/GitLab offrant dépôts, pull requests, tickets, wikis, releases et Actions (CI/CD). Il se distribue sous forme d'un binaire unique ou d'une image Docker à faible empreinte mémoire, ce qui en fait un choix idéal pour les équipes qui veulent garder le contrôle total de leur code source.

Pourquoi l'héberger en offshore

Le code source figure parmi les données les plus sensibles que détient une équipe ; l'héberger sur un VPS offshore et sans identité le maintient hors de portée des grandes plateformes d'hébergement de code et de leurs régimes de rétention de données et de retraits forcés. Payer en crypto sans KYC signifie que l'infrastructure de votre projet n'est rattachée à aucune identité d'entreprise, et la bande passante illimitée permet aux clones, exécutions CI et téléchargements de releases de circuler sans mauvaise surprise de facturation.

Le déploiement

Une configuration de référence fonctionnelle

Copiez ceci sur une nouvelle instance ChainVPS. Remplacez les paramètres, puis lancez-la.

docker-compose.yml

# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
  server:
    image: gitea/gitea:1.22
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
      # correct clone URLs — set to your domain once DNS is ready:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI — front with a TLS reverse proxy in production
      - "222:22"      # git-over-SSH (host 222 -> container 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

Pare-feu

Ports à ouvrir

PortProtocoleObjectif
3000TCPInterface web Gitea et git en HTTP — à garder derrière un reverse proxy TLS (Caddy/Nginx) en production
222TCPGit par SSH (port hôte mappé vers le port 22 du conteneur) pour cloner/pousser via des clés SSH
443TCPHTTPS via votre reverse proxy une fois le domaine et le certificat en place
22TCPSSH de l'hôte pour l'administration — à garder sur un port distinct du 222 de Gitea, en authentification par clé uniquement

Dimensionnement optimal

De quel forfait vous avez besoin

Léger

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

Développeur solo ou une poignée d'utilisateurs, quelques dizaines de dépôts, pas de CI. Gitea tourne au repos autour de 150-200 MB RAM.

Moyen

VPS Pro (2-4 vCPU, 4-8 GB RAM)

Petite équipe, pull requests actifs, plus un ou deux runners Gitea Actions pour la CI. Ajoutez un volume de stockage pour les gros artefacts de release.

Élevé

Dédié (ou VPS Storage pour les dépôts)

De nombreux utilisateurs simultanés, de gros monorepos, une forte concurrence de CI, ou des médias volumineux via LFS. Un CPU dédié garde les opérations de clone/pack réactives ; associez-le à un plan Storage pour les données de dépôts/LFS.

Meilleurs emplacements : Choisissez un emplacement à forte protection de la vie privée — la Suisse (CH) et l'Islande (IS) offrent la posture de protection des données la plus solide pour le code source, avec les Pays-Bas (NL), la Roumanie (RO), la Moldavie (MD) et le Luxembourg (LU) comme alternatives offshore solides. Choisissez la région la plus proche de vos contributeurs pour réduire la latence des clones/push, les allers-retours git étant sensibles à la latence.

Verrouillez-le

Liste de vérification du durcissement

  • N'exposez jamais le port 3000 brut sur Internet — placez Gitea derrière un reverse proxy TLS (Caddy en auto-HTTPS ou Nginx + certbot) et définissez GITEA__server__ROOT_URL sur le domaine https afin que les URL de clonage soient correctes.
  • Définissez DISABLE_REGISTRATION=true (déjà présent dans le compose) juste après avoir créé votre compte admin, afin que personne ne puisse s'auto-inscrire ; invitez les utilisateurs manuellement ou via le panneau d'administration.
  • Gardez le git par SSH sur le port 222 et le sshd propre à l'hôte sur un port différent, tous deux en authentification par clé uniquement (PasswordAuthentication no) ; Gitea gère son fichier authorized_keys en interne, ne l'éditez donc pas manuellement.
  • Activez la 2FA pour chaque compte et rendez-la obligatoire pour l'admin ; sortez le mot de passe de la base de données des variables d'environnement pour le placer dans un secret Docker ou un fichier .env avec des permissions 600.
  • Sauvegardez ./gitea (dépôts, configuration, LFS) ainsi qu'un pg_dump de la base de données gitea selon un planning régulier, et figez l'image sur un tag de version (gitea/gitea:1.22) plutôt que latest afin que les mises à jour soient volontaires — lisez les notes de version avant de monter en version majeure.

Questions

Hébergement Gitea — FAQ

Puis-je exécuter du CI/CD sans service séparé ?

Oui. Gitea intègre Actions (compatible GitHub Actions). Activez-la, puis enregistrez un conteneur runner (gitea/act_runner) auprès de votre instance. Pour une charge CI réelle, utilisez un plan de taille Moyenne ou supérieure afin que les builds n'étouffent pas le service web.

SQLite, MySQL ou PostgreSQL ?

SQLite convient à un utilisateur unique avec un usage léger et ne nécessite aucun conteneur de base de données. Pour toute équipe ou perspective de croissance, utilisez PostgreSQL comme indiqué dans le compose — il gère bien mieux la concurrence et se sauvegarde très simplement avec pg_dump.

Comment migrer mes dépôts depuis GitHub/GitLab ?

L'outil de migration intégré à Gitea importe un dépôt à partir de son URL, y compris les tickets, PR, releases et wiki. Ajoutez un token pour la plateforme source dans le formulaire de migration afin de récupérer les dépôts privés et leurs métadonnées.

Cela gère-t-il les fichiers volumineux (Git LFS) ?

Oui, LFS est pris en charge nativement et stocké sous /data. Si vous hébergez des binaires ou médias volumineux, placez ./gitea sur un volume Storage VPS et prévoyez l'espace disque en conséquence — les objets LFS s'accumulent vite.

Mon code reste-t-il privé sur un hébergeur sans KYC ?

Vos dépôts vivent entièrement sur le disque de votre VPS, dans la juridiction offshore de votre choix ; rien n'est répliqué vers un tiers. Gardez l'inscription désactivée, utilisez HTTPS + clés SSH, activez la 2FA, et effectuez des sauvegardes chiffrées hors serveur pour un contrôle total.

Déployer Gitea
dans les 60 prochaines secondes.

Bande passante illimitée · DDoS inclus · 21 cryptomonnaies · sans KYC.