mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-25 02:08:29 +02:00
feat: change data directories, add disko for usb storage
This commit is contained in:
@@ -17,7 +17,7 @@ in {
|
|||||||
# Reload Caddy instead of restarting it when configuration file changes.
|
# Reload Caddy instead of restarting it when configuration file changes.
|
||||||
enableReload = true;
|
enableReload = true;
|
||||||
user = "caddy"; # User account under which caddy runs.
|
user = "caddy"; # User account under which caddy runs.
|
||||||
dataDir = "/var/lib/caddy";
|
dataDir = "/data/apps/caddy";
|
||||||
logDir = "/var/log/caddy";
|
logDir = "/var/log/caddy";
|
||||||
|
|
||||||
# Additional lines of configuration appended to the global config section of the Caddyfile.
|
# Additional lines of configuration appended to the global config section of the Caddyfile.
|
||||||
@@ -36,7 +36,7 @@ in {
|
|||||||
|
|
||||||
# https://caddyserver.com/docs/caddyfile/directives/file_server
|
# https://caddyserver.com/docs/caddyfile/directives/file_server
|
||||||
virtualHosts."file.writefor.fun".extraConfig = ''
|
virtualHosts."file.writefor.fun".extraConfig = ''
|
||||||
root * /var/lib/caddy/fileserver/
|
root * /data/apps/caddy/fileserver/
|
||||||
${hostCommonConfig}
|
${hostCommonConfig}
|
||||||
file_server browse {
|
file_server browse {
|
||||||
hide .git
|
hide .git
|
||||||
@@ -83,15 +83,15 @@ in {
|
|||||||
|
|
||||||
# Create Directories
|
# Create Directories
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d /var/lib/caddy/fileserver/ 0755 caddy caddy"
|
"d /data/apps/caddy/fileserver/ 0755 caddy caddy"
|
||||||
# directory for virtual machine's images
|
# directory for virtual machine's images
|
||||||
"d /var/lib/caddy/fileserver/vms 0755 caddy caddy"
|
"d /data/apps/caddy/fileserver/vms 0755 caddy caddy"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Add all my wallpapers into /var/lib/caddy/fileserver/wallpapers
|
# Add all my wallpapers into /data/apps/caddy/fileserver/wallpapers
|
||||||
# Install the homepage-dashboard configuration files
|
# Install the homepage-dashboard configuration files
|
||||||
system.activationScripts.installCaddyWallpapers = ''
|
system.activationScripts.installCaddyWallpapers = ''
|
||||||
mkdir -p /var/lib/caddy/fileserver/wallpapers
|
mkdir -p /data/apps/caddy/fileserver/wallpapers
|
||||||
${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F644 ${wallpapers}/ /var/lib/caddy/fileserver/wallpapers/
|
${pkgs.rsync}/bin/rsync -avz --chmod=D2755,F644 ${wallpapers}/ /data/apps/caddy/fileserver/wallpapers/
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
mylib,
|
mylib,
|
||||||
myvars,
|
myvars,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
disko,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
#############################################################
|
#############################################################
|
||||||
@@ -12,7 +13,11 @@
|
|||||||
let
|
let
|
||||||
hostName = "aquamarine"; # Define your hostname.
|
hostName = "aquamarine"; # Define your hostname.
|
||||||
in {
|
in {
|
||||||
imports = mylib.scanPaths ./.;
|
imports =
|
||||||
|
(mylib.scanPaths ./.)
|
||||||
|
++ [
|
||||||
|
disko.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
# supported file systems, so we can mount any removable disks with these filesystems
|
# supported file systems, so we can mount any removable disks with these filesystems
|
||||||
boot.supportedFilesystems = [
|
boot.supportedFilesystems = [
|
||||||
|
|||||||
58
hosts/idols-aquamarine/disko-fs.nix
Normal file
58
hosts/idols-aquamarine/disko-fs.nix
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# auto disk partitioning:
|
||||||
|
# nix run github:nix-community/disko -- --mode disko ./disko-fs.nix
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk.data-apps = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/disk/by-id/ata-WDC_WD40EJRX-89T1XY0_WD-WCC7K0XDCZE6";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions.data-apps = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
# extraArgs = ["-f"]; # Override existing partition
|
||||||
|
subvolumes = {
|
||||||
|
"@persistent" = {
|
||||||
|
mountpoint = "/data/apps";
|
||||||
|
mountOptions = ["compress-force=zstd:1" "noatime"];
|
||||||
|
};
|
||||||
|
"@backups" = {
|
||||||
|
mountpoint = "/data/backups";
|
||||||
|
mountOptions = ["compress-force=zstd:1" "noatime"];
|
||||||
|
};
|
||||||
|
"@snapshots" = {
|
||||||
|
mountpoint = "/data/apps-snapshots";
|
||||||
|
mountOptions = ["compress-force=zstd:1" "noatime"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
disk.data-fileshare = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K7VV9613";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions.data-fileshare = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
# extraArgs = ["-f"]; # Override existing partition
|
||||||
|
subvolumes = {
|
||||||
|
"@persistent" = {
|
||||||
|
mountpoint = "/data/fileshare";
|
||||||
|
mountOptions = ["compress-force=zstd:1" "noatime"];
|
||||||
|
};
|
||||||
|
"@snapshots" = {
|
||||||
|
mountpoint = "/data/fileshare-snapshots";
|
||||||
|
mountOptions = ["compress-force=zstd:1" "noatime"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
fileSystems."/data/downloads" = {
|
|
||||||
device = "/dev/disk/by-label/Downloads";
|
|
||||||
fsType = "ntfs-3g";
|
|
||||||
options = ["rw" "uid=1000"];
|
|
||||||
};
|
|
||||||
fileSystems."/data/games" = {
|
|
||||||
device = "/dev/disk/by-label/Games";
|
|
||||||
fsType = "ntfs-3g";
|
|
||||||
options = ["rw" "uid=1000"];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -5,7 +5,7 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
user = "gitea";
|
user = "gitea";
|
||||||
group = "gitea";
|
group = "gitea";
|
||||||
stateDir = "/var/lib/gitea";
|
stateDir = "/data/apps/gitea";
|
||||||
appName = "Ryan Yin's Gitea Service";
|
appName = "Ryan Yin's Gitea Service";
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
# Enable a timer that runs gitea dump to generate backup-files of the current gitea database and repositories.
|
# Enable a timer that runs gitea dump to generate backup-files of the current gitea database and repositories.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
}: {
|
}: {
|
||||||
services.grafana = {
|
services.grafana = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dataDir = "/var/lib/grafana";
|
dataDir = "/data/apps/grafana";
|
||||||
# DeclarativePlugins = with pkgs.grafanaPlugins; [ grafana-piechart-panel ];
|
# DeclarativePlugins = with pkgs.grafanaPlugins; [ grafana-piechart-panel ];
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{pkgs, ...}: let
|
{pkgs, ...}: let
|
||||||
configDir = "/var/lib/homepage-dashboard";
|
configDir = "/data/apps/homepage-dashboard";
|
||||||
in {
|
in {
|
||||||
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/misc/homepage-dashboard.nix
|
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/misc/homepage-dashboard.nix
|
||||||
services.homepage-dashboard = {
|
services.homepage-dashboard = {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
services.sftpgo = {
|
services.sftpgo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "sftpgo";
|
user = "sftpgo";
|
||||||
dataDir = "/var/lib/sftpgo";
|
dataDir = "/data/apps/sftpgo";
|
||||||
extraArgs = [
|
extraArgs = [
|
||||||
"--log-level"
|
"--log-level"
|
||||||
"info"
|
"info"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
myvars,
|
myvars,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
dataDir = "/var/lib/transmission";
|
dataDir = "/data/apps/transmission";
|
||||||
name = "transmission";
|
name = "transmission";
|
||||||
in {
|
in {
|
||||||
# the headless Transmission BitTorrent daemon
|
# the headless Transmission BitTorrent daemon
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
settings = {
|
settings = {
|
||||||
"UPTIME_KUMA_HOST" = "127.0.0.1";
|
"UPTIME_KUMA_HOST" = "127.0.0.1";
|
||||||
"UPTIME_KUMA_PORT" = "3350";
|
"UPTIME_KUMA_PORT" = "3350";
|
||||||
"DATA_DIR" = "/var/lib/uptime-kuma/";
|
"DATA_DIR" = "/data/apps/uptime-kuma/";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user