diff options
Diffstat (limited to 'modules/services/nixos/forgejo.nix')
| -rw-r--r-- | modules/services/nixos/forgejo.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/services/nixos/forgejo.nix b/modules/services/nixos/forgejo.nix new file mode 100644 index 0000000..5c98633 --- /dev/null +++ b/modules/services/nixos/forgejo.nix @@ -0,0 +1,48 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.services.forgejo; +in { + imports = [ + (import ./mkCaddyCfg.nix cfg) + ]; + + config = lib.mkIf cfg.enable { + services.forgejo = { + enable = true; + database.type = "sqlite3"; + settings = { + server = { + DOMAIN = "localhost"; + ROOT_URL = cfg.root_url; + HTTP_PORT = cfg.port; + + # ssh + START_SSH_SERVER = true; # use builtin ssh server + BUILTIN_SSH_SERVER_USER = "git"; + SSH_DOMAIN = cfg.root_url or "ganymede"; + SSH_PORT = cfg.git_ssh_port; # don't conflict with system ssh + SSH_LISTEN_HOST = cfg.bind_host; + SSH_LISTEN_PORT = cfg.git_ssh_port; + }; + service = { + DISABLE_REGISTRATION = false; + ENABLE_REVERSE_PROXY_AUTHENTICATION = true; + }; + repository = { + # disable stuff + DISABLE_MIGRATIONS = true; + DISABLE_STARS = true; + DISABLE_DOWNLOAD_SOURCE_ARCHIVES = true; + }; + }; + }; + + systemd.services."forgejo" = lib.mkIf config.collinux.services.networking.networkd.enable { + after = lib.mkAfter ["network-online.target"]; + wants = lib.mkAfter ["network-online.target"]; + }; + }; +} |
