mirror of
https://github.com/RGBCube/ncc
synced 2025-07-30 11:37:44 +00:00
Start working on Forgejo config
This commit is contained in:
parent
358684b8f4
commit
58f99a156c
4 changed files with 99 additions and 3 deletions
91
hosts/cube/forgejo.nix
Normal file
91
hosts/cube/forgejo.nix
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{ config, ulib, ... }: with ulib;
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (config.networking) domain;
|
||||||
|
|
||||||
|
fqdn = "git.${domain}";
|
||||||
|
in serverSystemConfiguration {
|
||||||
|
age.secrets."cube/password.mail.forgejo".owner = "forgejo";
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
ensureDatabases = [ "forgejo" ];
|
||||||
|
ensureUsers = [{
|
||||||
|
name = "forgejo";
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.forgejo = enabled {
|
||||||
|
lfs = enabled {};
|
||||||
|
|
||||||
|
mailerPasswordFile = config.age.secrets."cube/password.mail.forgejo".path;
|
||||||
|
|
||||||
|
database = {
|
||||||
|
socket = "/run/postgresql";
|
||||||
|
type = "postgres";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
default.APP_NAME = "RGBCube's Forge of Shitty Software";
|
||||||
|
|
||||||
|
actions = {
|
||||||
|
ENABLED = true;
|
||||||
|
DEFAULT_ACTIONS_URL = "https://${fqdn}";
|
||||||
|
};
|
||||||
|
|
||||||
|
attachment.ALLOWED_TYPES = "*/*";
|
||||||
|
|
||||||
|
cache.ENABLED = true;
|
||||||
|
|
||||||
|
mailer = {
|
||||||
|
ENABLED = true;
|
||||||
|
|
||||||
|
PROTOCOL = "smtps";
|
||||||
|
SMTP_ADDR = config.mailserver.fqdn;
|
||||||
|
USER = "git@${domain}";
|
||||||
|
};
|
||||||
|
|
||||||
|
other = {
|
||||||
|
SHOW_FOOTER_TEMPLATE_LOAD_TIME = false;
|
||||||
|
SHOW_FOOTER_VERSION = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
packages.ENABLED = false;
|
||||||
|
|
||||||
|
repository = {
|
||||||
|
DEFAULT_BRANCH = "master";
|
||||||
|
PREFERRED_LICENSES = "MIT,GPL-3.0,GPL-2.0,LGPL-3.0,LGPL-2.1";
|
||||||
|
};
|
||||||
|
|
||||||
|
"repository.upload" = {
|
||||||
|
FILE_MAX_SIZE = 100;
|
||||||
|
MAX_FILES = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
server = {
|
||||||
|
DOMAIN = domain;
|
||||||
|
ROOT_URL = "https://${fqdn}/";
|
||||||
|
LANDING_PAGE = "/explore";
|
||||||
|
|
||||||
|
HTTP_ADDR = "::";
|
||||||
|
HTTP_PORT = 8004;
|
||||||
|
|
||||||
|
SSH_CREATE_AUTHORIZED_KEYS_FILE = true;
|
||||||
|
SSH_PORT = builtins.elemAt config.services.openssh.ports 0;
|
||||||
|
|
||||||
|
DISABLE_ROUTER_LOG = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
service.DISABLE_REGISTRATION = true;
|
||||||
|
|
||||||
|
session = {
|
||||||
|
COOKIE_SECURE = true;
|
||||||
|
SAME_SITE = "strict";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts.${fqdn} = (sslTemplate domain) // {
|
||||||
|
locations."/".proxyPass = "http://[::]:${toString config.services.forgejo.settings.server.HTTP_PORT}";
|
||||||
|
};
|
||||||
|
}
|
|
@ -58,9 +58,6 @@ in serverSystemConfiguration {
|
||||||
enable_metrics = true;
|
enable_metrics = true;
|
||||||
metrics_flags.known_servers = true;
|
metrics_flags.known_servers = true;
|
||||||
|
|
||||||
allow_guest_access = false;
|
|
||||||
enable_registration = false;
|
|
||||||
|
|
||||||
expire_access_token = true;
|
expire_access_token = true;
|
||||||
url_preview_enabled = true;
|
url_preview_enabled = true;
|
||||||
|
|
||||||
|
|
6
secrets/cube/password.mail.forgejo.age
Normal file
6
secrets/cube/password.mail.forgejo.age
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 +rZ0Tw k4u86tbxSaZTIr9QzN2P+md9WwGvn93jOXqR2JHWy30
|
||||||
|
tG7p/GaP0MhTqbAin3KmIMCrE67Ls3NYoztcJT8r7po
|
||||||
|
--- cmz8sBFqHk8RyAae/gBqrWgjCyHrVtngjZGn1xQOze8
|
||||||
|
9rgM’Ð×¶9±¬¹¥òíªgù<67>šÉzã<7A>
|
||||||
|
ý@ÕÙðuO·Þê0×¥ôa
|
|
@ -15,6 +15,8 @@ in with keys; {
|
||||||
|
|
||||||
"cube/password.acme.age".publicKeys = key cube;
|
"cube/password.acme.age".publicKeys = key cube;
|
||||||
|
|
||||||
|
"cube/password.mail.forgejo.age".publicKeys = key cube;
|
||||||
|
|
||||||
"cube/password.grafana.age".publicKeys = key cube;
|
"cube/password.grafana.age".publicKeys = key cube;
|
||||||
"cube/password.mail.grafana.age".publicKeys = key cube;
|
"cube/password.mail.grafana.age".publicKeys = key cube;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue