Compare commits
15 commits
Author | SHA1 | Date | |
---|---|---|---|
fi | c530631ef8 | ||
fi | 4d9b86b260 | ||
fi | e241baf97f | ||
fi | 36491b8e17 | ||
fi | cfec34b292 | ||
fi | 9cbb3b1f37 | ||
fi | d1c2c643bc | ||
fi | 74c12e9658 | ||
fi | c973f90cb7 | ||
fi | c750f33102 | ||
fi | 73fbb13159 | ||
fi | 34725c3aeb | ||
fi | 8bd9ccc4a3 | ||
fi | c121374856 | ||
fi | 3b8eb289a6 |
|
@ -3,7 +3,6 @@
|
||||||
services.forgejo = {
|
services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
database.type = "postgres";
|
database.type = "postgres";
|
||||||
mailerPasswordFile = "/secrets/forgejo-mailer-password.secret";
|
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
DEFAULT = {
|
DEFAULT = {
|
||||||
|
@ -60,5 +59,6 @@
|
||||||
HOST = "redis+socket:///run/redis-forgejo/redis.sock";
|
HOST = "redis+socket:///run/redis-forgejo/redis.sock";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
secrets.mailer.PASSWD = "/secrets/forgejo-mailer-password.secret";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
27
config/hosts/ikiwiki/configuration.nix
Normal file
27
config/hosts/ikiwiki/configuration.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "/dev/vda";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "ikiwiki";
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [ 80 8443 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
# partition data disk with `sudo mkfs.ext4 /dev/vdx`
|
||||||
|
# label data disk with `e2label /dev/vdx "data"`
|
||||||
|
"/mnt/data" = {
|
||||||
|
device = "/dev/disk/by-label/data";
|
||||||
|
fsType = "ext4";
|
||||||
|
autoResize = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
}
|
8
config/hosts/ikiwiki/default.nix
Normal file
8
config/hosts/ikiwiki/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
./ikiwiki.nix
|
||||||
|
./nginx.nix
|
||||||
|
];
|
||||||
|
}
|
136
config/hosts/ikiwiki/ikiwiki.nix
Normal file
136
config/hosts/ikiwiki/ikiwiki.nix
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
let
|
||||||
|
ikiwikiBootstrapTheme = pkgs.fetchgit {
|
||||||
|
url = "https://github.com/dequis/ikiwiki-bootstrap-theme.git";
|
||||||
|
rev = "afaedf8460d03664be6f590cf632b8be05de77dc";
|
||||||
|
hash = "sha256-iX/onqrsvzJdDrJ7WoQMnlAQtOA+rmi+esv25/IOsq8=";
|
||||||
|
}; # TODO: fork and set link color to #6d2bff or something
|
||||||
|
ikiwikiDataPath = "/mnt/data/ikiwiki";
|
||||||
|
ikiwikiSettingsHeader = pkgs.writeText "ikiwiki-settings-header" ''
|
||||||
|
# IkiWiki::Setup::Yaml - YAML formatted setup file
|
||||||
|
'';
|
||||||
|
ikiwikiSettings = {
|
||||||
|
wikiname = "fi-zone";
|
||||||
|
adminemail = "fiona@grzb.de";
|
||||||
|
adminuser = [
|
||||||
|
"fi"
|
||||||
|
];
|
||||||
|
banned_users = [];
|
||||||
|
srcdir = "${ikiwikiDataPath}/fi-zone";
|
||||||
|
destdir = "${ikiwikiDataPath}/public_html/fi-zone";
|
||||||
|
url = "https://fi.nekover.se/";
|
||||||
|
cgiurl = "https://fi.nekover.se/ikiwiki.cgi";
|
||||||
|
reverse_proxy = 0;
|
||||||
|
cgi_wrapper = "${ikiwikiDataPath}/public_html/fi-zone/ikiwiki.cgi";
|
||||||
|
cgiauthurl = "https://fi.nekover.se/auth/ikiwiki.cgi";
|
||||||
|
cgi_wrappermode = "06755";
|
||||||
|
cgi_overload_delay = "";
|
||||||
|
cgi_overload_message = "";
|
||||||
|
only_committed_changes = 0;
|
||||||
|
rcs = "";
|
||||||
|
add_plugins = [
|
||||||
|
"goodstuff"
|
||||||
|
"websetup"
|
||||||
|
"httpauth"
|
||||||
|
];
|
||||||
|
disable_plugins = [];
|
||||||
|
templatedir = "${ikiwikiBootstrapTheme}";
|
||||||
|
underlaydir = "${pkgs.ikiwiki-full}/share/ikiwiki/basewiki";
|
||||||
|
usedirs = 1;
|
||||||
|
prefix_directives = 1;
|
||||||
|
indexpages = 0;
|
||||||
|
discussion = 0;
|
||||||
|
html5 = 1;
|
||||||
|
sslcookie = 1;
|
||||||
|
default_pageext = "mdwn";
|
||||||
|
htmlext = "html";
|
||||||
|
timeformat = "%c";
|
||||||
|
userdir = "";
|
||||||
|
numbacklinks = 10;
|
||||||
|
hardlink = 0;
|
||||||
|
libdirs = [];
|
||||||
|
libdir = "${ikiwikiDataPath}/.ikiwiki";
|
||||||
|
ENV = {};
|
||||||
|
timezone = ":/etc/localtime";
|
||||||
|
wiki_file_chars = "-[:alnum:]+/.:_";
|
||||||
|
allow_symlinks_before_srcdir = 0;
|
||||||
|
cookiejar = {
|
||||||
|
file = "${ikiwikiDataPath}/.ikiwiki/cookies";
|
||||||
|
};
|
||||||
|
useragent = "ikiwiki/${pkgs.ikiwiki-full.version}";
|
||||||
|
responsive_layout = 1;
|
||||||
|
deterministic = 0;
|
||||||
|
rss = 1;
|
||||||
|
atom = 1;
|
||||||
|
blogspam_pagespec = "postcomment(*)";
|
||||||
|
locked_pages = "* and !postcomment(*)";
|
||||||
|
comments_pagespec = "posts/* and !*/Discussion";
|
||||||
|
archive_pagespec = "page(posts/*) and !*/Discussion";
|
||||||
|
global_sidebars = 0;
|
||||||
|
tagbase = "tags";
|
||||||
|
};
|
||||||
|
ikiwikiSettingsFile = pkgs.concatText "fi-zone.setup" [
|
||||||
|
ikiwikiSettingsHeader
|
||||||
|
((pkgs.formats.yaml { }).generate "fi-zone-settings" ikiwikiSettings)
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ikiwiki-full
|
||||||
|
];
|
||||||
|
|
||||||
|
users = {
|
||||||
|
users.ikiwiki = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "ikiwiki";
|
||||||
|
};
|
||||||
|
groups.ikiwiki = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fcgiwrap.instances."ikiwiki" = {
|
||||||
|
socket = {
|
||||||
|
user = config.services.nginx.user;
|
||||||
|
group = config.services.nginx.group;
|
||||||
|
};
|
||||||
|
process = {
|
||||||
|
user = config.services.nginx.user;
|
||||||
|
group = config.services.nginx.group;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.ikiwiki-directory-setup = {
|
||||||
|
description = "Setup ikiwiki directory structure.";
|
||||||
|
|
||||||
|
script = ''
|
||||||
|
mkdir -p ${ikiwikiDataPath}
|
||||||
|
mkdir -p ${ikiwikiDataPath}/fi-zone/.ikiwiki
|
||||||
|
touch ${ikiwikiDataPath}/fi-zone/.ikiwiki/lockfile
|
||||||
|
chown -R ${config.users.users.ikiwiki.name}:${config.users.users.ikiwiki.group} ${ikiwikiDataPath}
|
||||||
|
'';
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = "root";
|
||||||
|
};
|
||||||
|
|
||||||
|
wantedBy = [
|
||||||
|
"multi-user.target"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.ikiwiki-settings-setup = {
|
||||||
|
description = "Setup ikiwiki with configuration managed by NixOS.";
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.ikiwiki-full}/bin/ikiwiki --setup ${ikiwikiSettingsFile}";
|
||||||
|
User = config.users.users.ikiwiki.name;
|
||||||
|
Group = config.users.users.ikiwiki.group;
|
||||||
|
Requires = [ "ikiwiki-directory-setup.service" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
wantedBy = [
|
||||||
|
"multi-user.target"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
47
config/hosts/ikiwiki/nginx.nix
Normal file
47
config/hosts/ikiwiki/nginx.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
let
|
||||||
|
ikiwikiDataPath = "/mnt/data/ikiwiki";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts."fi.nekover.se" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
listen = [
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 80;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 8443;
|
||||||
|
ssl = true;
|
||||||
|
extraParameters = [ "proxy_protocol" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
root = "${ikiwikiDataPath}/public_html/fi-zone";
|
||||||
|
locations = {
|
||||||
|
"/" = {
|
||||||
|
tryFiles = "$uri $uri/ =404";
|
||||||
|
};
|
||||||
|
"~ .cgi" = {
|
||||||
|
basicAuthFile = "/secrets/ikiwiki-auth-file.secret";
|
||||||
|
extraConfig = ''
|
||||||
|
gzip off;
|
||||||
|
fastcgi_pass unix:${config.services.fcgiwrap.instances."ikiwiki".socket.address};
|
||||||
|
fastcgi_index ikiwiki.cgi;
|
||||||
|
fastcgi_param SCRIPT_FILENAME ${ikiwikiDataPath}/public_html/fi-zone/ikiwiki.cgi;
|
||||||
|
fastcgi_param DOCUMENT_ROOT ${ikiwikiDataPath}/public_html/fi-zone;
|
||||||
|
fastcgi_param REMOTE_USER $remote_user if_not_empty;
|
||||||
|
include ${pkgs.nginx}/conf/fastcgi_params;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
set_real_ip_from 10.202.41.100;
|
||||||
|
real_ip_header proxy_protocol;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
config/hosts/ikiwiki/secrets.nix
Normal file
11
config/hosts/ikiwiki/secrets.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ keyCommandEnv, ... }:
|
||||||
|
{
|
||||||
|
deployment.keys."ikiwiki-auth-file.secret" = {
|
||||||
|
keyCommand = keyCommandEnv ++ [ "pass" "ikiwiki/auth-file" ];
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "nginx";
|
||||||
|
group = "nginx";
|
||||||
|
permissions = "0640";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,10 +3,10 @@
|
||||||
services.keycloak = {
|
services.keycloak = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
hostname = "id.nekover.se";
|
hostname = "https://id.nekover.se";
|
||||||
hostname-admin = "keycloak-admin.nekover.se";
|
hostname-admin = "https://keycloak-admin.nekover.se";
|
||||||
hostname-strict-backchannel = true;
|
proxy-headers = "forwarded";
|
||||||
proxy = "edge";
|
http-enabled = true;
|
||||||
http-host = "127.0.0.1";
|
http-host = "127.0.0.1";
|
||||||
http-port = 8080;
|
http-port = 8080;
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,28 +15,20 @@
|
||||||
];
|
];
|
||||||
routes = [
|
routes = [
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.202.41.1";
|
||||||
Gateway = "10.202.41.1";
|
Destination = "10.201.0.0/16";
|
||||||
Destination = "10.201.0.0/16";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.202.41.1";
|
||||||
Gateway = "10.202.41.1";
|
Destination = "10.202.0.0/16";
|
||||||
Destination = "10.202.0.0/16";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.202.41.1";
|
||||||
Gateway = "10.202.41.1";
|
Destination = "172.21.87.0/24";
|
||||||
Destination = "172.21.87.0/24";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.202.41.1";
|
||||||
Gateway = "10.202.41.1";
|
Destination = "212.53.203.19/32";
|
||||||
Destination = "212.53.203.19/32";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
linkConfig.RequiredForOnline = "routable";
|
linkConfig.RequiredForOnline = "routable";
|
||||||
|
@ -62,13 +54,11 @@
|
||||||
PrivateKeyFile = "/secrets/wireguard-mail-1-wg0-privatekey.secret";
|
PrivateKeyFile = "/secrets/wireguard-mail-1-wg0-privatekey.secret";
|
||||||
};
|
};
|
||||||
wireguardPeers = [{
|
wireguardPeers = [{
|
||||||
wireguardPeerConfig = {
|
PublicKey = "ik480irMZtGBs1AFpf1KGzDBekjdziD3ck7XK8r1WXQ=";
|
||||||
PublicKey = "ik480irMZtGBs1AFpf1KGzDBekjdziD3ck7XK8r1WXQ=";
|
PresharedKeyFile = "/secrets/wireguard-valkyrie-mail-1-mail-1-psk.secret";
|
||||||
PresharedKeyFile = "/secrets/wireguard-valkyrie-mail-1-mail-1-psk.secret";
|
Endpoint = "212.53.203.19:51822";
|
||||||
Endpoint = "212.53.203.19:51822";
|
AllowedIPs = [ "0.0.0.0/0" ];
|
||||||
AllowedIPs = [ "0.0.0.0/0" ];
|
PersistentKeepalive = 25;
|
||||||
PersistentKeepalive = 25;
|
|
||||||
};
|
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,28 +15,20 @@
|
||||||
];
|
];
|
||||||
routes = [
|
routes = [
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.201.41.1";
|
||||||
Gateway = "10.201.41.1";
|
Destination = "10.201.0.0/16";
|
||||||
Destination = "10.201.0.0/16";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.201.41.1";
|
||||||
Gateway = "10.201.41.1";
|
Destination = "10.202.0.0/16";
|
||||||
Destination = "10.202.0.0/16";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.201.41.1";
|
||||||
Gateway = "10.201.41.1";
|
Destination = "172.21.87.0/24";
|
||||||
Destination = "172.21.87.0/24";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
routeConfig = {
|
Gateway = "10.201.41.1";
|
||||||
Gateway = "10.201.41.1";
|
Destination = "217.160.117.160/32";
|
||||||
Destination = "217.160.117.160/32";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
linkConfig.RequiredForOnline = "routable";
|
linkConfig.RequiredForOnline = "routable";
|
||||||
|
@ -62,13 +54,11 @@
|
||||||
PrivateKeyFile = "/secrets/wireguard-mail-2-wg0-privatekey.secret";
|
PrivateKeyFile = "/secrets/wireguard-mail-2-wg0-privatekey.secret";
|
||||||
};
|
};
|
||||||
wireguardPeers = [{
|
wireguardPeers = [{
|
||||||
wireguardPeerConfig = {
|
PublicKey = "Nnf7x+Yd+l8ZkK2BTq1lK3iiTYgdrgL9PQ/je8smug4=";
|
||||||
PublicKey = "Nnf7x+Yd+l8ZkK2BTq1lK3iiTYgdrgL9PQ/je8smug4=";
|
PresharedKeyFile = "/secrets/wireguard-lifeline-mail-2-mail-2-psk.secret";
|
||||||
PresharedKeyFile = "/secrets/wireguard-lifeline-mail-2-mail-2-psk.secret";
|
Endpoint = "217.160.117.160:51820";
|
||||||
Endpoint = "217.160.117.160:51820";
|
AllowedIPs = [ "0.0.0.0/0" ];
|
||||||
AllowedIPs = [ "0.0.0.0/0" ];
|
PersistentKeepalive = 25;
|
||||||
PersistentKeepalive = 25;
|
|
||||||
};
|
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,28 +5,37 @@ let
|
||||||
rev = "v2.2";
|
rev = "v2.2";
|
||||||
hash = "sha256-KyXDnpZh1DrY59jvdU42UicgBVvEGtvAGeU1mNxJauQ=";
|
hash = "sha256-KyXDnpZh1DrY59jvdU42UicgBVvEGtvAGeU1mNxJauQ=";
|
||||||
};
|
};
|
||||||
|
mastodonModern = pkgs.fetchgit {
|
||||||
|
url = "https://git.gay/freeplay/Mastodon-Modern.git";
|
||||||
|
rev = "e9e53496789234d5782b5b3d97ed66a130b1678a";
|
||||||
|
hash = "sha256-lUq57Gbr1UCMVGoO4xTT3wYPNwohdepxSPCX+WP6AS8=";
|
||||||
|
};
|
||||||
mastodonNekoversePatches = pkgs.fetchgit {
|
mastodonNekoversePatches = pkgs.fetchgit {
|
||||||
url = "https://github.com/yuri-qq/nekoverse-mastodon-patches.git";
|
url = "https://github.com/yuri-qq/nekoverse-mastodon-patches.git";
|
||||||
hash = "sha256-3jWbKll5RGB1vfEmONVivzGYcoONEkBEHh/rOt9LXlU=";
|
hash = "sha256-3jWbKll5RGB1vfEmONVivzGYcoONEkBEHh/rOt9LXlU=";
|
||||||
};
|
};
|
||||||
mastodonNekoverseOverlay = final: prev: {
|
mastodonNekoverseOverlay = final: prev: {
|
||||||
mastodon = (prev.mastodon.override rec {
|
mastodon = (prev.mastodon.override rec {
|
||||||
version = "4.3.1";
|
version = "4.3.2";
|
||||||
srcOverride = final.applyPatches {
|
srcOverride = final.applyPatches {
|
||||||
src = pkgs.stdenv.mkDerivation {
|
src = pkgs.stdenv.mkDerivation {
|
||||||
name = "mastodonWithThemes";
|
name = "mastodonWithThemes";
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchgit {
|
||||||
url = "https://github.com/mastodon/mastodon.git";
|
url = "https://github.com/mastodon/mastodon.git";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-JlpQGyVPTLcB3RcWMBrmYc1AAUT1JLfS4IDas9ZoWh4=";
|
sha256 = "sha256-A1sSUBtlztKFsZ3TY/c9CXFV8LhttRW2JmSU0QSVOIg=";
|
||||||
};
|
};
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
cp -r ./ $out/
|
cp -r ./ $out/
|
||||||
cp -r ${tangerineUI}/mastodon/app/javascript/styles/* $out/app/javascript/styles/
|
cp -r ${tangerineUI}/mastodon/app/javascript/styles/* $out/app/javascript/styles/
|
||||||
|
echo "@import 'mastodon/variables';
|
||||||
|
@import 'application';" >> $out/app/javascript/styles/modern-dark.scss
|
||||||
|
cat ${mastodonModern}/modern.css >> $out/app/javascript/styles/modern-dark.scss
|
||||||
echo "tangerineui: styles/tangerineui.scss
|
echo "tangerineui: styles/tangerineui.scss
|
||||||
tangerineui-purple: styles/tangerineui-purple.scss
|
tangerineui-purple: styles/tangerineui-purple.scss
|
||||||
tangerineui-cherry: styles/tangerineui-cherry.scss
|
tangerineui-cherry: styles/tangerineui-cherry.scss
|
||||||
tangerineui-lagoon: styles/tangerineui-lagoon.scss" >> $out/config/themes.yml
|
tangerineui-lagoon: styles/tangerineui-lagoon.scss
|
||||||
|
modern-dark: styles/modern-dark.scss" >> $out/config/themes.yml
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
{
|
{
|
||||||
services.nextcloud = {
|
services.nextcloud = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.nextcloud29;
|
package = pkgs.nextcloud30;
|
||||||
hostName = "cloud.nekover.se";
|
hostName = "cloud.nekover.se";
|
||||||
https = true;
|
https = true;
|
||||||
config = {
|
config = {
|
||||||
|
|
|
@ -25,5 +25,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ nixpkgs-unstable, ... }:
|
{ nixpkgs-master, ... }:
|
||||||
{
|
{
|
||||||
services.jackett = {
|
services.jackett = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# use package from unstable to work around faulty test in older jackett version
|
# use package from master to work around faulty test in older jackett version
|
||||||
package = nixpkgs-unstable.legacyPackages."x86_64-linux".jackett;
|
package = nixpkgs-master.legacyPackages."x86_64-linux".jackett;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,17 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
|
# The sonarr package is dependend on .NET 6 which is marked as insecure.
|
||||||
|
# It doesn't seem to build with the later .NET versions.
|
||||||
|
# In the meantime allow the installation of these insecure packages since sonarr is only reachable locally.
|
||||||
|
nixpkgs.config = {
|
||||||
|
permittedInsecurePackages = [
|
||||||
|
"aspnetcore-runtime-wrapped-6.0.36"
|
||||||
|
"aspnetcore-runtime-6.0.36"
|
||||||
|
"dotnet-sdk-wrapped-6.0.428"
|
||||||
|
"dotnet-sdk-6.0.428"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
services.sonarr = {
|
services.sonarr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "torrent";
|
user = "torrent";
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
birdsite.nekover.se 10.202.41.107:8443;
|
birdsite.nekover.se 10.202.41.107:8443;
|
||||||
cloud.nekover.se 10.202.41.122:8443;
|
cloud.nekover.se 10.202.41.122:8443;
|
||||||
element.nekover.se 127.0.0.1:8443;
|
element.nekover.se 127.0.0.1:8443;
|
||||||
|
fi.nekover.se 10.202.41.125:8443;
|
||||||
gameserver.grzb.de 127.0.0.1:8443;
|
gameserver.grzb.de 127.0.0.1:8443;
|
||||||
git.grzb.de 127.0.0.1:8443;
|
git.grzb.de 127.0.0.1:8443;
|
||||||
git.nekover.se 10.202.41.106:8443;
|
git.nekover.se 10.202.41.106:8443;
|
||||||
|
|
|
@ -7,6 +7,7 @@ let
|
||||||
"netbox.grzb.de" = "netbox.vs.grzb.de";
|
"netbox.grzb.de" = "netbox.vs.grzb.de";
|
||||||
"git.nekover.se" = "forgejo.vs.grzb.de";
|
"git.nekover.se" = "forgejo.vs.grzb.de";
|
||||||
"grafana.grzb.de" = "metrics.vs.grzb.de";
|
"grafana.grzb.de" = "metrics.vs.grzb.de";
|
||||||
|
"fi.nekover.se" = "ikiwiki.vs.grzb.de";
|
||||||
"jackett.grzb.de" = "torrent.vs.grzb.de";
|
"jackett.grzb.de" = "torrent.vs.grzb.de";
|
||||||
"jellyseerr.grzb.de" = "jellyseerr.vs.grzb.de";
|
"jellyseerr.grzb.de" = "jellyseerr.vs.grzb.de";
|
||||||
"keycloak-admin.nekover.se" = "keycloak.vs.grzb.de";
|
"keycloak-admin.nekover.se" = "keycloak.vs.grzb.de";
|
||||||
|
|
|
@ -10,5 +10,5 @@
|
||||||
firewall.enable = true;
|
firewall.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.05";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
|
|
38
flake.lock
38
flake.lock
|
@ -34,11 +34,11 @@
|
||||||
},
|
},
|
||||||
"nixlib": {
|
"nixlib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731805462,
|
"lastModified": 1734829460,
|
||||||
"narHash": "sha256-yhEMW4MBi+IAyEJyiKbnFvY1uARyMKJpLUhkczI49wk=",
|
"narHash": "sha256-dPhc+f2wkmhMqMIfq+hColJdysgVxKP9ilZ5bR0NRZI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "b9f04e3cf71c23bea21d2768051e6b3068d44734",
|
"rev": "0a31e8d833173ae63e43fd9dbff1ccf09c4f778c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -55,11 +55,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732151224,
|
"lastModified": 1734915500,
|
||||||
"narHash": "sha256-5IgpueM8SGLOadzUJK6Gk37zEBXGd56BkNOtoWmnZos=",
|
"narHash": "sha256-A7CTIQ8SW0hfbhKlwK+vSsu4pD+Oaelw3v6goX6go+U=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "nixos-generators",
|
||||||
"rev": "3280fdde8c8f0276c9f5286ad5c0f433dfa5d56c",
|
"rev": "051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -70,16 +70,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731842749,
|
"lastModified": 1736167739,
|
||||||
"narHash": "sha256-aNc8irVBH7sM5cGDvqdOueg8S+fGakf0rEMRGfGwWZw=",
|
"narHash": "sha256-vL6dGj+0w+l1cK4duEokolgmx4Hu3O1TPjpD6Dfd7oY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bf6132dc791dbdff8b6894c3a85eb27ad8255682",
|
"rev": "bd27be8c9381a66288504d5266db495de571d7bf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.05-small",
|
"ref": "nixos-24.11-small",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -101,11 +101,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-master": {
|
"nixpkgs-master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732154639,
|
"lastModified": 1736204625,
|
||||||
"narHash": "sha256-GeEhJmh0/KEQmoe4Lmsv9VC0SrQn4K9V27KbHJ0Zs/g=",
|
"narHash": "sha256-y1OxajWQrxP7naHYPoUCrf4AAhEqOGwpNbj+qBXSn5s=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "516819d9b5b97ee1f461aecb4caed7aa6b769d5d",
|
"rev": "6199c32fe66a688ce7c3483de2b05b358ab7a0a6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -117,11 +117,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732136765,
|
"lastModified": 1736165148,
|
||||||
"narHash": "sha256-622zKMMp0mw2a+fJJoVQdNmxwRGDkWsDTn5OSPK8DLk=",
|
"narHash": "sha256-AdKOlljgcTLOrJb3HFpaaoHWJhFrkVeT9HbRm0JvcwE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e35b0f3f9787cfe51f406f7dd5a4446a858bfdb2",
|
"rev": "9f46f57b78d2ef865cd8c58eff8d430bb62a471a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -164,11 +164,11 @@
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718084203,
|
"lastModified": 1734885828,
|
||||||
"narHash": "sha256-Cx1xoVfSMv1XDLgKg08CUd1EoTYWB45VmB9XIQzhmzI=",
|
"narHash": "sha256-G0fB1YBlkalu8lLGRB07K8CpUWNVd+unfrjNomSL7SM=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "29916981e7b3b5782dc5085ad18490113f8ff63b",
|
"rev": "636b82f4175e3f6b1e80d2189bb0469e2ae01a55",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05-small";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11-small";
|
||||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
||||||
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
|
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
|
||||||
nixos-generators = {
|
nixos-generators = {
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
inherit nixpkgs-unstable nixpkgs-master hosts simple-nixos-mailserver;
|
inherit nixpkgs-unstable nixpkgs-master hosts simple-nixos-mailserver;
|
||||||
|
|
||||||
# Provide environment for secret key command
|
# Provide environment for secret key command
|
||||||
keyCommandEnv = [ "env" "GNUPGHOME=/home/yuri/.passinfra_gnupg" "PASSWORD_STORE_DIR=/home/yuri/pass/infra" ];
|
keyCommandEnv = [ "env" "GNUPGHOME=/home/fi/.passinfra_gnupg" "PASSWORD_STORE_DIR=/home/fi/pass/infra" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} // builtins.mapAttrs (helper.generateColmenaHost) hosts;
|
} // builtins.mapAttrs (helper.generateColmenaHost) hosts;
|
||||||
|
|
|
@ -30,6 +30,10 @@ in
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
};
|
};
|
||||||
|
ikiwiki = {
|
||||||
|
site = "vs";
|
||||||
|
environment = "proxmox";
|
||||||
|
};
|
||||||
iperf = {
|
iperf = {
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
|
@ -78,10 +82,6 @@ in
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
};
|
};
|
||||||
nitter = {
|
|
||||||
site = "vs";
|
|
||||||
environment = "proxmox";
|
|
||||||
};
|
|
||||||
coturn = {
|
coturn = {
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
|
@ -92,6 +92,7 @@ in
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
};
|
};
|
||||||
torrent = {
|
torrent = {
|
||||||
|
hostNixpkgs = nixpkgs-unstable;
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue