flake/systems/etna/forgejo.nix

75 lines
1.5 KiB
Nix
Raw Normal View History

2024-06-20 00:09:45 +02:00
{
config,
2024-07-29 10:58:43 +02:00
_utils,
2024-06-20 00:09:45 +02:00
...
2024-07-29 10:58:43 +02:00
}: let
turnstileSecret = _utils.setupSingleSecret config "turnstileSecret" {
2024-06-20 00:09:45 +02:00
owner = "forgejo";
group = "forgejo";
};
2024-07-29 10:58:43 +02:00
in {
imports = [turnstileSecret.generate];
cfTunnels."git.uku3lig.net" = "http://localhost:3000";
2024-06-20 00:09:45 +02:00
2024-05-19 11:22:42 +02:00
services = {
forgejo = {
enable = true;
2024-05-18 23:03:42 +02:00
2024-05-19 11:22:42 +02:00
database = {
type = "postgres";
createDatabase = true;
};
2024-05-18 23:03:42 +02:00
2024-06-20 00:09:45 +02:00
secrets = {
2024-07-29 10:58:43 +02:00
service.CF_TURNSTILE_SECRET = turnstileSecret.path;
2024-06-20 00:09:45 +02:00
};
2024-05-19 11:22:42 +02:00
settings = {
DEFAULT.APP_NAME = "uku's forge";
server = {
ROOT_URL = "https://git.uku3lig.net";
START_SSH_SERVER = true;
BUILTIN_SSH_SERVER_USER = "git";
SSH_DOMAIN = "ssh.uku.moe";
SSH_LISTEN_PORT = 2222;
};
service = {
ALLOW_ONLY_EXTERNAL_REGISTRATION = true;
ENABLE_CAPTCHA = true;
2024-06-20 00:09:45 +02:00
CAPTCHA_TYPE = "cfturnstile";
CF_TURNSTILE_SITEKEY = "0x4AAAAAAAaemJiXmRluMxbQ";
2024-05-19 11:22:42 +02:00
};
oauth2 = {
# providers are configured in the admin panel
ENABLED = true;
};
actions.ENABLED = false;
"ui.meta" = {
AUTHOR = "uku's forge";
DESCRIPTION = "the place where literally nothing gets done";
};
"repository.signing" = {
DEFAULT_TRUST_MODEL = "committer";
};
2024-05-18 23:03:42 +02:00
};
};
2024-05-19 11:22:42 +02:00
frp.settings.proxies = [
{
name = "forgejo-ssh";
type = "tcp";
localIp = "127.0.0.1";
localPort = 2222;
remotePort = 22;
}
];
};
2024-05-18 23:03:42 +02:00
}