aboutsummaryrefslogtreecommitdiff
path: root/modules/services/nixos/forgejo.nix
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-01-29 20:15:19 -0600
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-01-30 08:38:21 -0600
commitc9a1d2da80bca0a85e8c18f6d2db71c4d1127eda (patch)
tree9da79e318ff0533a3708aee85a0b6a6d7f1d1036 /modules/services/nixos/forgejo.nix
parentc81952cbcb6c6f1b41c2b6e2a366891991cceaee (diff)
Spring Cleaning
- create new module, `system`, that consumes the `boot` module and takes in the more system-interested services from the `services` module - touch up left over services (which are more self-hosting interested) - touch up yo and yoshi configs
Diffstat (limited to 'modules/services/nixos/forgejo.nix')
-rw-r--r--modules/services/nixos/forgejo.nix48
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"];
+ };
+ };
+}