Tobserver/modules/forgejo.nix
2026-08-01 13:56:44 +07:00

66 lines
1.5 KiB
Nix

{ pkgs, ... }:
{
services.forgejo = {
enable = true;
package = pkgs.forgejo-lts;
stateDir = "/var/lib/forgejo";
repositoryRoot = "/var/lib/forgejo/repositories";
database = {
type = "sqlite3";
path = "/var/lib/forgejo/data/forgejo.db";
};
lfs.enable = false;
settings = {
server = {
PROTOCOL = "http";
HTTP_ADDR = "127.0.0.1";
HTTP_PORT = 3001;
DOMAIN = "git.tobiasostner.de";
ROOT_URL = "https://git.tobiasostner.de/";
SSH_DOMAIN = "git.tobiasostner.de";
SSH_PORT = 22;
SSH_USER = "forgejo";
START_SSH_SERVER = false;
};
service.DISABLE_REGISTRATION = true;
session.COOKIE_SECURE = true;
actions.ENABLED = false;
packages.ENABLED = false;
mailer.ENABLED = false;
};
};
services.nginx.virtualHosts."git.tobiasostner.de" = {
enableACME = true;
forceSSL = true;
extraConfig = ''
merge_slashes off;
'';
locations."/" = {
proxyPass = "http://127.0.0.1:3001";
extraConfig = ''
client_max_body_size 512M;
proxy_http_version 1.1;
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;
proxy_set_header Connection $http_connection;
proxy_set_header Upgrade $http_upgrade;
'';
};
};
environment.systemPackages = [ pkgs.forgejo-lts ];
}