nixos/hosts/panam/forgejo.nix

32 lines
903 B
Nix

{ config, pkgs, lib, ... }:
let
cfg = config.services.forgejo;
srv = cfg.settings.server;
in
{
services.forgejo = {
enable = true;
database.type = "sqlite";
lfs.enable = true;
settings = {
server = {
DOMAIN = "git.figtree.dev";
ROOT_URL = "https://git.figtree.dev/";
HTTP_ADDR = "0.0.0.0";
HTTP_PORT = 3000;
};
service.DISABLE_REGISTRATION = true;
};
};
# Open the firewall for Forgejo's HTTP and SSH ports
networking.firewall.allowedTCPPorts = [ 3000 22 ];
# Ensure the user 'alex' is an admin in Forgejo if needed
# (Note: Forgejo doesn't allow 'admin' as a username)
systemd.services.forgejo.preStart = ''
# This will fail if the user already exists, hence || true
${lib.getExe cfg.package} admin user create --admin --email "code@figtree.dev" --username alex --password "changeme123" || true
'';
}