nixos/services: swap gitea with forgejo
Check / Nix flake (push) Failing after 10s
Lint / Nix expressions (push) Failing after 11s

This commit is contained in:
2026-05-06 14:24:50 +02:00
parent c5579fbd9c
commit 22ec729583
6 changed files with 79 additions and 38 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
./acme.nix
./dns.nix
./fail2ban.nix
./gitea.nix
./forgejo.nix
./host.nix
./nginx.nix
./snapper.nix
@@ -5,14 +5,14 @@ let
acmeEnabled = config.acme.enable;
themeName = "tuxcord";
giteaPublic = pkgs.linkFarm "gitea-public" [
forgejoPublic = pkgs.linkFarm "forgejo-public" [
{
name = "assets/css/theme-${themeName}.css";
path = ../../assets/gitea/theme.css;
path = ../../assets/forgejo/theme.css;
}
{
name = "assets/img";
path = makeGiteaImages {
path = makeForgejoImages {
big = ../../assets/branding/logo.svg;
small = ../../assets/branding/logo-head.svg;
rasterWidth = 1024;
@@ -23,16 +23,16 @@ let
path = ../../assets/branding/logo.svg;
}
];
giteaTemplates = ../../assets/gitea/templates;
forgejoTemplates = ../../assets/forgejo/templates;
makeGiteaImages =
makeForgejoImages =
{
big,
small,
rasterWidth,
}:
pkgs.stdenv.mkDerivation rec {
name = "gitea-images";
name = "forgejo-images";
srcs = [
big
@@ -44,7 +44,7 @@ let
inkscape
];
# https://docs.gitea.com/administration/customizing-gitea#changing-the-logo
# https://forgejo.org/docs/next/contributor/customization/#changing-the-logo
buildPhase = ''
mkdir -p $out
@@ -57,15 +57,18 @@ let
};
in
{
services.gitea = {
services.forgejo = {
enable = true;
appName = "TuxCord Gitea";
database.type = "mysql";
lfs.enable = true;
settings = {
DEFAULT = {
APP_NAME = "TuxCord Code Forge";
};
server = {
DOMAIN = fqdn;
ROOT_URL = "${if acmeEnabled then "https" else "http"}://${fqdn}/";
@@ -89,29 +92,34 @@ in
# TODO: once we have email setup this would be nice
mailer.ENABLED = true;
actions = {
ENABLED = true;
# DEFAULT_ACTIONS_URL = "github";
};
};
};
systemd.services.gitea-branding = {
systemd.services.forgejo-branding = {
enable = true;
wantedBy = [ "gitea.service" ];
before = [ "gitea.service" ];
wantedBy = [ "forgejo.service" ];
before = [ "forgejo.service" ];
serviceConfig = {
Type = "oneshot";
ExecStart = pkgs.writeShellScript "gitea-branding.oneshot" ''
${pkgs.rsync}/bin/rsync -rl --chown gitea:gitea --delete ${giteaPublic}/ ${config.services.gitea.customDir}/public
${pkgs.rsync}/bin/rsync -rl --chown gitea:gitea --delete ${giteaTemplates}/ ${config.services.gitea.customDir}/templates
ExecStart = pkgs.writeShellScript "forgejo-branding.oneshot" ''
${pkgs.rsync}/bin/rsync -rl --chown forgejo:forgejo --delete ${forgejoPublic}/ ${config.services.forgejo.customDir}/public
${pkgs.rsync}/bin/rsync -rl --chown forgejo:forgejo --delete ${forgejoTemplates}/ ${config.services.forgejo.customDir}/templates
'';
};
};
environment.persistence."/persist".directories = [
{
directory = config.services.gitea.stateDir;
group = "gitea";
user = "gitea";
directory = config.services.forgejo.stateDir;
group = "forgejo";
user = "forgejo";
}
];
}
+1 -1
View File
@@ -58,7 +58,7 @@ in
};
"git.${fqdn}" = mkVhost { } {
"/" = mkProxy config.services.gitea.settings.server.HTTP_PORT;
"/" = mkProxy config.services.forgejo.settings.server.HTTP_PORT;
};
};
};