Modify like, basically everything idk, probably a lot of secrets and url names and colmena and whatnot

This commit is contained in:
Bun 2025-06-20 20:20:48 -04:00
parent 0ab856b18e
commit b3ba7481d8
107 changed files with 437 additions and 696 deletions

View file

@ -3,6 +3,7 @@
imports = [
./cfdyndns
./forgejo
./hedgedoc
./icecast
./incus
./jellyfin

View file

@ -8,17 +8,17 @@
lfs.enable = true;
settings = {
server = {
DOMAIN = "git.${config.vars.mainDomain}";
ROOT_URL = "https://git.${config.vars.mainDomain}:443";
DOMAIN = "git.${config.vars.primeDomain}";
ROOT_URL = "https://${config.services.forgejo.settings.server.DOMAIN}:443";
HTTP_PORT = 3110;
SSH_PORT = 2299;
START_SSH_SERVER = true;
};
mailer = {
ENABLED = true;
SMTP_ADDR = "mx.${config.vars.mainDomain}";
FROM = "NixFox Git <noreply@${config.vars.mainDomain}>";
USER = "noreply@${config.vars.mainDomain}";
SMTP_ADDR = "mx.${config.vars.mailDomain}";
FROM = "NixFox Git <noreply@${config.vars.primeDomain}>";
USER = "noreply@${config.vars.primeDomain}";
PASSWD = config.secrets.mailPass.nixfoxNoReply;
PROTOCOL = "smtps";
};
@ -32,7 +32,7 @@
networking.firewall.allowedTCPPorts = [ 2299 ];
services.cloudflare-dyndns.domains = [ "git.${config.vars.mainDomain}" ];
services.cloudflare-dyndns.domains = [ config.services.forgejo.settings.server.DOMAIN ];
environment.persistence."/persist".directories = [ "/var/lib/forgejo" ];
};

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."git.${config.vars.mainDomain}" = lib.mkIf config.services.forgejo.enable {
services.nginx.virtualHosts."${config.services.forgejo.settings.server.DOMAIN}" = lib.mkIf config.services.forgejo.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -0,0 +1,15 @@
{ config, ... }:
{
imports = [ ./nginx ];
services.hedgedoc.settings = {
domain = "hedgedoc.${config.vars.primeDomain}";
port = 8001;
host = "127.0.0.1";
protocolUseSSL = true;
allowOrigin = [
"localhost"
config.services.hedgedoc.settings.domain
];
};
}

View file

@ -0,0 +1,11 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."${config.services.hedgedoc.settings.domain}" = lib.mkIf config.services.hedgedoc.enable {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.hedgedoc.settings.port}";
proxyWebsockets = true;
};
};
}

View file

@ -7,7 +7,7 @@
services.icecast = {
listen.port = 73;
hostname = "radio.${config.vars.mainDomain}";
hostname = "radio.${config.vars.primeDomain}";
admin = {
user = "admin";
password = config.secrets.cast.adminPass;
@ -17,7 +17,7 @@
<source-password>${config.secrets.cast.sourcePass}</source-password>
</authentication>
<location>Canada</location>
<admin>contact@${config.vars.mainDomain}</admin>
<admin>contact@${config.vars.primeDomain}</admin>
'';
};
}

View file

@ -7,7 +7,7 @@
settings.init.allow_root.set(true)
settings.scheduler.fast_queues.set(2)
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/storage/Music/NixBops"))
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/network/Midas/Music/NixBops"))
stream_fallback = fallback([stream, stream])
output.icecast(

View file

@ -7,7 +7,7 @@
settings.init.allow_root.set(true)
settings.scheduler.fast_queues.set(2)
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/storage/Music/Scrap"))
stream = mksafe(playlist(mode='randomize', reload=1, reload_mode="rounds", "/network/Midas/Music/Scrap"))
stream_fallback = fallback([stream, stream])
output.icecast(

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."radio.${config.vars.mainDomain}" = lib.mkIf config.services.icecast.enable {
services.nginx.virtualHosts."${config.services.icecast.hostname}" = lib.mkIf config.services.icecast.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."jelly.${config.vars.mainDomain}" = lib.mkIf config.services.jellyfin.enable {
services.nginx.virtualHosts."jelly.${config.vars.primeDomain}" = lib.mkIf config.services.jellyfin.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -9,7 +9,7 @@
config = lib.mkIf config.mailserver.enable {
mailserver = {
fqdn = "mx.${config.vars.mainDomain}";
fqdn = "mx.${config.vars.mailDomain}";
domains = [
"nixfox.ca"
"bloxelcom.net"

View file

@ -7,13 +7,13 @@
enable = true;
settings = {
service_addr = ":1323";
domain = "autoconfig.nixfox.ca";
domain = "autoconfig.${config.vars.mailDomain}";
imap = {
server = "mx.nixfox.ca";
server = "mx.${config.vars.mailDomain}";
port = 143;
};
smtp = {
server = "mx.nixfox.ca";
server = "mx.${config.vars.mailDomain}";
port = 587;
};
};

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."autoconfig.${config.vars.mainDomain}" = lib.mkIf config.services.go-autoconfig.enable {
services.nginx.virtualHosts."autoconfig.${config.vars.mailDomain}" = lib.mkIf config.services.go-autoconfig.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -19,7 +19,7 @@
htpasswd_encryption = "bcrypt";
};
};
cloudflare-dyndns.domains = [ "cal.nixfox.ca" ];
cloudflare-dyndns.domains = [ "cal.${config.vars.mailDomain}" ];
};
environment.persistence."/persist".directories = [ "/var/lib/radicale" ];

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."cal.${config.vars.mainDomain}" = lib.mkIf config.services.radicale.enable {
services.nginx.virtualHosts."cal.${config.vars.mailDomain}" = lib.mkIf config.services.radicale.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -3,9 +3,9 @@
config = lib.mkIf config.mailserver.enable {
services.roundcube = {
enable = true;
hostName = "mail.${config.vars.mainDomain}";
hostName = "mail.${config.vars.mailDomain}";
extraConfig = ''
$config['smtp_server'] = "tls://mx.${config.vars.mainDomain}";
$config['smtp_server'] = "tls://mx.${config.vars.mailDomain}";
$config['smtp_user'] = "%u";
$config['smtp_pass'] = "%p";
'';

View file

@ -2,16 +2,16 @@
{
config = lib.mkIf config.services.mastodon.enable {
services.mastodon = {
localDomain = "social.nixfox.ca";
localDomain = "social.${config.vars.primeDomain}";
streamingProcesses = 4;
configureNginx = true;
smtp = {
createLocally = false;
host = "mx.nixfox.ca";
host = "mx.${config.vars.mailDomain}";
port = 587;
authenticate = true;
fromAddress = "NixFox Mastodon <noreply@nixfox.ca>";
user = "noreply@nixfox.ca";
fromAddress = "NixFox Mastodon <noreply@${config.vars.primeDomain}>";
user = "noreply@${config.vars.primeDomain}";
passwordFile = pkgs.writeText "smtp_pass.txt" config.secrets.mailPass.nixfoxNoReply;
};
};

View file

@ -12,7 +12,7 @@
max-port = 50000;
use-auth-secret = true;
static-auth-secret = config.secrets.coturnSecret;
realm = "turn.${config.vars.mainDomain}";
realm = "turn.${config.vars.primeDomain}";
cert = "/var/lib/acme/${config.services.coturn.realm}/fullchain.pem";
pkey = "/var/lib/acme/${config.services.coturn.realm}/key.pem";
};

View file

@ -1,7 +1,7 @@
{ config, lib, ... }:
{
config = lib.mkIf config.services.coturn.enable {
services.nginx.virtualHosts."turn.${config.vars.mainDomain}" = {
services.nginx.virtualHosts."turn.${config.vars.primeDomain}" = {
enableACME = true;
forceSSL = true;
listen = [{
@ -12,7 +12,7 @@
locations."/".proxyPass = "http://127.0.0.1:1380";
};
security.acme.certs."turn.${config.vars.mainDomain}" = {
security.acme.certs."turn.${config.vars.primeDomain}" = {
group = "turnserver";
postRun = "systemctl restart coturn.service";
};

View file

@ -4,14 +4,14 @@
nixpkgs.config.element-web.conf = {
default_server_config."m.homeserver" = {
base_url = "https://matrix.${config.vars.mainDomain}";
server_name = "matrix.${config.vars.mainDomain}";
base_url = "https://matrix.${config.vars.primeDomain}";
server_name = "matrix.${config.vars.primeDomain}";
};
branding = {
auth_header_logo_url = "https://www.${config.vars.mainDomain}/images/copyright/profile.png";
#welcome_background_url = "https://www.${config.vars.mainDomain}/images/backgrounds/template-background.png";
auth_header_logo_url = "https://www.${config.vars.primeDomain}/images/copyright/profile.png";
#welcome_background_url = "https://www.${config.vars.primeDomain}/images/backgrounds/template-background.png";
};
embedded_pages.home_url = "https://www.${config.vars.mainDomain}/";
embedded_pages.home_url = "https://www.${config.vars.primeDomain}/";
disable_custom_urls = true;
disable_guests = true;
default_theme = "dark";

View file

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{
services.nginx.virtualHosts."chat.${config.vars.mainDomain}" = lib.mkIf config.services.matrix-synapse.enable {
services.nginx.virtualHosts."chat.${config.vars.primeDomain}" = lib.mkIf config.services.matrix-synapse.enable {
enableACME = true;
addSSL = true;
root = "${pkgs.element-web}";

View file

@ -5,16 +5,16 @@
config = lib.mkIf config.services.matrix-synapse.enable {
services.matrix-synapse = {
settings = {
server_name = "${config.vars.mainDomain}";
public_baseurl = "https://matrix.${config.vars.mainDomain}";
server_name = "${config.vars.primeDomain}";
public_baseurl = "https://matrix.${config.vars.primeDomain}";
suppress_key_server_warning = true;
# Email notifications about account status
email = {
notif_from = "NixFox Matrix <noreply@${config.vars.mainDomain}>";
smtp_host = "mx.${config.vars.mainDomain}";
smtp_user = "noreply@${config.vars.mainDomain}";
smtp_host = "mx.${config.vars.mailDomain}";
smtp_user = "noreply@${config.vars.primeDomain}";
smtp_pass = config.secrets.mailPass.nixfoxNoReply;
notif_from = "NixFox Matrix <noreply@${config.vars.primeDomain}>";
enable_tls = true;
smtp_port = 587;
require_transport_security = true;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."matrix.${config.vars.mainDomain}" = lib.mkIf config.services.matrix-synapse.enable {
services.nginx.virtualHosts."matrix.${config.vars.primeDomain}" = lib.mkIf config.services.matrix-synapse.enable {
enableACME = true;
forceSSL = true;
locations = {

View file

@ -3,17 +3,13 @@
imports = [
./common
./servers
minecraft.nixosModules.minecraft-servers
];
config = lib.mkIf config.services.minecraft-servers.enable {
nixpkgs = {
overlays = [ minecraft.overlay ];
allowUnfreePackages = [ "minecraft-server" ];
};
services.minecraft-servers.eula = true;
nixpkgs.allowUnfreePackages = [ "minecraft-server" ];
environment.persistence."/persist".directories = [ "/srv/minecraft" ];
};
}

View file

@ -14,6 +14,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles;
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.blockworld.enable [ "bloxel.${config.vars.primeDomain}" ];
};
}

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles;
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.cornworld.enable [ "corn.${config.vars.primeDomain}" ];
};
}

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles;
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.dewdemolisher.enable [ "dew.${config.vars.primeDomain}" ];
};
}

View file

@ -26,6 +26,6 @@
};
files = config.services.minecraft-servers.common.configFiles;
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.johnside.enable [ "john.${config.vars.primeDomain}" ];
};
}

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles;
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.marsh.enable [ "marsh.${config.vars.primeDomain}" ];
};
}

View file

@ -13,6 +13,6 @@
symlinks = config.services.minecraft-servers.common.paperSymlinks;
files = config.services.minecraft-servers.common.configFiles;
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.skyblock.enable [ "skyblock.${config.vars.primeDomain}" ];
};
}

View file

@ -18,6 +18,6 @@ in {
server-port = 30005;
};
};
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.mainDomain}" ];
cloudflare-dyndns.domains = lib.mkIf config.services.minecraft-servers.servers.uberbeta.enable [ "beta.${config.vars.primeDomain}" ];
};
}

View file

@ -8,7 +8,7 @@
config = lib.mkIf config.services.nextcloud.enable {
services.nextcloud = {
package = pkgs.nextcloud31;
hostName = "files.${config.vars.mainDomain}";
hostName = "files.${config.vars.primeDomain}";
https = true;
config = {
adminuser = "admin";
@ -19,11 +19,11 @@
trusted_proxies = [ "127.0.0.1" ];
trusted_domains = [ config.services.nextcloud.hostName ];
overwriteprotocol = "https";
mail_smtphost = "mx.${config.vars.mainDomain}";
mail_domain = "${config.vars.mainDomain}";
mail_smtphost = "mx.${config.vars.mailDomain}";
mail_domain = "${config.vars.primeDomain}";
mail_from_address = "noreply";
mail_smtpauth = "true";
mail_smtpname = "noreply@${config.vars.mainDomain}";
mail_smtpname = "noreply@${config.vars.primeDomain}";
mail_smtppassword = config.secrets.mailPass.nixfoxNoReply;
mail_smtpmode = "smtp";
mail_smtpport = 587;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."files.${config.vars.mainDomain}" = lib.mkIf config.services.nextcloud.enable {
services.nginx.virtualHosts."files.${config.vars.primeDomain}" = lib.mkIf config.services.nextcloud.enable {
enableACME = true;
addSSL = true;
locations."/" = {

View file

@ -3,7 +3,7 @@
config = lib.mkIf config.services.nginx.enable {
security.acme = {
acceptTerms = true;
defaults.email = "contact@${config.vars.mainDomain}";
defaults.email = "contact@${config.vars.primeDomain}";
};
environment.persistence."/persist".directories = [ "/var/lib/acme" ];
};

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."live.${config.vars.mainDomain}" = lib.mkIf config.services.owncast.enable {
services.nginx.virtualHosts."live.${config.vars.primeDomain}" = lib.mkIf config.services.owncast.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."tor.${config.vars.mainDomain}" = lib.mkIf config.services.transmission.enable {
services.nginx.virtualHosts."tor.${config.vars.primeDomain}" = lib.mkIf config.services.transmission.enable {
enableACME = true;
forceSSL = true;
locations."/" = {

View file

@ -4,16 +4,16 @@
config = lib.mkIf config.services.vaultwarden.enable {
services.vaultwarden.config = {
domain = "https://pass.${config.vars.mainDomain}";
domain = "https://pass.${config.vars.primeDomain}";
signupsAllowed = false;
rocketAddress = "127.0.0.1";
rocketPort = 8222;
# Smtp email
smtpHost = "mx.${config.vars.mainDomain}";
smtpFrom = "noreply@${config.vars.mainDomain}";
smtpHost = "mx.${config.vars.mailDomain}";
smtpFrom = "noreply@${config.vars.primeDomain}";
smtpFromName = "Vaultwarden";
smtpUsername = "noreply@${config.vars.mainDomain}";
smtpUsername = "noreply@${config.vars.primeDomain}";
smtpPassword = config.secrets.mailPass.nixfoxNoReply;
smtpSecurity = "starttls";
smtpPort = 587;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts."pass.${config.vars.mainDomain}" = lib.mkIf config.services.vaultwarden.enable {
services.nginx.virtualHosts."pass.${config.vars.primeDomain}" = lib.mkIf config.services.vaultwarden.enable {
enableACME = true;
forceSSL = true;
locations."/" = {