diff --git a/nix/modules/hive-forge.nix b/nix/modules/hive-forge.nix index 743834f9..b5ded526 100644 --- a/nix/modules/hive-forge.nix +++ b/nix/modules/hive-forge.nix @@ -60,6 +60,21 @@ in ''; }; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.forgejo; + defaultText = lib.literalExpression "pkgs.forgejo"; + description = '' + Forgejo package to run inside the container. Defaults to + `pkgs.forgejo` (the latest release line) rather than the + nixpkgs-module default of `pkgs.forgejo-lts`, because LTS + lags far behind on schema and the DB easily ends up "newer + than the binary" if the operator ever ran a non-LTS forgejo + against the same state dir. Override to `pkgs.forgejo-lts` + if you actively want the slower release train. + ''; + }; + openFirewall = lib.mkOption { type = lib.types.bool; default = true; @@ -87,6 +102,7 @@ in system.stateVersion = "25.11"; services.forgejo = { enable = true; + package = cfg.package; database.type = "sqlite3"; lfs.enable = true; settings = { diff --git a/scripts/forge-create-token.sh b/scripts/forge-create-token.sh new file mode 100755 index 00000000..4e46a8db --- /dev/null +++ b/scripts/forge-create-token.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Mint a Forgejo access token for an existing user. +# +# Usage: forge-create-token.sh [--name