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 = [
|
||||
"${modulesPath}/virtualisation/amazon-image.nix"
|
||||
nixosModules.nano
|
||||
nixosModules.nettika
|
||||
nixosModules.promptmoji
|
||||
agenix.nixosModules.default
|
||||
./forgejo.nix
|
||||
./vaultwarden.nix
|
||||
];
|
||||
|
||||
boot.loader.grub.device = lib.mkForce "/dev/nvme0n1";
|
||||
|
|
@ -26,8 +28,6 @@
|
|||
firewall.allowedTCPPorts = [ 80 443 ];
|
||||
};
|
||||
|
||||
age.secrets.vaultwarden-env.file = ./secrets/vaultwarden-env.age;
|
||||
|
||||
users.defaultUserShell = pkgs.fish;
|
||||
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
|
@ -39,27 +39,10 @@
|
|||
respond "astral is online"
|
||||
header Strict-Transport-Security: "max-age=63072000; includeSubDomains"
|
||||
'';
|
||||
"vault.leaf.ninja".extraConfig = ''
|
||||
reverse_proxy localhost:8222
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
services.vaultwarden = {
|
||||
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;
|
||||
};
|
||||
services.postgresql.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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue