Compare commits
28 commits
c7e6b0bee3
...
4344704394
Author | SHA1 | Date | |
---|---|---|---|
4344704394 | |||
0cb501b43d | |||
7ca6c3b681 | |||
9bfd276bdc | |||
28eca0de78 | |||
f4ac904d47 | |||
b38bd123f4 | |||
a033fb50f9 | |||
81a20bfafe | |||
3fc56ee4d9 | |||
8fecbbd78d | |||
9b258af023 | |||
bf19e2c79d | |||
251d52c56e | |||
2d42832d13 | |||
d362dd864c | |||
8f3d2cacb5 | |||
8da08f5bee | |||
ac8038d53b | |||
a2d92f034b | |||
16342e203e | |||
51e3c38d59 | |||
0ab0c2c5d4 | |||
d4bf6aa8ff | |||
c520de0236 | |||
68a7125822 | |||
d0dd646246 | |||
5edca9c2c6 |
|
@ -123,6 +123,7 @@
|
|||
modules = [
|
||||
./hosts/monolith.nix
|
||||
./system/monolith-gitlab-runner.nix
|
||||
./system/monolith-forgejo-runner.nix
|
||||
./system/nix-serve.nix
|
||||
./system/steam.nix
|
||||
] ++ common_modules;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
./writefreely.nix
|
||||
./renawiki.nix
|
||||
./email.nix
|
||||
./forgejo.nix
|
||||
];
|
||||
|
||||
# # Enable networking
|
||||
|
|
|
@ -9,13 +9,21 @@
|
|||
mailserver = {
|
||||
enable = true;
|
||||
fqdn = "mail.lelgenio.xyz";
|
||||
domains = [ "lelgenio.xyz" ];
|
||||
domains = [
|
||||
"lelgenio.xyz"
|
||||
"git.lelgenio.xyz"
|
||||
];
|
||||
certificateScheme = "acme-nginx";
|
||||
# Create passwords with
|
||||
# nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
|
||||
loginAccounts = {
|
||||
"lelgenio@lelgenio.xyz" = {
|
||||
hashedPassword = "$2y$05$z5s7QCXcs5uTFsfyYpwNJeWzb3RmzgWxNgcPCr0zjSytkLFF/qZmS";
|
||||
aliases = [ "postmaster@lelgenio.xyz" ];
|
||||
};
|
||||
"noreply@git.lelgenio.xyz" = {
|
||||
hashedPassword = "$2b$05$TmR1R7ZwXfec7yrOfeBL7u3ZtyXf0up5dEO6uMWSvb/O7LPEm.j0.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
56
hosts/phantom/forgejo.nix
Normal file
56
hosts/phantom/forgejo.nix
Normal file
|
@ -0,0 +1,56 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
let
|
||||
cfg = config.services.forgejo;
|
||||
srv = cfg.settings.server;
|
||||
in
|
||||
{
|
||||
services.nginx = {
|
||||
virtualHosts.${cfg.settings.server.DOMAIN} = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
extraConfig = ''
|
||||
client_max_body_size 512M;
|
||||
'';
|
||||
locations."/".proxyPass = "http://localhost:${toString srv.HTTP_PORT}";
|
||||
};
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
authorizedKeysFiles = [
|
||||
"${config.services.forgejo.stateDir}/.ssh/authorized_keys"
|
||||
];
|
||||
# Recommended by forgejo: https://forgejo.org/docs/latest/admin/recommendations/#git-over-ssh
|
||||
settings.AcceptEnv = "GIT_PROTOCOL";
|
||||
};
|
||||
|
||||
services.forgejo = {
|
||||
enable = true;
|
||||
database.type = "postgres";
|
||||
lfs.enable = true;
|
||||
settings = {
|
||||
service.DISABLE_REGISTRATION = true;
|
||||
actions = {
|
||||
ENABLED = true;
|
||||
DEFAULT_ACTIONS_URL = "github";
|
||||
};
|
||||
server = {
|
||||
DOMAIN = "git.lelgenio.xyz";
|
||||
HTTP_PORT = 3000;
|
||||
ROOT_URL = "https://${srv.DOMAIN}/";
|
||||
};
|
||||
mailer = {
|
||||
ENABLED = true;
|
||||
SMTP_ADDR = "mail.lelgenio.xyz";
|
||||
FROM = "noreply@git.lelgenio.xyz";
|
||||
USER = "noreply@git.lelgenio.xyz";
|
||||
};
|
||||
};
|
||||
mailerPasswordFile = config.age.secrets.phantom-forgejo-mailer-password.path;
|
||||
};
|
||||
|
||||
age.secrets.phantom-forgejo-mailer-password = {
|
||||
file = ../../secrets/phantom-forgejo-mailer-password.age;
|
||||
mode = "400";
|
||||
owner = "forgejo";
|
||||
};
|
||||
}
|
|
@ -6,5 +6,6 @@
|
|||
smtp.fromAddress = "lelgenio@disroot.org";
|
||||
streamingProcesses = 2;
|
||||
extraConfig.SINGLE_USER_MODE = "true";
|
||||
mediaAutoRemove.olderThanDays = 10;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
security.rtkit.enable = true;
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 9022 ];
|
||||
ports = [ 9022 22 ];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
|
|
|
@ -13,7 +13,8 @@ let
|
|||
"1.1.1.1"
|
||||
"2606:4700:4700::1111"
|
||||
];
|
||||
in {
|
||||
in
|
||||
{
|
||||
networking.nameservers = mkDefault nameservers;
|
||||
services.resolved = mkDefault { fallbackDns = nameservers; };
|
||||
networking.dhcpcd.extraConfig = "noipv4ll";
|
||||
|
@ -21,7 +22,7 @@ in {
|
|||
systemd.services.systemd-sysctl.enable = false;
|
||||
systemd.services.systemd-oomd.enable = false;
|
||||
systemd.sockets."systemd-journald-audit".enable = false;
|
||||
systemd.mounts = [ {where = "/sys/kernel/debug"; enable = false;} ];
|
||||
systemd.mounts = [{ where = "/sys/kernel/debug"; enable = false; }];
|
||||
systemd.services.rpc-gssd.enable = false;
|
||||
|
||||
# Due to our restrictions in /sys, the default systemd-udev-trigger fails
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
executable = true;
|
||||
text = ''
|
||||
systemctl --user import-environment
|
||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
||||
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway SWAYSOCK
|
||||
# systemctl --user stop pipewire wireplumber xdg-desktop-portal xdg-desktop-portal-wlr
|
||||
# systemctl --user start pipewire wireplumber xdg-desktop-portal xdg-desktop-portal-wlr
|
||||
'';
|
||||
|
|
BIN
secrets/monolith-forgejo-runner-token.age
Normal file
BIN
secrets/monolith-forgejo-runner-token.age
Normal file
Binary file not shown.
BIN
secrets/phantom-forgejo-mailer-password.age
Normal file
BIN
secrets/phantom-forgejo-mailer-password.age
Normal file
Binary file not shown.
|
@ -5,9 +5,11 @@ in
|
|||
"rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ main_ssh_public_key ];
|
||||
"monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ main_ssh_public_key ];
|
||||
"gitlab-runner-thoreb-telemetria-registrationConfigFile.age".publicKeys = [ main_ssh_public_key ];
|
||||
"monolith-forgejo-runner-token.age".publicKeys = [ main_ssh_public_key ];
|
||||
"lelgenio-cachix.age".publicKeys = [ main_ssh_public_key ];
|
||||
"monolith-nix-serve-privkey.age".publicKeys = [ main_ssh_public_key ];
|
||||
"phantom-nextcloud.age".publicKeys = [ main_ssh_public_key ];
|
||||
"phantom-writefreely.age".publicKeys = [ main_ssh_public_key ];
|
||||
"phantom-renawiki.age".publicKeys = [ main_ssh_public_key ];
|
||||
"phantom-forgejo-mailer-password.age".publicKeys = [ main_ssh_public_key ];
|
||||
}
|
||||
|
|
12
switch-phantom
Executable file
12
switch-phantom
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
nix fmt
|
||||
|
||||
git diff
|
||||
|
||||
nixos-rebuild switch --flake .#phantom \
|
||||
--update-input nixpkgs \
|
||||
--no-write-lock-file \
|
||||
--build-host phantom \
|
||||
--target-host phantom \
|
||||
"$@"
|
|
@ -59,7 +59,7 @@
|
|||
|
||||
security.rtkit.enable = true;
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
ports = [ 9022 ];
|
||||
settings = {
|
||||
PermitRootLogin = "no";
|
||||
|
|
19
system/monolith-forgejo-runner.nix
Normal file
19
system/monolith-forgejo-runner.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ pkgs, config, ... }: {
|
||||
services.gitea-actions-runner = {
|
||||
package = pkgs.forgejo-actions-runner;
|
||||
instances.default = {
|
||||
enable = true;
|
||||
name = "monolith";
|
||||
url = "https://git.lelgenio.xyz";
|
||||
tokenFile = config.age.secrets.monolith-forgejo-runner-token.path;
|
||||
labels = [
|
||||
# provide a debian base with nodejs for actions
|
||||
"debian-latest:docker://node:18-bullseye"
|
||||
# fake the ubuntu name, because node provides no ubuntu builds
|
||||
"ubuntu-latest:docker://node:18-bullseye"
|
||||
# provide native execution on the host
|
||||
#"native:host"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -6,9 +6,13 @@
|
|||
../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
|
||||
secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file =
|
||||
../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age;
|
||||
secrets.monolith-forgejo-runner-token.file =
|
||||
../secrets/monolith-forgejo-runner-token.age;
|
||||
secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file =
|
||||
../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
|
||||
secrets.monolith-nix-serve-privkey.file =
|
||||
../secrets/monolith-nix-serve-privkey.age;
|
||||
secrets.phantom-forgejo-mailer-password.file =
|
||||
../secrets/phantom-forgejo-mailer-password.age;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue