nixos-config/1systems/gum/config.nix

266 lines
8.3 KiB
Nix

{ config, lib, pkgs, ... }:
with pkgs.stockholm.lib;
let
external-ip = config.krebs.build.host.nets.internet.ip4.addr;
ext-if = config.makefu.server.primary-itf;
allDisks = [ "/dev/sda" "/dev/sdb" ];
in {
imports = [
./hetznercloud
{
# wait for mount
systemd.services.rtorrent.wantedBy = lib.mkForce [];
systemd.services.phpfpm-nextcloud.wantedBy = lib.mkForce [];
systemd.services.samba-smbd.wantedBy = lib.mkForce [];
}
{
users.users.lass = {
uid = 19002;
isNormalUser = true;
createHome = true;
useDefaultShell = true;
openssh.authorizedKeys.keys = with config.krebs.users; [
lass.pubkey
makefu.pubkey
];
};
}
../../2configs
../../2configs/nur.nix
../../2configs/support-nixos.nix
../../2configs/nix-community/supervision.nix
../../2configs/home-manager
../../2configs/home-manager/cli.nix
# ../../2configs/stats/client.nix
../../2configs/share
../../2configs/share/hetzner-client.nix
# ../../2configs/stats/netdata-server.nix
../../2configs/headless.nix
# Security
../../2configs/sshd-totp.nix
# Tools
../../2configs/tools/core.nix
../../2configs/tools/dev.nix
../../2configs/tools/sec.nix
#../../2configs/tools/desktop.nix
../../2configs/zsh-user.nix
../../2configs/mosh.nix
../../2configs/storj/forward-port.nix
# ../../2configs/gui/xpra.nix
# networking
# ../../2configs/vpn/vpnws/server.nix
#../../2configs/dnscrypt/server.nix
# ../../2configs/iodined.nix
# ../../2configs/backup.nix
../../2configs/tinc/retiolum.nix
{ # bonus retiolum config for connecting more hosts
krebs.tinc.retiolum = {
#extraConfig = lib.mkForce ''
# ListenAddress = ${external-ip} 53
# ListenAddress = ${external-ip} 655
# ListenAddress = ${external-ip} 21031
# StrictSubnets = yes
# LocalDiscovery = no
#'';
connectTo = [
"prism" "ni" "enklave" "eve" "dishfire"
];
};
networking.firewall = {
allowedTCPPorts =
[
53
655
21031
];
allowedUDPPorts =
[
53
655
21031
];
};
}
# ci
# ../../2configs/exim-retiolum.nix
../../2configs/git/cgit-retiolum.nix
### systemdUltras ###
../../2configs/systemdultras/ircbot.nix
###### Shack #####
# ../../2configs/shack/events-publisher
# ../../2configs/shack/gitlab-runner
../../2configs/remote-build/slave.nix
../../2configs/remote-build/aarch64-community.nix
../../2configs/taskd.nix
# services
../../2configs/bitlbee.nix # postgres backend
# ../../2configs/sabnzbd.nix
# ../../2configs/mail/mail.euer.nix
{ krebs.exim.enable = mkDefault true; }
../../2configs/nix-community/mediawiki-matrix-bot.nix
# sharing
../../2configs/share/gum.nix # samba sahre
../../2configs/torrent/rtorrent.nix
# ../../2configs/sickbeard
{ nixpkgs.config.allowUnfree = true; }
#../../2configs/retroshare.nix
## ../../2configs/ipfs.nix
#../../2configs/syncthing.nix
# ../../2configs/sync
# ../../2configs/opentracker.nix
## network
# ../../2configs/vpn/openvpn-server.nix
# ../../2configs/vpn/vpnws/server.nix
../../2configs/binary-cache/server.nix
{ makefu.backup.server.repo = "/var/backup/borg"; }
../../2configs/backup/server.nix
../../2configs/backup/state.nix
../../2configs/wireguard/server.nix
../../2configs/wireguard/wiregrill.nix
{ # recent changes mediawiki bot
networking.firewall.allowedUDPPorts = [ 5005 5006 ];
}
# Removed until move: no extra mails
# ../../2configs/urlwatch
# Removed until move: avoid letsencrypt ban
### Web
../../2configs/bitwarden.nix # postgres backend
../../2configs/deployment/rss/rss.euer.krebsco.de.nix # postgres backend
../../2configs/deployment/rss/ratt.nix
../../2configs/deployment/ntfysh.nix
../../2configs/deployment/owncloud.nix #postgres backend
### Moving owncloud data dir to /media/cloud/nextcloud-data
{
users.users.nextcloud.extraGroups = [ "download" ];
# nextcloud-setup fails as it cannot set permissions for nextcloud
systemd.services.nextcloud-setup.serviceConfig.SuccessExitStatus = "0 1";
systemd.tmpfiles.rules = [
"L /var/lib/nextcloud/data - - - - /media/cloud/nextcloud-data"
"L /var/backup - - - - /media/cloud/gum-backup"
];
#fileSystems."/var/lib/nextcloud/data" = {
# device = "/media/cloud/nextcloud-data";
# options = [ "bind" ];
#};
#fileSystems."/var/backup" = {
# device = "/media/cloud/gum-backup";
# options = [ "bind" ];
#};
}
../../2configs/nginx/dl.euer.krebsco.de.nix
#../../2configs/nginx/euer.test.nix
../../2configs/nginx/euer.mon.nix
../../2configs/nginx/euer.wiki.nix
../../2configs/nginx/euer.blog.nix
../../2configs/nginx/music.euer.nix
## ../../2configs/nginx/gum.krebsco.de.nix
#../../2configs/nginx/public_html.nix
#../../2configs/nginx/update.connector.one.nix
../../2configs/nginx/misa-felix-hochzeit.ml.nix
# ../../2configs/nginx/gold.krebsco.de.nix
# ../../2configs/nginx/iso.euer.nix
# ../../2configs/deployment/photostore.krebsco.de.nix
# ../../2configs/deployment/graphs.nix
#../../2configs/deployment/owncloud.nix
# ../../2configs/deployment/board.euer.krebsco.de.nix
#../../2configs/deployment/feed.euer.krebsco.de
../../2configs/deployment/boot-euer.nix
../../2configs/deployment/gecloudpad
#../../2configs/deployment/docker/archiveteam-warrior.nix
../../2configs/deployment/mediengewitter.de.nix
../../2configs/bgt/etherpad.euer.krebsco.de.nix
# ../../2configs/deployment/systemdultras-rss.nix
../../2configs/shiori.nix
#../../2configs/workadventure
../../2configs/bgt/download.binaergewitter.de.nix
../../2configs/bgt/hidden_service.nix
../../2configs/bgt/backup.nix
# ../../2configs/bgt/social-to-irc.nix
# ../../2configs/logging/client.nix
# sharing
# ../../2configs/dcpp/airdcpp.nix
#{ krebs.airdcpp.dcpp.shares = {
# download.path = config.makefu.dl-dir + "/finished";
# sorted.path = config.makefu.dl-dir + "/sorted";
# };
#}
# ../../2configs/dcpp/hub.nix
## Temporary:
# ../../2configs/temp/rst-issue.nix
# ../../2configs/virtualisation/docker.nix
#../../2configs/virtualisation/libvirt.nix
# krebs infrastructure services
# ../../2configs/stats/server.nix
];
# makefu.dl-dir = "/var/download";
makefu.dl-dir = "/media/cloud/download/finished";
sops.secrets."ssh_host_rsa_key" = {};
sops.secrets."ssh_host_ed25519_key" = {};
services.openssh.hostKeys = lib.mkForce [
{ bits = 4096; path = (config.sops.secrets."ssh_host_rsa_key".path); type = "rsa"; }
{ path = config.sops.secrets."ssh_host_ed25519_key".path; type = "ed25519"; } ];
###### stable
security.acme.certs."cgit.euer.krebsco.de" = {
email = "letsencrypt@syntax-fehler.de";
webroot = "/var/lib/acme/acme-challenge";
group = "nginx";
};
services.nginx.virtualHosts."cgit" = {
serverAliases = [ "cgit.euer.krebsco.de" ];
addSSL = true;
sslCertificate = "/var/lib/acme/cgit.euer.krebsco.de/fullchain.pem";
sslCertificateKey = "/var/lib/acme/cgit.euer.krebsco.de/key.pem";
locations."/.well-known/acme-challenge".extraConfig = ''
root /var/lib/acme/acme-challenge;
'';
};
krebs.build.host = config.krebs.hosts.gum;
# Network
networking = {
firewall = {
allowedTCPPorts = [
80 443
28967 # storj
];
allowPing = true;
logRefusedConnections = false;
};
nameservers = [ "8.8.8.8" ];
};
users.users.makefu.extraGroups = [ "download" "nginx" ];
state = [ "/home/makefu/.weechat" ];
}