enable forgejo on vps

This commit is contained in:
Yan Lin 2026-02-17 20:51:20 +01:00
parent d5376704ca
commit fa04def7a1
4 changed files with 38 additions and 1 deletions

View file

@ -38,6 +38,17 @@
}; };
}; };
git = {
rule = "Host(`git.yanlincs.com`)";
service = "git";
tls = {
certResolver = "cloudflare";
domains = [{
main = "*.yanlincs.com";
}];
};
};
}; };
services = { services = {
@ -59,6 +70,14 @@
}; };
}; };
git = {
loadBalancer = {
servers = [{
url = "http://127.0.0.1:3000";
}];
};
};
}; };
}; };

View file

@ -10,6 +10,7 @@
../../../modules/podman.nix ../../../modules/podman.nix
../../../modules/traefik.nix ../../../modules/traefik.nix
../../../modules/borg/client.nix ../../../modules/borg/client.nix
../../../modules/git/server.nix
]; ];
# GRUB bootloader with UEFI support # GRUB bootloader with UEFI support
@ -72,12 +73,18 @@
services.tailscale-custom.exitNode = true; services.tailscale-custom.exitNode = true;
services.git-server-custom = {
enable = true;
domain = "git.yanlincs.com";
};
# Borg backup configuration # Borg backup configuration
services.borg-client-custom = { services.borg-client-custom = {
enable = true; enable = true;
repositoryUrl = "ssh://helsinki-box/./vps"; repositoryUrl = "ssh://helsinki-box/./vps";
backupPaths = [ backupPaths = [
"/var/lib/mongodb" "/var/lib/mongodb"
"/var/lib/forgejo"
]; ];
backupFrequency = "*-*-* 03:00:00"; backupFrequency = "*-*-* 03:00:00";
retention = { retention = {

View file

@ -1,4 +1,7 @@
{ config, lib, ... }: # NOTE: After install, use the following command to create admin account.
# sudo -u forgejo forgejo --config /var/lib/forgejo/custom/conf/app.ini admin user create --admin --username <user> --password <pass> --email <email>
{ config, lib, pkgs, ... }:
let let
cfg = config.services.git-server-custom; cfg = config.services.git-server-custom;
@ -24,6 +27,8 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
environment.systemPackages = [ config.services.forgejo.package ];
services.forgejo = { services.forgejo = {
enable = true; enable = true;
lfs.enable = true; lfs.enable = true;
@ -35,6 +40,7 @@ in
HTTP_ADDR = "127.0.0.1"; HTTP_ADDR = "127.0.0.1";
HTTP_PORT = cfg.httpPort; HTTP_PORT = cfg.httpPort;
SSH_PORT = cfg.sshPort; SSH_PORT = cfg.sshPort;
LANDING_PAGE = "/yanlin";
}; };
service.DISABLE_REGISTRATION = true; service.DISABLE_REGISTRATION = true;
}; };

View file

@ -51,6 +51,11 @@ in
identityFile = "${keyDir}/hetzner"; identityFile = "${keyDir}/hetzner";
}; };
"git.yanlincs.com" = {
user = "forgejo";
identityFile = "${keyDir}/hetzner";
};
"borg-box" = { "borg-box" = {
hostname = "u518619.your-storagebox.de"; hostname = "u518619.your-storagebox.de";
user = "u518619"; user = "u518619";