dot.nix/common/archive/forgejo/default.nix

106 lines
2.1 KiB
Nix

# Configuration for Gitea instance
{
config,
pkgs,
admin,
...
}:
{
# users.users.git = {
# description = "git";
# uid = 993;
# group = "ryot";
# shell = pkgs.fish;
# # openssh.authorizedKeys.keys = [
# # "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIClZstYoT64zHnGfE7LMYNiQPN5/gmCt382lC+Ji8lrH PVE"
# # ];
# };
# Forgejo configuration
services.forgejo = {
enable = true;
group = "ryot";
stateDir = "/pool/forgejo";
# Settings
dump = {
# :D idk what this does
enable = false;
interval = "weekly";
};
settings = {
DEFAULT = {
# Configuration for forgejo
I_AM_BEING_UNSAFE_RUNNING_AS_ROOT = "true";
APP_NAME = "Ryot Git";
RUN_MODE = "dev";
RUN_USER = "toph";
};
server = {
# Configuration for reverse proxy
DOMAIN = "git.ryot.foo";
HTTP_ADDR = "127.0.0.1";
HTTP_PORT = 3003;
ROOT_URL = "https://git.ryot.foo/";
START_SSH_SERVER = true;
BUILTIN_SSH_SERVER_USER = "git";
SSH_PORT = 222;
};
repository = {
DEFAULT_PRIVATE = true;
};
ui = {
DEFAULT_THEME = "forgejo-dark";
SHOW_USER_EMAIL = false;
};
"ui.meta" = {
AUTHOR = "Ryot";
DESCRIPTION = "Ryot Gitea instance";
KEYWORDS = "";
};
security = {
INSTALL_LOCK = true;
};
session = {
SESSION_LIFE_TIME = 86400 * 7; # 1 week
};
picture = {
DISABLE_GRAVATAR = true;
};
"cron.sync_external_users" = {
SCHEDULE = "@every 24h";
UPDATE_EXISTING = true;
};
log.LEVEL = "Info";
# Private server
service.DISABLE_REGISTRATION = false;
# Disable package manager functionality
packages.ENABLED = false;
};
};
users.users.forgejo = {
extraGroups = [ "ryot" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIClZstYoT64zHnGfE7LMYNiQPN5/gmCt382lC+Ji8lrH PVE"
];
};
# Give admin group access to forgejo config
# users.users.${admin}.extraGroups = [ "forgejo" ];
}