migrates dnsc-vps-sm

This commit is contained in:
Dennis Schoepf 2026-03-10 19:58:21 +01:00
parent a5e20a6a75
commit 26b05c4818
9 changed files with 485 additions and 6 deletions

View file

@ -0,0 +1,26 @@
{ ... }:
{
flake.modules.nixos.actual-server =
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [
actual-server
];
systemd.services.actual = {
enable = true;
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
description = "user service for the actual budgeting server instance";
environment = {
ACTUAL_PORT = "9002";
};
serviceConfig = {
Type = "simple";
ExecStart = "/run/current-system/sw/bin/actual-server";
Restart = "on-failure";
RestartSec = 3;
};
};
};
}

View file

@ -0,0 +1,40 @@
{ ... }:
{
flake.modules.nixos.caddy =
{ pkgs, ... }:
{
services.caddy = {
enable = true;
virtualHosts."www.dnsc.io".extraConfig = ''
redir https://dnsc.io{uri}
'';
virtualHosts."dnsc.io".extraConfig = ''
encode gzip
file_server
root * /var/www/homepage
'';
virtualHosts."slides.dnsc.io".extraConfig = ''
encode gzip
file_server
root * /var/www/slides
'';
virtualHosts."vault.dnsc.io".extraConfig = ''
reverse_proxy localhost:8000
'';
virtualHosts."uptime.dnsc.io".extraConfig = ''
reverse_proxy localhost:9000
'';
virtualHosts."home.dnsc.io".extraConfig = ''
reverse_proxy localhost:9001
'';
virtualHosts."finance.dnsc.io".extraConfig = ''
reverse_proxy localhost:9002
'';
virtualHosts."notes.dnsc.io".extraConfig = ''
reverse_proxy localhost:9003
'';
};
};
}

View file

@ -0,0 +1,219 @@
{ ... }:
{
flake.modules.nixos.homepage =
{ pkgs, config, ... }:
{
environment.systemPackages = with pkgs; [
glance
];
services.glance = {
enable = true;
settings = {
server = {
port = 9001;
};
theme = {
background-color = "hsl(264 31.3% 6.3%)";
primary-color = "hsl(9 92.1% 85.1%)";
contrast-multiplier = 1.2;
positive-color = "hsl(174 100% 32%)";
negative-color = "hsl(354 100% 70.8%)";
disable-picker = false;
};
pages = [
{
name = "Home";
columns = [
{
size = "small";
widgets = [
{
type = "monitor";
cache = "1m";
title = "Selfhosted";
sites = [
{
title = "Fastmail";
url = "https://app.fastmail.com/";
icon = "si:protonmail";
}
{
title = "Actual";
url = "https://finance.dnsc.io";
icon = "si:actualbudget";
}
{
title = "Vaultwarden";
url = "https://vault.dnsc.io";
icon = "si:vaultwarden";
}
{
title = "Notes";
url = "https://notes.dnsc.io";
icon = "si:memos";
}
{
title = "Uptime Kuma";
url = "https://uptime.dnsc.io";
icon = "si:uptimekuma";
}
{
title = "dnsc.io";
url = "https://dnsc.io";
icon = "si:htmx";
}
{
title = "Jellyfin";
url = "http://192.168.178.69:8096";
icon = "si:jellyfin";
allow-insecure = true;
}
];
}
{
type = "bookmarks";
groups = [
{
title = "Hosting";
color = "hsl(187 56.6% 47.8%)";
links = [
{
title = "Hetzner";
url = "https://console.hetzner.com/projects/1355757/dashboard";
}
{
title = "Netcup";
url = "https://www.servercontrolpanel.de/SCP/Home";
}
{
title = "Porkbun";
url = "https://porkbun.com/account/domainsSpeedy";
}
];
}
{
title = "Dev";
color = "hsl(319 37.6% 63.5%)";
links = [
{
title = "Codeberg";
url = "https://codeberg.org/dnscio";
}
{
title = "Github";
url = "https://github.com/dennisschoepf?tab=repositories";
}
];
}
];
}
];
}
{
size = "full";
widgets = [
{
type = "group";
widgets = [
{
type = "hacker-news";
limit = 15;
collapse-after = 5;
}
{
type = "rss";
title = "r/neovim";
single-line-titles = true;
feeds = [
{
url = "https://www.reddit.com/r/neovim.rss";
}
];
}
{
type = "rss";
title = "r/onepiece";
single-line-titles = true;
feeds = [
{
url = "https://www.reddit.com/r/onepiece.rss";
}
];
}
{
type = "rss";
title = "r/triathlon";
single-line-titles = true;
feeds = [
{
url = "https://www.reddit.com/r/triathlon.rss";
}
];
}
];
}
{
type = "twitch-channels";
channels = [
"theprimeagen"
"tsoding"
"noway4u_sir"
"broxah"
"caedrel"
"bashbunni"
];
}
{
type = "videos";
collapse-after = 6;
channels = [
"UCuTaETsuCOkJ0H_GAztWt0Q"
"UCJVMrR290HU9pDxaP35u_cg"
"UCqqJQ_cXSat0KIAVfIfKkVA"
"UCdC0An4ZPNr_YiFiYoVbwaw"
"UCsXVk37bltHxD1rDPwtNM8Q"
"UCofJu853kJKpkg4y5a-9YXg"
"UCewLMcro9tNP97XQ1rxtLXQ"
"UCuo9VyowIT-ljA5G2ZuC6Yw"
"UCipCyKo5D3FyWE6_TpQyr5A"
"UCmL9OhLB27r1lTCHQ3pEiIQ"
"UCNIuvl7V8zACPpTmmNIqP2A"
"UC-gct8TB_8l5HsQHBBr8hyQ"
];
}
];
}
{
size = "small";
widgets = [
{
type = "server-stats";
servers = [
{
name = "dnsc-vps-sm";
type = "local";
}
];
}
{
type = "calendar";
first-day-of-the-week = "monday";
}
{
type = "weather";
units = "metric";
hour-format = "24h";
location = "Munich, Germany";
}
];
}
];
}
];
};
};
};
}

View file

@ -0,0 +1,13 @@
{ ... }:
{
flake.modules.nixos.uptime-kuma =
{ pkgs, config, ... }:
{
services.uptime-kuma = {
enable = true;
settings = {
PORT = "9000";
};
};
};
}

View file

@ -0,0 +1,12 @@
{ ... }:
{
flake.modules.nixos.vaultwarden =
{ pkgs, config, ... }:
{
services.vaultwarden = {
enable = true;
environmentFile = config.age.secrets."vaultwarden/env".path;
backupDir = "/var/backup/vaultwarden";
};
};
}