{ ... }: { services.forgejo = { enable = true; stateDir = "/var/lib/forgejo"; database = { createDatabase = true; name = "forgejo"; type = "postgres"; user = "forgejo"; }; settings = let gcArgs = "--aggressive --no-cruft --prune=now"; gcTimeout = 600; in { "cron.cleanup_actions".ENABLED = true; "cron.update_mirrors".SCHEDULE = "@midnight"; "git".GC_ARGS = gcArgs; "git.timeout".GC = gcTimeout; "log".LEVEL = "Error"; "repo-archive".ENABLED = false; "repository.issue".MAX_PINNED = 99999; "repository.pull-request".DEFAULT_MERGE_STYLE = "rebase"; "service".DISABLE_REGISTRATION = true; "server" = { DOMAIN = "git.voronind.com"; HTTP_ADDR = "0.0.0.0"; ROOT_URL = "https://git.voronind.com"; BUILTIN_SSH_SERVER_USER = "git"; DISABLE_SSH = false; SSH_PORT = 22144; START_SSH_SERVER = true; }; "ui" = { AMBIGUOUS_UNICODE_DETECTION = false; }; "repository" = { DEFAULT_PRIVATE = "private"; DEFAULT_PUSH_CREATE_PRIVATE = true; }; "cron" = { ENABLED = true; RUN_AT_START = true; }; "cron.git_gc_repos" = { ENABLED = true; ARGS = gcArgs; SCHEDULE = "@midnight"; TIMEOUT = gcTimeout; }; }; }; }