Final backup of server before flake transition
This commit is contained in:
parent
d860401e1f
commit
a90e09db74
|
@ -4,9 +4,6 @@ let
|
||||||
homeManager = fetchTarball
|
homeManager = fetchTarball
|
||||||
"https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz";
|
"https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz";
|
||||||
|
|
||||||
# Define domains and ips
|
|
||||||
jimDomain = ''jimbosfiles.com'';
|
|
||||||
|
|
||||||
# IPs
|
# IPs
|
||||||
netInt = ''eno1'';
|
netInt = ''eno1'';
|
||||||
localSpan = ''10.0.0'';
|
localSpan = ''10.0.0'';
|
||||||
|
@ -26,10 +23,9 @@ in
|
||||||
"${homeManager}/nixos"
|
"${homeManager}/nixos"
|
||||||
|
|
||||||
# Mail server import
|
# Mail server import
|
||||||
(builtins.fetchTarball {
|
(fetchTarball
|
||||||
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/nixos-24.05/nixos-mailserver-nixos-24.05.tar.gz";
|
"https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/nixos-24.05/nixos-mailserver-nixos-24.05.tar.gz"
|
||||||
sha256 = "0clvw4622mqzk1aqw1qn6shl9pai097q62mq1ibzscnjayhp278b";
|
)
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Allow unfree packages
|
# Allow unfree packages
|
||||||
|
@ -105,7 +101,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
# Define timezone and networking settings
|
# Define timezone and networking settings
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = secrets.timeZone;
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "JimNixServer";
|
hostName = "JimNixServer";
|
||||||
|
|
||||||
|
@ -118,7 +114,7 @@ in
|
||||||
allowPing = false;
|
allowPing = false;
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [
|
||||||
80 443 # Nginx
|
80 443 # Nginx
|
||||||
25565 19132 5657 # Minecraft & Pufferpanel SFTP
|
25565 19132 5657 # Pufferpanel
|
||||||
2299 # Gitea SSH
|
2299 # Gitea SSH
|
||||||
3478 5349 # Coturn
|
3478 5349 # Coturn
|
||||||
];
|
];
|
||||||
|
@ -208,24 +204,24 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# DDClient for Dynamic IPpanels
|
# DDClient for Dynamic IPs
|
||||||
ddclient = {
|
ddclient = {
|
||||||
enable = true;
|
enable = true;
|
||||||
protocol = "cloudflare";
|
protocol = "cloudflare";
|
||||||
use = "web, web=https://ipinfo.io/ip";
|
use = "web, web=https://ipinfo.io/ip";
|
||||||
zone = "${jimDomain}";
|
zone = "${secrets.jimDomain}";
|
||||||
username = "token";
|
username = "token";
|
||||||
passwordFile = "${pkgs.writeText "cloudflareapikey" secrets.flareApiKey}";
|
passwordFile = "${pkgs.writeText "cloudflareapikey" secrets.flareApiKey}";
|
||||||
domains = [
|
domains = [
|
||||||
"${jimDomain}"
|
"${secrets.jimDomain}"
|
||||||
"*.${jimDomain}"
|
"*.${secrets.jimDomain}"
|
||||||
"beta.${jimDomain}"
|
"beta.${secrets.jimDomain}"
|
||||||
"git.${jimDomain}"
|
"git.${secrets.jimDomain}"
|
||||||
"john.${jimDomain}"
|
"john.${secrets.jimDomain}"
|
||||||
"mc.${jimDomain}"
|
"mc.${secrets.jimDomain}"
|
||||||
"mx.${jimDomain}"
|
"mx.${secrets.jimDomain}"
|
||||||
"panel.${jimDomain}"
|
"panel.${secrets.jimDomain}"
|
||||||
"rtmp.${jimDomain}"
|
"rtmp.${secrets.jimDomain}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -241,7 +237,7 @@ in
|
||||||
recommendedProxySettings = true;
|
recommendedProxySettings = true;
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
# Homepage redirect
|
# Homepage redirect
|
||||||
"${jimDomain}" = {
|
"${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
addSSL = true;
|
addSSL = true;
|
||||||
root = "/var/www/jimweb";
|
root = "/var/www/jimweb";
|
||||||
|
@ -252,13 +248,13 @@ in
|
||||||
return 200 '
|
return 200 '
|
||||||
{
|
{
|
||||||
"m.homeserver": {
|
"m.homeserver": {
|
||||||
"base_url": "https://matrix.${jimDomain}"
|
"base_url": "https://matrix.${secrets.jimDomain}"
|
||||||
},
|
},
|
||||||
"m.identity_server": {
|
"m.identity_server": {
|
||||||
"base_url": "https://matrix.org"
|
"base_url": "https://matrix.org"
|
||||||
},
|
},
|
||||||
"org.matrix.msc3575.proxy": {
|
"org.matrix.msc3575.proxy": {
|
||||||
"url": "https://matrix.${jimDomain}"
|
"url": "https://matrix.${secrets.jimDomain}"
|
||||||
}
|
}
|
||||||
}';
|
}';
|
||||||
'';
|
'';
|
||||||
|
@ -266,14 +262,14 @@ in
|
||||||
"/.well-known/matrix/server" = {
|
"/.well-known/matrix/server" = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
return 200 '{"m.server": "matrix.${jimDomain}:443"}';
|
return 200 '{"m.server": "matrix.${secrets.jimDomain}:443"}';
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Nextcloud Proxy
|
# Nextcloud Proxy
|
||||||
"cloud.${jimDomain}" = {
|
"cloud.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
addSSL = true;
|
addSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -290,7 +286,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Vaultwarden Proxy
|
# Vaultwarden Proxy
|
||||||
"warden.${jimDomain}" = {
|
"warden.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -300,7 +296,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Recipes Proxy
|
# Recipes Proxy
|
||||||
"recipes.${jimDomain}" = {
|
"recipes.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -310,7 +306,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bluemap Proxy
|
# Bluemap Proxy
|
||||||
"bluemap.${jimDomain}" = {
|
"bluemap.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -320,7 +316,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Gitea Proxy
|
# Gitea Proxy
|
||||||
"git.${jimDomain}" = {
|
"git.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -330,7 +326,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Pufferpanel Proxy
|
# Pufferpanel Proxy
|
||||||
"panel.${jimDomain}" = {
|
"panel.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -340,7 +336,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Matrix Proxy
|
# Matrix Proxy
|
||||||
"matrix.${jimDomain}" = {
|
"matrix.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations = {
|
locations = {
|
||||||
|
@ -353,14 +349,14 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Element Proxy
|
# Element Proxy
|
||||||
"chat.${jimDomain}" = {
|
"chat.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
addSSL = true;
|
addSSL = true;
|
||||||
root = "${pkgs.element-web}";
|
root = "${pkgs.element-web}";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Coturn Proxy
|
# Coturn Proxy
|
||||||
"turn.${jimDomain}" = {
|
"turn.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
listen = [
|
listen = [
|
||||||
|
@ -370,7 +366,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Radio Proxy
|
# Radio Proxy
|
||||||
"radio.${jimDomain}" = {
|
"radio.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -380,7 +376,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Streaming proxy
|
# Streaming proxy
|
||||||
"live.${jimDomain}" = {
|
"live.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -390,7 +386,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Mail certificate proxy
|
# Mail certificate proxy
|
||||||
"mx.${jimDomain}" = {
|
"mx.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
@ -400,20 +396,10 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Add SSL to Lemmy
|
# Add SSL to Lemmy
|
||||||
"lemmy.${jimDomain}" = {
|
"lemmy.${secrets.jimDomain}" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Adguard
|
|
||||||
"guard.${jimDomain}" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://127.0.0.1:3000";
|
|
||||||
proxyWebsockets = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
appendConfig = ''
|
appendConfig = ''
|
||||||
rtmp {
|
rtmp {
|
||||||
|
@ -440,7 +426,7 @@ in
|
||||||
nextcloud = {
|
nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud29;
|
package = pkgs.nextcloud29;
|
||||||
hostName = "cloud.${jimDomain}";
|
hostName = "cloud.${secrets.jimDomain}";
|
||||||
datadir = "/mnt/nextcloud";
|
datadir = "/mnt/nextcloud";
|
||||||
https = true;
|
https = true;
|
||||||
config = {
|
config = {
|
||||||
|
@ -449,15 +435,15 @@ in
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
trusted_proxies = [ "127.0.0.1" ];
|
trusted_proxies = [ "127.0.0.1" ];
|
||||||
trusted_domains = [ "cloud.${jimDomain}" ];
|
trusted_domains = [ "cloud.${secrets.jimDomain}" ];
|
||||||
overwriteprotocol = "https";
|
overwriteprotocol = "https";
|
||||||
|
|
||||||
# Mailserver settings
|
# Mailserver settings
|
||||||
mail_smtphost = "mx.${jimDomain}";
|
mail_smtphost = "mx.${secrets.jimDomain}";
|
||||||
mail_domain = "${jimDomain}";
|
mail_domain = "${secrets.jimDomain}";
|
||||||
mail_from_address = "noreply";
|
mail_from_address = "noreply";
|
||||||
mail_smtpauth = "true";
|
mail_smtpauth = "true";
|
||||||
mail_smtpname = "noreply@${jimDomain}";
|
mail_smtpname = "noreply@${secrets.jimDomain}";
|
||||||
mail_smtppassword = secrets.noreplyPassword;
|
mail_smtppassword = secrets.noreplyPassword;
|
||||||
mail_smtpmode = "smtp";
|
mail_smtpmode = "smtp";
|
||||||
mail_smtpport = 587;
|
mail_smtpport = 587;
|
||||||
|
@ -468,17 +454,17 @@ in
|
||||||
vaultwarden = {
|
vaultwarden = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
||||||
DOMAIN = "https://warden.${jimDomain}";
|
DOMAIN = "https://warden.${secrets.jimDomain}";
|
||||||
SIGNUPS_ALLOWED = false;
|
SIGNUPS_ALLOWED = false;
|
||||||
ROCKET_ADDRESS = "127.0.0.1";
|
ROCKET_ADDRESS = "127.0.0.1";
|
||||||
ROCKET_PORT = 8222;
|
ROCKET_PORT = 8222;
|
||||||
ROCKET_LOG = "critical";
|
ROCKET_LOG = "critical";
|
||||||
|
|
||||||
# Smtp email
|
# Smtp email
|
||||||
SMTP_HOST = "mx.${jimDomain}";
|
SMTP_HOST = "mx.${secrets.jimDomain}";
|
||||||
SMTP_FROM = "noreply@${jimDomain}";
|
SMTP_FROM = "Jimbo's Vaultwarden <noreply@${secrets.jimDomain}>";
|
||||||
SMTP_FROM_NAME = "Vaultwarden";
|
SMTP_FROM_NAME = "Vaultwarden";
|
||||||
SMTP_USERNAME = "noreply@${jimDomain}";
|
SMTP_USERNAME = "noreply@${secrets.jimDomain}";
|
||||||
SMTP_PASSWORD = secrets.noreplyPassword;
|
SMTP_PASSWORD = secrets.noreplyPassword;
|
||||||
SMTP_SECURITY = "starttls";
|
SMTP_SECURITY = "starttls";
|
||||||
SMTP_PORT = 587;
|
SMTP_PORT = 587;
|
||||||
|
@ -497,21 +483,21 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
DOMAIN = "git.${jimDomain}";
|
DOMAIN = "git.${secrets.jimDomain}";
|
||||||
ROOT_URL = "https://git.${jimDomain}:443";
|
ROOT_URL = "https://git.${secrets.jimDomain}:443";
|
||||||
HTTP_PORT = 3110;
|
HTTP_PORT = 3110;
|
||||||
SSH_PORT = 2299;
|
SSH_PORT = 2299;
|
||||||
START_SSH_SERVER = true;
|
START_SSH_SERVER = true;
|
||||||
};
|
};
|
||||||
mailer = {
|
mailer = {
|
||||||
ENABLED = true;
|
ENABLED = true;
|
||||||
SMTP_ADDR = "mx.${jimDomain}";
|
SMTP_ADDR = "mx.${secrets.jimDomain}";
|
||||||
FROM = "noreply@${jimDomain}";
|
FROM = "Jimbo's Git <noreply@${secrets.jimDomain}>";
|
||||||
|
USER = "noreply@${secrets.jimDomain}";
|
||||||
PASSWD = secrets.noreplyPassword;
|
PASSWD = secrets.noreplyPassword;
|
||||||
PROTOCOL = "smtp+starttls";
|
PROTOCOL = "smtps";
|
||||||
SMTP_PORT = 587;
|
|
||||||
};
|
};
|
||||||
service.DISABLE_REGISTRATION = true;
|
service.REGISTER_EMAIL_CONFIRM = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -520,11 +506,11 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
environment = {
|
environment = {
|
||||||
PUFFER_WEB_HOST = ":5010";
|
PUFFER_WEB_HOST = ":5010";
|
||||||
PUFFER_PANEL_SETTINGS_MASTERURL = "https://panel.${jimDomain}";
|
PUFFER_PANEL_SETTINGS_MASTERURL = "https://panel.${secrets.jimDomain}";
|
||||||
PUFFER_PANEL_EMAIL_PROVIDER = "smtp";
|
PUFFER_PANEL_EMAIL_PROVIDER = "smtp";
|
||||||
PUFFER_PANEL_EMAIL_HOST = "mx.${jimDomain}:587";
|
PUFFER_PANEL_EMAIL_HOST = "mx.${secrets.jimDomain}:587";
|
||||||
PUFFER_PANEL_EMAIL_FROM = "noreply@${jimDomain}";
|
PUFFER_PANEL_EMAIL_FROM = "noreply@${secrets.jimDomain}";
|
||||||
PUFFER_PANEL_EMAIL_USERNAME = "noreply@${jimDomain}";
|
PUFFER_PANEL_EMAIL_USERNAME = "noreply@${secrets.jimDomain}";
|
||||||
PUFFER_PANEL_EMAIL_PASSWORD = secrets.noreplyPassword;
|
PUFFER_PANEL_EMAIL_PASSWORD = secrets.noreplyPassword;
|
||||||
};
|
};
|
||||||
extraPackages = with pkgs; [ bash curl gawk gnutar gzip ];
|
extraPackages = with pkgs; [ bash curl gawk gnutar gzip ];
|
||||||
|
@ -536,6 +522,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# MariaDB
|
# MariaDB
|
||||||
mysql = {
|
mysql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -570,7 +557,7 @@ in
|
||||||
min-port = 49000;
|
min-port = 49000;
|
||||||
max-port = 50000;
|
max-port = 50000;
|
||||||
use-auth-secret = true;
|
use-auth-secret = true;
|
||||||
realm = "turn.${jimDomain}";
|
realm = "turn.${secrets.jimDomain}";
|
||||||
static-auth-secret = "will be world readable for local users :(";
|
static-auth-secret = "will be world readable for local users :(";
|
||||||
cert = "${config.security.acme.certs.${realm}.directory}/full.pem";
|
cert = "${config.security.acme.certs.${realm}.directory}/full.pem";
|
||||||
pkey = "${config.security.acme.certs.${realm}.directory}/key.pem";
|
pkey = "${config.security.acme.certs.${realm}.directory}/key.pem";
|
||||||
|
@ -580,8 +567,8 @@ in
|
||||||
matrix-synapse = with config.services.coturn; {
|
matrix-synapse = with config.services.coturn; {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
server_name = "${jimDomain}";
|
server_name = "${secrets.jimDomain}";
|
||||||
public_baseurl = "https://matrix.${jimDomain}";
|
public_baseurl = "https://matrix.${secrets.jimDomain}";
|
||||||
suppress_key_server_warning = true;
|
suppress_key_server_warning = true;
|
||||||
|
|
||||||
# Set the network config
|
# Set the network config
|
||||||
|
@ -597,9 +584,9 @@ in
|
||||||
|
|
||||||
# Enable smtp for password resets
|
# Enable smtp for password resets
|
||||||
email = {
|
email = {
|
||||||
notif_from = "Jimbo's Matrix Homeserver <noreply@${jimDomain}>";
|
notif_from = "Jimbo's Matrix <noreply@${secrets.jimDomain}>";
|
||||||
smtp_host = "mx.${jimDomain}";
|
smtp_host = "mx.${secrets.jimDomain}";
|
||||||
smtp_user = "noreply@${jimDomain}";
|
smtp_user = "noreply@${secrets.jimDomain}";
|
||||||
smtp_pass = secrets.noreplyPassword;
|
smtp_pass = secrets.noreplyPassword;
|
||||||
enable_tls = true;
|
enable_tls = true;
|
||||||
smtp_port = 587;
|
smtp_port = 587;
|
||||||
|
@ -647,7 +634,7 @@ in
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
SYNCV3_SERVER = "https://matrix.${jimDomain}";
|
SYNCV3_SERVER = "https://matrix.${secrets.jimDomain}";
|
||||||
SYNCV3_BINDADDR = "0.0.0.0:8009";
|
SYNCV3_BINDADDR = "0.0.0.0:8009";
|
||||||
};
|
};
|
||||||
environmentFile = "${matrixSecretFile}";
|
environmentFile = "${matrixSecretFile}";
|
||||||
|
@ -656,16 +643,16 @@ in
|
||||||
# Mastodon
|
# Mastodon
|
||||||
mastodon = {
|
mastodon = {
|
||||||
enable = true;
|
enable = true;
|
||||||
localDomain = "social.${jimDomain}";
|
localDomain = "social.${secrets.jimDomain}";
|
||||||
streamingProcesses = 4;
|
streamingProcesses = 4;
|
||||||
configureNginx = true;
|
configureNginx = true;
|
||||||
smtp = {
|
smtp = {
|
||||||
createLocally = false;
|
createLocally = false;
|
||||||
host = "mx.${jimDomain}";
|
host = "mx.${secrets.jimDomain}";
|
||||||
port = 587;
|
port = 587;
|
||||||
authenticate = true;
|
authenticate = true;
|
||||||
fromAddress = "noreply@${jimDomain}";
|
fromAddress = "Jimbo's Mastodon <noreply@${secrets.jimDomain}>";
|
||||||
user = "noreply@${jimDomain}";
|
user = "noreply@${secrets.jimDomain}";
|
||||||
passwordFile = pkgs.writeText "smtp_pass.txt" secrets.noreplyPassword;
|
passwordFile = pkgs.writeText "smtp_pass.txt" secrets.noreplyPassword;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -676,11 +663,11 @@ in
|
||||||
nginx.enable = true;
|
nginx.enable = true;
|
||||||
database.createLocally = true;
|
database.createLocally = true;
|
||||||
settings = {
|
settings = {
|
||||||
hostname = "lemmy.${jimDomain}";
|
hostname = "lemmy.${secrets.jimDomain}";
|
||||||
email = {
|
email = {
|
||||||
smtp_server = "mx.${jimDomain}:587";
|
smtp_server = "mx.${secrets.jimDomain}:587";
|
||||||
smtp_login = "noreply@${jimDomain}";
|
smtp_login = "noreply@${secrets.jimDomain}";
|
||||||
smtp_from_address = "noreply@${jimDomain}";
|
smtp_from_address = "Jimbo's Lemmy <noreply@${secrets.jimDomain}>";
|
||||||
smtp_password = secrets.noreplyPassword;
|
smtp_password = secrets.noreplyPassword;
|
||||||
tls_type = "starttls";
|
tls_type = "starttls";
|
||||||
};
|
};
|
||||||
|
@ -690,7 +677,7 @@ in
|
||||||
# Roundcube mail server
|
# Roundcube mail server
|
||||||
roundcube = {
|
roundcube = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hostName = "mail.${jimDomain}";
|
hostName = "mail.${secrets.jimDomain}";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
$config['smtp_server'] = "tls://${config.mailserver.fqdn}";
|
$config['smtp_server'] = "tls://${config.mailserver.fqdn}";
|
||||||
$config['smtp_user'] = "%u";
|
$config['smtp_user'] = "%u";
|
||||||
|
@ -698,9 +685,6 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable a custom DNS server
|
|
||||||
adguardhome.enable = true;
|
|
||||||
|
|
||||||
# Snowflake proxy for Tor
|
# Snowflake proxy for Tor
|
||||||
snowflake-proxy.enable = true;
|
snowflake-proxy.enable = true;
|
||||||
|
|
||||||
|
@ -711,19 +695,17 @@ in
|
||||||
redis.servers.rspamd.port = 1515;
|
redis.servers.rspamd.port = 1515;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Make Nginx not shit itself
|
# Force Nginx to work and be able to read+write the hls path
|
||||||
security.pam.services.nginx.setEnvironment = false;
|
security.pam.services.nginx.setEnvironment = false;
|
||||||
systemd.services.nginx.serviceConfig = {
|
systemd.services.nginx.serviceConfig = {
|
||||||
SupplementaryGroups = [ "shadow" ];
|
SupplementaryGroups = [ "shadow" ];
|
||||||
|
ReadWritePaths = [ "/var/www/jimweb/streams/hls/" ];
|
||||||
};
|
};
|
||||||
systemd.services.nginx.serviceConfig.ReadWritePaths = [
|
|
||||||
"/var/www/jimweb/streams/hls/"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Get certificates for Coturn
|
# Get certificates for Coturn
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
defaults.email = "jimjam4real@gmail.com";
|
defaults.email = secrets.jimEmail;
|
||||||
certs = {
|
certs = {
|
||||||
${config.services.coturn.realm} = {
|
${config.services.coturn.realm} = {
|
||||||
group = "turnserver";
|
group = "turnserver";
|
||||||
|
@ -736,16 +718,16 @@ in
|
||||||
nixpkgs.config.element-web.conf = {
|
nixpkgs.config.element-web.conf = {
|
||||||
default_server_config = {
|
default_server_config = {
|
||||||
"m.homeserver" = {
|
"m.homeserver" = {
|
||||||
base_url = "https://matrix.${jimDomain}";
|
base_url = "https://matrix.${secrets.jimDomain}";
|
||||||
server_name = "matrix.${jimDomain}";
|
server_name = "matrix.${secrets.jimDomain}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
branding = {
|
branding = {
|
||||||
#welcome_background_url = "https://staging.${jimDomain}/images/backgrounds/bloxelcom-sunset.jpg";
|
#welcome_background_url = "https://staging.${secrets.jimDomain}/images/backgrounds/bloxelcom-sunset.jpg";
|
||||||
#auth_header_logo_url = "https://staging.${jimDomain}/images/logos/bloxelcom.png";
|
#auth_header_logo_url = "https://staging.${secrets.jimDomain}/images/logos/bloxelcom.png";
|
||||||
};
|
};
|
||||||
embedded_pages = {
|
embedded_pages = {
|
||||||
home_url = "https://www.${jimDomain}/";
|
home_url = "https://www.${secrets.jimDomain}/";
|
||||||
};
|
};
|
||||||
disable_custom_urls = true;
|
disable_custom_urls = true;
|
||||||
disable_guests = true;
|
disable_guests = true;
|
||||||
|
@ -755,17 +737,15 @@ in
|
||||||
# Enable Docker
|
# Enable Docker
|
||||||
virtualisation.docker = {
|
virtualisation.docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
daemon.settings = {
|
daemon.settings.log-driver = "json-file";
|
||||||
log-driver = "json-file";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Mail server
|
# Mail server
|
||||||
mailserver = rec {
|
mailserver = rec {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableManageSieve = true;
|
enableManageSieve = true;
|
||||||
domains = [ "${jimDomain}" ];
|
domains = [ "${secrets.jimDomain}" ];
|
||||||
fqdn = "mx.${jimDomain}";
|
fqdn = "mx.${secrets.jimDomain}";
|
||||||
certificateScheme = "acme-nginx";
|
certificateScheme = "acme-nginx";
|
||||||
localDnsResolver = false;
|
localDnsResolver = false;
|
||||||
redis.port = 1515;
|
redis.port = 1515;
|
||||||
|
@ -773,23 +753,23 @@ in
|
||||||
# A list of accounts.
|
# A list of accounts.
|
||||||
# Generate passwords with nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
|
# Generate passwords with nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
|
||||||
loginAccounts = {
|
loginAccounts = {
|
||||||
"noreply@${jimDomain}" = {
|
"noreply@${secrets.jimDomain}" = {
|
||||||
hashedPasswordFile = pkgs.writeText "noreply" secrets.noreplyMailHash;
|
hashedPasswordFile = pkgs.writeText "noreply" secrets.noreplyMailHash;
|
||||||
sendOnly = true;
|
sendOnly = true;
|
||||||
};
|
};
|
||||||
"jimbo@${jimDomain}" = {
|
"jimbo@${secrets.jimDomain}" = {
|
||||||
hashedPasswordFile = pkgs.writeText "jimbo" secrets.jimboMailHash;
|
hashedPasswordFile = pkgs.writeText "jimbo" secrets.jimboMailHash;
|
||||||
aliases = [ "canada@${jimDomain}" "contact@${jimDomain}" ];
|
aliases = [ "canada@${secrets.jimDomain}" "contact@${secrets.jimDomain}" ];
|
||||||
};
|
};
|
||||||
"lunamoonlight@${jimDomain}" = {
|
"lunamoonlight@${secrets.jimDomain}" = {
|
||||||
hashedPasswordFile = pkgs.writeText "luna" secrets.lunaMailHash;
|
hashedPasswordFile = pkgs.writeText "luna" secrets.lunaMailHash;
|
||||||
aliases = [ "us@${jimDomain}" "contact@${jimDomain}" ];
|
aliases = [ "us@${secrets.jimDomain}" "contact@${secrets.jimDomain}" ];
|
||||||
};
|
};
|
||||||
"freecorn1854@${jimDomain}" = {
|
"freecorn1854@${secrets.jimDomain}" = {
|
||||||
hashedPasswordFile = pkgs.writeText "freecorn" secrets.freecornMailHash;
|
hashedPasswordFile = pkgs.writeText "freecorn" secrets.freecornMailHash;
|
||||||
aliases = [ "canada@${jimDomain}" "contact@${jimDomain}" ];
|
aliases = [ "canada@${secrets.jimDomain}" "contact@${secrets.jimDomain}" ];
|
||||||
};
|
};
|
||||||
"tinyattack09@${jimDomain}" = {
|
"tinyattack09@${secrets.jimDomain}" = {
|
||||||
hashedPasswordFile = pkgs.writeText "tiny" secrets.tinyMailHash;
|
hashedPasswordFile = pkgs.writeText "tiny" secrets.tinyMailHash;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -92,7 +92,6 @@ let
|
||||||
"text": "date -d @$(stat -c %W /) '+%a %b %d %r %Z %Y'",
|
"text": "date -d @$(stat -c %W /) '+%a %b %d %r %Z %Y'",
|
||||||
"key": " "
|
"key": " "
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "custom",
|
"type": "custom",
|
||||||
"format": "\u001b[1m—————————————————————————————————————"
|
"format": "\u001b[1m—————————————————————————————————————"
|
||||||
|
@ -495,7 +494,6 @@ in
|
||||||
".config/ranger/rc.conf".text = rangerConf;
|
".config/ranger/rc.conf".text = rangerConf;
|
||||||
".config/ranger/rifle.conf".text = rifleConf;
|
".config/ranger/rifle.conf".text = rifleConf;
|
||||||
".config/ranger/scope.sh" = { text = rangerScope; executable = true; };
|
".config/ranger/scope.sh" = { text = rangerScope; executable = true; };
|
||||||
".local/share/ranger/bookmarks".text = rangerBookmarks;
|
|
||||||
".config/ranger/plugins/devicons/devicons.py".source = "${pkgs.fetchurl {
|
".config/ranger/plugins/devicons/devicons.py".source = "${pkgs.fetchurl {
|
||||||
url = "https://raw.githubusercontent.com/alexanderjeurissen/ranger_devicons/2c3c19dffb4238d01c74515c9eed5088066db243/devicons.py";
|
url = "https://raw.githubusercontent.com/alexanderjeurissen/ranger_devicons/2c3c19dffb4238d01c74515c9eed5088066db243/devicons.py";
|
||||||
sha256 = "0girsranwhsgc6kcyh1mkwymx0bl14a2k5nzk3kyllb6ic48c33k";
|
sha256 = "0girsranwhsgc6kcyh1mkwymx0bl14a2k5nzk3kyllb6ic48c33k";
|
||||||
|
@ -536,9 +534,6 @@ in
|
||||||
|
|
||||||
# Curl tools
|
# Curl tools
|
||||||
myip = "curl ifconfig.co";
|
myip = "curl ifconfig.co";
|
||||||
|
|
||||||
# Start basic programs
|
|
||||||
controlpanel = "tmux new-session -d -s control; tmux attach -t control";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue