services/forgejo: move from hosts/kazuki

This commit is contained in:
Nikodem Rabuliński 2025-02-05 16:28:31 +01:00
parent 678005a0ee
commit 1ee44a7124
Signed by: nrabulinski
SSH key fingerprint: SHA256:AZZVyfKStaCo8sbJB+3Rr/CRrlym1oEgw7vMnynJeR8
4 changed files with 70 additions and 63 deletions

View file

@ -15,7 +15,6 @@
./storage.nix
./ntfy.nix
./zitadel.nix
./forgejo.nix
./prometheus.nix
];

View file

@ -1,62 +0,0 @@
{ config, ... }:
{
age.secrets.rab-lol-cf = {
file = ../../secrets/rab-lol-cf.age;
owner = config.services.nginx.user;
};
services.forgejo = {
enable = true;
settings = {
server = {
DOMAIN = "git.rab.lol";
ROOT_URL = "https://git.rab.lol/";
};
oauth2_client = {
REGISTER_EMAIL_CONFIRM = false;
ENABLE_AUTO_REGISTRATION = true;
ACCOUNT_LINKING = "auto";
UPDATE_AVATAR = true;
};
service = {
DISABLE_REGISTRATION = false;
ALLOW_ONLY_INTERNAL_REGISTRATION = false;
ALLOW_ONLY_EXTERNAL_REGISTRATION = true;
};
federation.ENABLED = true;
};
repositoryRoot = "/storage-box/forgejo/repos";
lfs = {
enable = true;
contentDir = "/storage-box/forgejo/lfs";
};
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedTlsSettings = true;
virtualHosts."git.rab.lol" = {
forceSSL = true;
enableACME = true;
acmeRoot = null;
locations."/" = {
proxyPass = "http://127.0.0.1:3000";
extraConfig = ''
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
'';
};
};
};
users.users.nginx.extraGroups = [ "acme" ];
security.acme.acceptTerms = true;
security.acme.certs."git.rab.lol" = {
dnsProvider = "cloudflare";
credentialsFile = config.age.secrets.rab-lol-cf.path;
email = "nikodem@rabulinski.com";
};
}

View file

@ -2,5 +2,6 @@
imports = [
./attic.nix
./forgejo-runner.nix
./forgejo.nix
];
}

69
services/forgejo.nix Normal file
View file

@ -0,0 +1,69 @@
{
services.forgejo = {
host = "kazuki";
ports = [ 3000 ];
config =
{ config, ... }:
{
age.secrets.rab-lol-cf = {
file = ../secrets/rab-lol-cf.age;
owner = config.services.nginx.user;
};
services.forgejo = {
enable = true;
settings = {
server = {
DOMAIN = "git.rab.lol";
ROOT_URL = "https://git.rab.lol/";
};
oauth2_client = {
REGISTER_EMAIL_CONFIRM = false;
ENABLE_AUTO_REGISTRATION = true;
ACCOUNT_LINKING = "auto";
UPDATE_AVATAR = true;
};
service = {
DISABLE_REGISTRATION = false;
ALLOW_ONLY_INTERNAL_REGISTRATION = false;
ALLOW_ONLY_EXTERNAL_REGISTRATION = true;
};
federation.ENABLED = true;
};
repositoryRoot = "/storage-box/forgejo/repos";
lfs = {
enable = true;
contentDir = "/storage-box/forgejo/lfs";
};
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedTlsSettings = true;
virtualHosts."git.rab.lol" = {
forceSSL = true;
enableACME = true;
acmeRoot = null;
locations."/" = {
proxyPass = "http://127.0.0.1:3000";
extraConfig = ''
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
'';
};
};
};
users.users.nginx.extraGroups = [ "acme" ];
security.acme.acceptTerms = true;
security.acme.certs."git.rab.lol" = {
dnsProvider = "cloudflare";
credentialsFile = config.age.secrets.rab-lol-cf.path;
email = "nikodem@rabulinski.com";
};
};
};
}