loptland: more modules
This commit is contained in:
parent
82f7af3856
commit
c863aa7354
4 changed files with 90 additions and 19 deletions
|
|
@ -50,7 +50,6 @@
|
||||||
defaultSopsFile = ../../../secrets/secrets.yaml;
|
defaultSopsFile = ../../../secrets/secrets.yaml;
|
||||||
defaultSopsFormat = "yaml";
|
defaultSopsFormat = "yaml";
|
||||||
|
|
||||||
# age.keyFile = "/home/cholli/.config/sops/age/keys.txt";
|
|
||||||
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ in
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
domainName = "christophhollizeck.dev";
|
||||||
sopsFile = ../../../secrets/secrets-loptland.yaml;
|
sopsFile = ../../../secrets/secrets-loptland.yaml;
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
@ -31,6 +31,7 @@ in
|
||||||
base
|
base
|
||||||
server
|
server
|
||||||
hydra
|
hydra
|
||||||
|
forgejo
|
||||||
factorio-server
|
factorio-server
|
||||||
|
|
||||||
# apps
|
# apps
|
||||||
|
|
@ -55,19 +56,16 @@ in
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
sops = {
|
services.tailscale = {
|
||||||
secrets = {
|
enable = true;
|
||||||
"forgejo/db/password" = {
|
useRoutingFeatures = "client";
|
||||||
inherit sopsFile;
|
|
||||||
};
|
|
||||||
"forgejo/mail/password" = {
|
|
||||||
inherit sopsFile;
|
|
||||||
};
|
|
||||||
"forgejo/mail/passwordHash" = {
|
|
||||||
inherit sopsFile;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [
|
||||||
|
3000
|
||||||
|
80
|
||||||
|
443
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
domainName = "christophhollizeck.dev";
|
domainName = "christophhollizeck.dev";
|
||||||
forgejoPort = 3000;
|
|
||||||
hydraPort = 2000;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
|
|
@ -17,7 +15,7 @@
|
||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
||||||
|
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
"git.${domainName}" = {
|
"git.${domainName}" = lib.mkIf config.services.forgejo.enable {
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
useACMEHost = domainName;
|
useACMEHost = domainName;
|
||||||
|
|
||||||
|
|
@ -25,7 +23,7 @@
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
client_max_body_size 200M;
|
client_max_body_size 200M;
|
||||||
'';
|
'';
|
||||||
proxyPass = "http://localhost:${toString forgejoPort}/";
|
proxyPass = "http://localhost:${toString 3000}/";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -34,7 +32,7 @@
|
||||||
useACMEHost = domainName;
|
useACMEHost = domainName;
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:${toString hydraPort}/";
|
proxyPass = "http://localhost:${toString config.services.hydra.port}/";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
76
modules/server/forgejo.nix
Normal file
76
modules/server/forgejo.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.forgejo =
|
||||||
|
{ config, inputs, ... }:
|
||||||
|
let
|
||||||
|
domainName = "christophhollizeck.dev";
|
||||||
|
forgejoPort = 3000;
|
||||||
|
sopsFile = ../../secrets/secrets-loptland.yaml;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.simple-nixos-mailserver.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
secrets = {
|
||||||
|
"forgejo/db/password" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
"forgejo/mail/password" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
"forgejo/mail/passwordHash" = {
|
||||||
|
inherit sopsFile;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.forgejo = {
|
||||||
|
enable = true;
|
||||||
|
database.type = "postgres";
|
||||||
|
lfs.enable = true;
|
||||||
|
database = {
|
||||||
|
passwordFile = config.sops.secrets."forgejo/db/password".path;
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
DOMAIN = "git.${domainName}";
|
||||||
|
ROOT_URL = "https://git.${domainName}";
|
||||||
|
HTTP_PORT = forgejoPort;
|
||||||
|
};
|
||||||
|
|
||||||
|
mailer = {
|
||||||
|
ENABLED = true;
|
||||||
|
PROTOCOL = "smtps";
|
||||||
|
FROM = "no-reply@${domainName}";
|
||||||
|
SMTP_ADDR = "mail.${domainName}";
|
||||||
|
USER = "forgejo@${domainName}";
|
||||||
|
};
|
||||||
|
|
||||||
|
service.DISABLE_REGISTRATION = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
secrets = {
|
||||||
|
mailer.PASSWD = config.sops.secrets."forgejo/mail/password".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mailserver = {
|
||||||
|
enable = true;
|
||||||
|
fqdn = "mail.${domainName}";
|
||||||
|
domains = [ domainName ];
|
||||||
|
|
||||||
|
loginAccounts = {
|
||||||
|
"forgejo@${domainName}" = {
|
||||||
|
hashedPasswordFile = config.sops.secrets."forgejo/mail/passwordHash".path;
|
||||||
|
aliases = [ "no-reply@${domainName}" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
certificateScheme = "acme-nginx";
|
||||||
|
stateVersion = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue