Fetch FQDN from configuration

This commit is contained in:
Manuel Thalmann 2024-11-07 03:01:45 +01:00
parent 5e0ca4ec47
commit 5e352d0cb7
4 changed files with 22 additions and 6 deletions

View file

@ -1,4 +1,4 @@
{ lib, ... }: { config, lib, ... }:
let inherit (lib) mkOption types; let inherit (lib) mkOption types;
in { in {
imports = [ imports = [
@ -28,6 +28,12 @@ in {
}; };
}; };
fqdn = mkOption {
type = types.str;
description = "The FQDN of the system.";
default = config.valhalla.hostname;
};
hostname = mkOption { hostname = mkOption {
type = types.str; type = types.str;
description = "The hostname of the system."; description = "The hostname of the system.";

View file

@ -12,8 +12,13 @@ begin
echo "$_flag_name" echo "$_flag_name"
end end
function getMachineFQDN -V dir
source "$dir/../../../../lib/settings.fish"
getOSConfig fqdn
end
function getServiceDomain function getServiceDomain
echo "$(getServiceSubdomain $argv).nuth.ch" echo "$(getServiceSubdomain $argv).$(getMachineFQDN)"
end end
function getServiceSubdomain function getServiceSubdomain

View file

@ -9,9 +9,9 @@ services:
- ./data:/data - ./data:/data
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
environment: environment:
DOMAIN: https://passwords.nuth.ch DOMAIN: null
SMTP_HOST: bridge SMTP_HOST: bridge
SMTP_FROM: no-reply@nuth.ch SMTP_FROM: null
SMTP_FROM_VALUE: vaultwarden SMTP_FROM_VALUE: vaultwarden
SMTP_PORT: 25 SMTP_PORT: 25
SMTP_ACCEPT_INVALID_CERTS: "true" SMTP_ACCEPT_INVALID_CERTS: "true"

View file

@ -9,11 +9,16 @@ begin
end end
function installSW -V dir -V source function installSW -V dir -V source
set -l file "$dir/docker-compose.yml"
set -l pw (nix-shell -p keepassxc --run "keepassxc-cli generate --length 32") set -l pw (nix-shell -p keepassxc --run "keepassxc-cli generate --length 32")
set -l dbKey ".services.vaultwarden.environment.DATABASE_URL" set -l envKey ".services.vaultwarden.environment"
set -l dbKey "$envKey.DATABASE_URL"
set -l dbUrl (yq --raw-output "$dbKey" "$source" | sed "s/^\(.*:\/\/.*:\).*\(@.*\/.*\)\$/\1$pw\2/") set -l dbUrl (yq --raw-output "$dbKey" "$source" | sed "s/^\(.*:\/\/.*:\).*\(@.*\/.*\)\$/\1$pw\2/")
initializeServiceInstallation $argv initializeServiceInstallation $argv
sudo cp "$dir/docker-compose.yml" (getServiceRoot $argv)
URL="https://$(getServiceDomain $argv)" yq "$envKey.DOMAIN = env.URL" "$file" | \
ADDRESS="noreply@$(getMachineFQDN)" yq -y "$envKey.SMTP_FROM = env.ADDRESS" | \
sudo tee "$(getServiceRoot $argv)/$(basename "$file")" >/dev/null
URL=$dbUrl yq "$dbKey = env.URL" "$source" | \ URL=$dbUrl yq "$dbKey = env.URL" "$source" | \
PW=$pw yq ".services.db.environment.MARIADB_PASSWORD = env.PW" | \ PW=$pw yq ".services.db.environment.MARIADB_PASSWORD = env.PW" | \