From c1748e71247142d3a3307ff7697fd902da5474c0 Mon Sep 17 00:00:00 2001 From: javalsai Date: Sat, 2 May 2026 23:58:12 +0200 Subject: [PATCH] nixos/services: add gitea server --- nixos/common.nix | 2 +- nixos/modules/default.nix | 3 ++- nixos/modules/gitea.nix | 27 +++++++++++++++++++++++++++ nixos/modules/nginx.nix | 4 ++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 nixos/modules/gitea.nix diff --git a/nixos/common.nix b/nixos/common.nix index b8c91c2..0fc7e03 100644 --- a/nixos/common.nix +++ b/nixos/common.nix @@ -95,7 +95,7 @@ in extraHosts = let - subdomains = [ "" ]; + subdomains = [ "" ".git" ]; in builtins.foldl' ( hosts-acc: domain-prefix: diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index 309d42d..e8b7049 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -1,10 +1,11 @@ { imports = [ ./fail2ban.nix - ./sysctl.nix + ./gitea.nix ./host.nix ./nginx.nix ./snapper.nix ./substituters.nix + ./sysctl.nix ]; } diff --git a/nixos/modules/gitea.nix b/nixos/modules/gitea.nix new file mode 100644 index 0000000..7d33da8 --- /dev/null +++ b/nixos/modules/gitea.nix @@ -0,0 +1,27 @@ +{ config, lib, ... }: +{ + services.gitea = { + enable = true; + + appName = "Tuxcord's Gitea"; + database.type = "mysql"; + + lfs.enable = true; + + settings.server.DOMAIN = config.networking.fqdn; + # settings.server.ROOT_URL = "https://git.tuxcord.net/"; ? would also depend on ssl status + settings.server.HTTP_PORT = 3000; + + settings.service.DISABLE_REGISTRATION = true; + settings.service.REQUIRE_SIGNIN_VIEW = false; + + settings.repository.ENABLE_PUSH_CREATE_USER = true; + settings.repository.ENABLE_PUSH_CREATE_ORG = true; + settings.repository.DEFAULT_BRANCH = "main"; + + # settings.ui.DEFAULT_THEME = "..."; + + # TODO: once we have email setup this would be nice + settings.mailer.ENABLED = true; + }; +} diff --git a/nixos/modules/nginx.nix b/nixos/modules/nginx.nix index 38ff082..3cb816a 100644 --- a/nixos/modules/nginx.nix +++ b/nixos/modules/nginx.nix @@ -28,5 +28,9 @@ in # root = "/var/www/myhost.org"; # default = true; # }; + + virtualHosts."git.${fqdn}" = mkVhost { + locations."/" = mkProxy config.services.gitea.settings.server.HTTP_PORT; + }; }; }