test ebook search / test-ebook-search (pull_request) Successful in 35s
build_systems / build-bob (pull_request) Successful in 52s
build_systems / build-brain (pull_request) Successful in 52s
treefmt / nix fmt (pull_request) Successful in 5s
pytest / pytest (pull_request) Successful in 30s
build_systems / build-rhapsody-in-green (pull_request) Successful in 1m3s
build_systems / build-brain (push) Successful in 35s
build_systems / build-bob (push) Successful in 36s
build_systems / build-jeeves (pull_request) Successful in 2m20s
treefmt / nix fmt (push) Successful in 5s
pytest / pytest (push) Successful in 29s
test ebook search / test-ebook-search (push) Successful in 34s
build_systems / build-rhapsody-in-green (push) Successful in 49s
build_systems / build-jeeves (push) Successful in 2m2s
- replace legacy IP addresses with Tailscale MagicDNS names - route Prometheus scraping and exporter firewall access through Tailscale - wait for Tailscale before starting Prometheus - restrict service UI ports to the Tailscale interface - update PostgreSQL and Transmission access rules - remove Jeeves ZeroTier configuration and Docker host overrides
159 lines
4.4 KiB
Nix
159 lines
4.4 KiB
Nix
let
|
|
vars = import ./vars.nix;
|
|
in
|
|
{
|
|
networking.firewall.interfaces.tailscale0.allowedTCPPorts = [ 8384 ];
|
|
|
|
services.syncthing = {
|
|
overrideFolders = false;
|
|
guiAddress = "0.0.0.0:8384";
|
|
settings = {
|
|
devices.davids-server.id = "7GXTDGR-AOXFW2O-K6J7NM3-XYZNRRW-AKHAFWM-GBOWUPQ-OA6JIWD-ER7RDQL"; # cspell:disable-line
|
|
folders = {
|
|
photos = {
|
|
path = "${vars.syncthing}/important";
|
|
devices = [
|
|
"rhapsody-in-green"
|
|
"phone"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"dotfiles" = {
|
|
path = "/home/richie/dotfiles";
|
|
devices = [
|
|
"bob"
|
|
"brain"
|
|
"rhapsody-in-green"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"notes" = {
|
|
id = "l62ul-lpweo"; # cspell:disable-line
|
|
path = vars.notes;
|
|
devices = [
|
|
"rhapsody-in-green"
|
|
{
|
|
name = "davids-server";
|
|
encryptionPasswordFile = "${vars.secrets}/services/syncthing/davids-server";
|
|
}
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"important" = {
|
|
id = "4ckma-gtshs"; # cspell:disable-line
|
|
path = "${vars.syncthing}/important";
|
|
devices = [
|
|
"bob"
|
|
"brain"
|
|
"phone"
|
|
"rhapsody-in-green"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"music" = {
|
|
id = "vprc5-3azqc"; # cspell:disable-line
|
|
path = "${vars.syncthing}/music";
|
|
devices = [
|
|
"bob"
|
|
"rhapsody-in-green"
|
|
"ipad"
|
|
"phone"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"projects" = {
|
|
id = "vyma6-lqqrz"; # cspell:disable-line
|
|
path = "${vars.syncthing}/projects";
|
|
devices = [
|
|
"rhapsody-in-green"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"rhapsody-in-green_temp" = {
|
|
path = "${vars.syncthing}/rhapsody-in-green_temp";
|
|
devices = [
|
|
"rhapsody-in-green"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"vault" = {
|
|
path = "/home/richie/vault";
|
|
devices = [
|
|
"rhapsody-in-green"
|
|
{
|
|
name = "davids-server";
|
|
encryptionPasswordFile = "${vars.secrets}/services/syncthing/davids-server";
|
|
}
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"backup" = {
|
|
path = "${vars.syncthing}/backup";
|
|
devices = [
|
|
{
|
|
name = "davids-server";
|
|
encryptionPasswordFile = "${vars.secrets}/services/syncthing/davids-server";
|
|
}
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
"recordings" = {
|
|
path = "/home/richie/recordings";
|
|
devices = [
|
|
"bob"
|
|
"phone"
|
|
"rhapsody-in-green"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
};
|
|
# davids-server
|
|
"davids-backup1" = {
|
|
id = "8229p-8z3tm"; # cspell:disable-line
|
|
path = "${vars.syncthing}/davids_backups/1";
|
|
devices = [
|
|
"davids-server"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
type = "receiveencrypted";
|
|
};
|
|
"davids-backup2" = {
|
|
id = "iciw3-dp6ao"; # cspell:disable-line
|
|
path = "${vars.syncthing}/davids_backups/2";
|
|
devices = [
|
|
"davids-server"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
type = "receiveencrypted";
|
|
};
|
|
"davids-backup3" = {
|
|
id = "9si6m-bnkjb"; # cspell:disable-line
|
|
path = "${vars.syncthing}/davids_backups/3";
|
|
devices = [
|
|
"davids-server"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
type = "receiveencrypted";
|
|
};
|
|
"davids-backup4" = {
|
|
id = "qjyfy-uupj4"; # cspell:disable-line
|
|
path = "${vars.syncthing}/davids_backups/4";
|
|
devices = [
|
|
"davids-server"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
type = "receiveencrypted";
|
|
};
|
|
"davids-backup5" = {
|
|
id = "fm4h5-emsu2"; # cspell:disable-line
|
|
path = "${vars.syncthing}/davids_backups/5";
|
|
devices = [
|
|
"davids-server"
|
|
];
|
|
fsWatcherEnabled = true;
|
|
type = "receiveencrypted";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|