1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/systems/ful/configuration.nix

111 lines
2.4 KiB
Nix
Raw Normal View History

2022-05-20 23:04:15 +02:00
{
config,
pkgs,
2024-07-10 12:57:07 +02:00
lib,
2022-05-20 23:04:15 +02:00
...
2025-12-27 22:22:54 +01:00
}:
{
2022-05-20 23:04:15 +02:00
imports = [
./hardware-configuration.nix
2023-02-16 08:46:18 +01:00
./matomo.nix
./radio.nix
2023-03-24 17:00:44 +01:00
./panoptikon.nix
2023-10-30 14:26:50 +01:00
./hledger.nix
2025-10-02 18:30:08 +02:00
./go-webring.nix
2025-09-05 08:05:02 +02:00
./gemini.nix
2025-05-28 09:31:50 +02:00
./wallabag.nix
2025-12-19 22:44:08 +01:00
./nethack.nix
../../configs/monitoring.nix
2025-03-04 21:48:01 +01:00
../../configs/mycelium.nix
2023-03-22 07:47:57 +01:00
../../configs/tor.nix
../../configs/save-space.nix
../../configs/spacetime.nix
../../configs/retiolum.nix
../../configs/sshd.nix
../../configs/nix.nix
../../configs/admin-essentials.nix
2022-05-20 23:04:15 +02:00
];
niveum.passport = {
enable = true;
2025-12-27 22:22:54 +01:00
introductionHTML = '''';
virtualHost = "ful.r";
services = [
{
title = "restic backup";
description = "This machine backups its state via restic backup.";
}
];
};
age.secrets = {
2023-02-28 16:45:20 +01:00
retiolum-rsa = {
file = ../../secrets/ful-retiolum-privateKey-rsa.age;
2023-02-28 16:45:20 +01:00
mode = "400";
2024-06-03 07:27:01 +02:00
owner = "tinc-retiolum";
group = "tinc-retiolum";
2023-02-28 16:45:20 +01:00
};
retiolum-ed25519 = {
file = ../../secrets/ful-retiolum-privateKey-ed25519.age;
2023-02-28 16:45:20 +01:00
mode = "400";
2024-06-03 07:27:01 +02:00
owner = "tinc-retiolum";
group = "tinc-retiolum";
2023-02-28 16:45:20 +01:00
};
root.file = ../../secrets/ful-root.age;
restic.file = ../../secrets/restic.age;
};
2023-02-16 08:46:18 +01:00
services.restic.backups.niveum = {
initialize = true;
repository = pkgs.lib.niveum.restic.repository;
2023-02-16 08:46:18 +01:00
timerConfig = {
OnCalendar = "daily";
RandomizedDelaySec = "1h";
};
passwordFile = config.age.secrets.restic.path;
2023-02-16 08:46:18 +01:00
paths = [
config.services.mysqlBackup.location
];
};
2022-05-20 23:04:15 +02:00
networking = {
2025-12-27 22:22:54 +01:00
firewall.allowedTCPPorts = [
80
443
];
2022-05-20 23:04:15 +02:00
hostName = "ful";
interfaces.enp0s3.useDHCP = true;
retiolum = pkgs.lib.niveum.retiolumAddresses.ful;
2022-05-20 23:04:15 +02:00
useDHCP = false;
};
system.stateVersion = "21.11";
services.nginx = {
enable = true;
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
sslCiphers = "AES256+EECDH:AES256+EDH:!aNULL";
};
security.acme = {
acceptTerms = true;
defaults.email = pkgs.lib.niveum.kieran.email;
2022-05-20 23:04:15 +02:00
};
2023-12-06 14:41:49 +01:00
users.users.root.hashedPasswordFile = config.age.secrets.root.path;
2022-05-21 23:06:49 +02:00
2025-12-27 22:22:54 +01:00
environment.systemPackages = [
pkgs.vim
pkgs.git
pkgs.tmux
pkgs.python3
];
# since 22.05 timeout fails?
2023-06-06 19:59:27 +02:00
# systemd.services.systemd-networkd-wait-online.enable = false;
2022-05-20 23:04:15 +02:00
}