added forgejo.nix

This commit is contained in:
mc-fucker 2025-03-10 11:05:50 +01:00
parent 5c5100ce62
commit f1feebbbca

68
modules/forgejo.nix Normal file
View file

@ -0,0 +1,68 @@
{ config, lib, ... }:
let
cfg = import ./vars.nix;
service = "forgejo";
dbport = cfg."${service}".dbport;
domain = cfg."${service}".domain;
port = cfg."${service}".port;
sshport = cfg."${service}".sshport;
in
{
imports = [
./podman-postgresql.nix # for the database
./nginx.nix # for the webserver
];
sops.secrets."gitea/db" = {};
services.podman-postgresql."${service}" = {
enable = true;
image = "docker.io/library/postgres:17-alpine";
port = (lib.strings.toInt dbport);
passwordFile = config.sops.secrets."gitea/db".path;
};
virtualisation.oci-containers.containers."${service}" = {
image = "codeberg.org/forgejo/forgejo:10";
environment = {
TZ = "Europe/Berlin";
};
ports = [
"${port}:3000"
"${sshport}:22"
];
volumes = [
"/var/lib/${service}:/data"
];
extraOptions = cfg.podman.extraOptions;
};
services.nginx.virtualHosts."${domain}" = {
forceSSL = true;
enableACME = true;
locations = {
"/" = {
proxyPass = "http://localhost:${port}";
extraConfig = ''
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 512M;
'';
};
};
extraConfig = ''
access_log /var/log/nginx/${domain}_access.log;
error_log /var/log/nginx/${domain}_error.log;
'';
};
}
# vim: set et ts=2 sw=2 ai: