Update config

This commit is contained in:
Lomig 2025-08-31 12:03:52 +02:00
parent e1df4bbbcf
commit 556e0e1eb2
15 changed files with 323 additions and 164 deletions

View file

@ -1,4 +1,93 @@
{ config, pkgs, ... }:
{
{ config, pkgs, ... }:
let
domain = "git.lomig.me"; # <-- mets ton domaine
giteaHttpPort = 3000; # port local de Gitea
in {
########################################
# Base système
########################################
networking.firewall.allowedTCPPorts = [ 80 443 22 ]; # HTTP(S) + SSH (22)
services.openssh.enable = true; # si tu veux aussi OpenSSH pour le reste
########################################
# Base de données Postgres
########################################
services.postgresql = {
enable = true;
ensureDatabases = [ "gitea" ];
ensureUsers = [
{ name = "gitea";
ensureDBOwnership = true;
}
];
};
########################################
# Gitea
########################################
services.gitea = {
enable = true;
appName = "Gitea";
user = "gitea"; # user système service
database = {
type = "postgres";
user = "gitea";
name = "gitea";
host = "127.0.0.1";
};
# Répertoire de données (par défaut: /var/lib/gitea)
stateDir = "/var/lib/gitea";
# Réglages gitea.ini
settings = {
server = {
PROTOCOL = "http";
HTTP_ADDR = "127.0.0.1";
HTTP_PORT = giteaHttpPort;
DOMAIN = domain;
ROOT_URL = "https://${domain}/";
SSH_DOMAIN = domain;
# SSH intégré par Gitea (pratique : pas besoin de configurer un port séparé)
START_SSH_SERVER = true;
SSH_LISTEN_PORT = 2222; # port interne Gitea
SSH_PORT = 22; # port public affiché dans les URLs clone
};
service = {
DISABLE_REGISTRATION = true; # tu créeras les comptes toimême
REQUIRE_SIGNIN_VIEW = false;
REGISTER_EMAIL_CONFIRM = true;
};
# SMTP (remplace par ton vrai relais)
log = {
MODE = "console";
LEVEL = "Info";
};
};
# Création d'un admin au premier démarrage (facultatif mais pratique)
# Remplace le mot de passe et lemail :
# L'utilisateur est créé si inexistant.
};
########################################
# Caddy reverse proxy + TLS
########################################
services.caddy = {
enable = true;
virtualHosts."${domain}".extraConfig = ''
encode zstd gzip
reverse_proxy 127.0.0.1:${toString giteaHttpPort}
'';
# Par défaut, Caddy va récupérer un certificat Let's Encrypt pour le domaine public
# Si domaine local sans DNS public, ajoute `tls internal` dans extraConfig.
};
}
# vim: set ts=2 sw=2 sts=2 et :