extremist-software/modules/forgejo.nix
2026-03-15 17:02:59 -07:00

76 lines
2 KiB
Nix

{ config, pkgs, ... }:
let
customDir = "/var/lib/forgejo/custom";
themeCSS = ./forgejo-theme-gh-hc.css;
logoSVG = ./forgejo-logo.svg;
in
{
services.forgejo = {
enable = true;
database.type = "postgres";
lfs.enable = true;
settings = {
server = {
DOMAIN = "git.extremist.software";
ROOT_URL = "https://git.extremist.software/";
HTTP_PORT = 3000;
LANDING_PAGE = "/jet";
};
service = {
DISABLE_REGISTRATION = true;
SHOW_REGISTRATION_BUTTON = false;
EXPLORE_REQUIRE_SIGNIN_VIEW = true;
};
"service.explore" = {
DISABLE_USERS_PAGE = true;
DISABLE_ORGANIZATIONS_PAGE = true;
};
repository = {
DISABLE_STARS = true;
};
ui = {
DEFAULT_THEME = "gh-hc";
THEMES = "gh-hc,forgejo-auto,forgejo-light,forgejo-dark";
SHOW_USER_EMAIL = true;
};
"ui.meta" = {
AUTHOR = "jet";
DESCRIPTION = "Software extremist.";
KEYWORDS = "git,forgejo,jet,extremist";
};
other = {
SHOW_FOOTER_BRANDING = false;
SHOW_FOOTER_VERSION = false;
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false;
ENABLE_SWAGGER = false;
};
openid = {
ENABLE_OPENID_SIGNIN = false;
ENABLE_OPENID_SIGNUP = false;
};
};
database.passwordFile = config.age.secrets.forgejo-db.path;
};
services.postgresql.enable = true;
# Deploy custom theme CSS to Forgejo's custom directory
systemd.tmpfiles.rules = [
"d ${customDir}/public 0755 forgejo forgejo -"
"d ${customDir}/public/assets 0755 forgejo forgejo -"
"d ${customDir}/public/assets/css 0755 forgejo forgejo -"
"C+ ${customDir}/public/assets/css/theme-gh-hc.css 0644 forgejo forgejo - ${themeCSS}"
"d ${customDir}/public/assets/img 0755 forgejo forgejo -"
"C+ ${customDir}/public/assets/img/logo.svg 0644 forgejo forgejo - ${logoSVG}"
"C+ ${customDir}/public/assets/img/favicon.svg 0644 forgejo forgejo - ${logoSVG}"
];
}