Setup forgejo on astral
This commit is contained in:
parent
b665d7cffe
commit
735f424315
5 changed files with 74 additions and 21 deletions
|
|
@ -1,10 +1,12 @@
|
||||||
{ modulesPath, nixosModules, agenix, lib, pkgs, config, ... }: {
|
{ modulesPath, nixosModules, agenix, lib, pkgs, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
"${modulesPath}/virtualisation/amazon-image.nix"
|
"${modulesPath}/virtualisation/amazon-image.nix"
|
||||||
nixosModules.nano
|
nixosModules.nano
|
||||||
nixosModules.nettika
|
nixosModules.nettika
|
||||||
nixosModules.promptmoji
|
nixosModules.promptmoji
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
|
./forgejo.nix
|
||||||
|
./vaultwarden.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.loader.grub.device = lib.mkForce "/dev/nvme0n1";
|
boot.loader.grub.device = lib.mkForce "/dev/nvme0n1";
|
||||||
|
|
@ -26,8 +28,6 @@
|
||||||
firewall.allowedTCPPorts = [ 80 443 ];
|
firewall.allowedTCPPorts = [ 80 443 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
age.secrets.vaultwarden-env.file = ./secrets/vaultwarden-env.age;
|
|
||||||
|
|
||||||
users.defaultUserShell = pkgs.fish;
|
users.defaultUserShell = pkgs.fish;
|
||||||
|
|
||||||
security.sudo.wheelNeedsPassword = false;
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
|
@ -39,27 +39,10 @@
|
||||||
respond "astral is online"
|
respond "astral is online"
|
||||||
header Strict-Transport-Security: "max-age=63072000; includeSubDomains"
|
header Strict-Transport-Security: "max-age=63072000; includeSubDomains"
|
||||||
'';
|
'';
|
||||||
"vault.leaf.ninja".extraConfig = ''
|
|
||||||
reverse_proxy localhost:8222
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.vaultwarden = {
|
services.postgresql.enable = true;
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
domain = "https://vault.leaf.ninja";
|
|
||||||
signupsAllowed = false;
|
|
||||||
rocketAddress = "0.0.0.0";
|
|
||||||
rocketPort = 8222;
|
|
||||||
smtpHost = "smtp.migadu.com";
|
|
||||||
smtpFrom = "vaultwarden@leaf.ninja";
|
|
||||||
smtpPort = 587;
|
|
||||||
smtpSecurity = "starttls";
|
|
||||||
smtpUsername = "vaultwarden@leaf.ninja";
|
|
||||||
};
|
|
||||||
environmentFile = config.age.secrets.vaultwarden-env.path;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
|
|
||||||
|
|
|
||||||
36
hosts/astral/forgejo.nix
Normal file
36
hosts/astral/forgejo.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
{ config, ... }:
|
||||||
|
let domain = "git.leaf.ninja";
|
||||||
|
in {
|
||||||
|
services.forgejo = {
|
||||||
|
enable = true;
|
||||||
|
database.type = "postgres";
|
||||||
|
lfs.enable = true;
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
DOMAIN = domain;
|
||||||
|
ROOT_URL = "https://${domain}/";
|
||||||
|
HTTP_PORT = 3000;
|
||||||
|
};
|
||||||
|
service.DISABLE_REGISTRATION = true;
|
||||||
|
mailer = {
|
||||||
|
ENABLED = true;
|
||||||
|
SMTP_ADDR = "smtp.migadu.com";
|
||||||
|
FROM = "forgejo@leaf.ninja";
|
||||||
|
USER = "forgejo@$leaf.ninja";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
secrets = {
|
||||||
|
mailer.PASSWD = config.age.secrets.forgejo-mailer-password.path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.caddy.virtualHosts.${domain}.extraConfig = ''
|
||||||
|
reverse_proxy localhost:3000
|
||||||
|
'';
|
||||||
|
|
||||||
|
age.secrets.forgejo-mailer-password = {
|
||||||
|
file = ./secrets/forgejo-mailer-password.age;
|
||||||
|
mode = "400";
|
||||||
|
owner = "forgejo";
|
||||||
|
};
|
||||||
|
}
|
||||||
7
hosts/astral/secrets/forgejo-mailer-password.age
Normal file
7
hosts/astral/secrets/forgejo-mailer-password.age
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 f+PJrQ 6h8dfxbHOBbyTK6iwzbqVpUUYJtJhg6XMAoRWDhbdT8
|
||||||
|
kZSsccA4qkiTS8wNdZphZ9cioiFbXjR4xkVZBi1j0aM
|
||||||
|
-> ssh-ed25519 nz/vnw Q+BuraNFun6RwcLPFcKcjBptgpZdddI+hQP2UVKFJmA
|
||||||
|
WJNvdIDTDBXbaXYw7gom7YQTTNrxlsP1EvTDNN5G9+0
|
||||||
|
--- a6gvFS7YixX30i1Jm04vrwzq3Xh9iXufdnZMnPPI+Mw
|
||||||
|
ÒÍÔ‡]‡¤h6µ+„2xDŸÇUŸãZºâeAzêÿ³DkÔLÇ;½†Iª ê/Œæ'®éøï4nL»T<4Ó}iãÁí _ÛÝ‹à
|
||||||
25
hosts/astral/vaultwarden.nix
Normal file
25
hosts/astral/vaultwarden.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{ config, ... }:
|
||||||
|
let domain = "vault.leaf.ninja";
|
||||||
|
in {
|
||||||
|
services.vaultwarden = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
domain = "https://${domain}";
|
||||||
|
signupsAllowed = false;
|
||||||
|
rocketAddress = "0.0.0.0";
|
||||||
|
rocketPort = 8222;
|
||||||
|
smtpHost = "smtp.migadu.com";
|
||||||
|
smtpFrom = "vaultwarden@leaf.ninja";
|
||||||
|
smtpPort = 587;
|
||||||
|
smtpSecurity = "starttls";
|
||||||
|
smtpUsername = "vaultwarden@leaf.ninja";
|
||||||
|
};
|
||||||
|
environmentFile = config.age.secrets.vaultwarden-env.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.caddy.virtualHosts.${domain}.extraConfig = ''
|
||||||
|
reverse_proxy localhost:8222
|
||||||
|
'';
|
||||||
|
|
||||||
|
age.secrets.vaultwarden-env.file = ./secrets/vaultwarden-env.age;
|
||||||
|
}
|
||||||
|
|
@ -11,4 +11,6 @@ in {
|
||||||
"hosts/quasar/secrets/matrix-synapse-secrets.age".publicKeys =
|
"hosts/quasar/secrets/matrix-synapse-secrets.age".publicKeys =
|
||||||
[ marauder quasar ];
|
[ marauder quasar ];
|
||||||
"hosts/astral/secrets/vaultwarden-env.age".publicKeys = [ marauder astral ];
|
"hosts/astral/secrets/vaultwarden-env.age".publicKeys = [ marauder astral ];
|
||||||
|
"hosts/astral/secrets/forgejo-mailer-password.age".publicKeys =
|
||||||
|
[ marauder astral ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue