From 62ea03a213bb2933c26ef667454749ff1aab4a1f Mon Sep 17 00:00:00 2001 From: Clara Dautermann Date: Fri, 14 Mar 2025 13:31:59 +0100 Subject: [PATCH] set up a config for forgejo --- configs/services/forgejo.nix | 42 ++++++++++++++++++++++++++++++++++++ flake.nix | 1 + 2 files changed, 43 insertions(+) create mode 100644 configs/services/forgejo.nix diff --git a/configs/services/forgejo.nix b/configs/services/forgejo.nix new file mode 100644 index 0000000..07e9bae --- /dev/null +++ b/configs/services/forgejo.nix @@ -0,0 +1,42 @@ +{ lib, pkgs, config, ... }: +let + dbname = "forgejo"; + ssh_port = 2000; +in +{ + + # enable and configure forgejo + services.forgejo = { + enable = true; + database = { + type = "postgres"; + name = dbname; + }; + + settings = { + server = { + DOMAIN = "192.168.178.50"; + SSH_PORT = ssh_port; + # important because otherwise ssh doesn't seem to work… + START_SSH_SERVER = true; + BUILTIN_SSH_SERVER_USER = "git"; + }; + cache = { + ADAPTER = "twoqueue"; + HOST = "{\"size\":100, \"recent_ratio\":0.25, \"ghost_ratio\":0.5}"; + }; + service.DISABLE_REGISTRATION = true; + repository.USE_COMPAT_SSH_URI = true; + security.LOGIN_REMEMBER_DAYS = 365; + }; + }; + + # enable a PostgreSQL DB for forgejo + services.postgresql = { + enable = true; + ensureDatabases = [ dbname ]; + }; + + networking.firewall.allowedTCPPorts = [ 3000 ssh_port ]; + +} diff --git a/flake.nix b/flake.nix index ebdbb66..ab09be0 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ networking.hostName = "testhost"; imports = [ ./configs/container_config.nix + ./configs/services/forgejo.nix ]; }; };