Files
nixos/hosts/fw.cloonar.com/modules/gitea.nix
2023-12-02 20:03:02 +01:00

86 lines
1.8 KiB
Nix

{ config, ... }:
let
domain = "git.cloonar.com";
ip = "10.42.97.3";
in
{
users.users.gitea = {
isSystemUser = true;
uid = 990;
group = "gitea";
home = "/var/lib/gitea";
createHome = true;
};
users.groups.gitea = {
gid = 989;
};
services.nginx.virtualHosts."${domain}" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "https://${ip}:443/";
extraConfig = ''
proxy_set_header=Host ${domain}
'';
};
};
environment.etc."gitea/app.ini".text = ''
APP_NAME = Cloonar Gitea server
RUN_MODE = prod
[cron.update_checker]
ENABLED=false
[database]
DB_TYPE=sqlite3
PATH=/bitnami/gitea/data/gitea.db
[openid]
ENABLE_OPENID_SIGNIN=false
ENABLE_OPENID_SIGNUP=true
WHITELISTED_URIS=auth.cloonar.com
[server]
DISABLE_SSH=false
DOMAIN=git.cloonar.com
HTTP_ADDR=0.0.0.0
HTTP_PORT=443
PROTOCOL=https
ROOT_URL=https://git.cloonar.com/
SSH_PORT=22
CERT_FILE=/ssl/fullchain.pem
KEY_FILE=/ssl/key.pem
[service]
ALLOW_ONLY_EXTERNAL_REGISTRATION=true
DISABLE_REGISTRATION=false
SHOW_REGISTRATION_BUTTON=false
[webhook]
ALLOWED_HOST_LIST=drone.cloonar.com
'';
virtualisation = {
oci-containers.containers = {
gitea = {
image = "gitea/gitea:1";
volumes = [
"/var/lib/gitea:/data"
"/etc/gitea/app.ini:/data/custom/conf/app.ini:ro"
"/var/lib/acme/git.cloonar.com:/ssl:ro"
"/etc/timezone:/etc/timezone:ro"
"/etc/localtime:/etc/localtime:ro"
];
environment = {
USER_UID = builtins.toString config.users.users.gitea.uid;
USER_GID = builtins.toString config.users.groups.gitea.gid;
};
extraOptions = [
"--ip=${ip}"
];
};
};
};
}