feat(nix): add Rclone for Google Drive folder sync
This commit is contained in:
parent
a2a350bc59
commit
8f808b5c8c
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
sshConfigPath = ./ssh-config.nix;
|
sshConfigPath = ./ssh-config.nix;
|
||||||
|
gdrivePath = "/home/spy4x/gdrive";
|
||||||
|
curBin = "/run/current-system/sw/bin";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
@ -25,7 +27,15 @@ in
|
|||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [
|
||||||
80 # Web server to debug apps from mobile
|
# BEGIN Web server to debug apps from mobile
|
||||||
|
80
|
||||||
|
4200
|
||||||
|
4201
|
||||||
|
5173
|
||||||
|
5174
|
||||||
|
8080
|
||||||
|
8081
|
||||||
|
# END Web server to debug apps from mobile
|
||||||
53317 # LocalSend
|
53317 # LocalSend
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@ -118,6 +128,7 @@ in
|
|||||||
obs-studio # Video recorder and stream software
|
obs-studio # Video recorder and stream software
|
||||||
solaar # Logitech devices GUI. Strictly use with sudo, otherwise it doesn't see devices.
|
solaar # Logitech devices GUI. Strictly use with sudo, otherwise it doesn't see devices.
|
||||||
localsend # Share files/text/data with other devices in local network without internet. OSS alternative to AirDrop.
|
localsend # Share files/text/data with other devices in local network without internet. OSS alternative to AirDrop.
|
||||||
|
rclone # Sync Google Drive with a local folder
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
programs.steam.enable = true; # Install Steam for games management
|
programs.steam.enable = true; # Install Steam for games management
|
||||||
@ -134,6 +145,27 @@ in
|
|||||||
services.xserver.displayManager.autoLogin.enable = true;
|
services.xserver.displayManager.autoLogin.enable = true;
|
||||||
services.xserver.displayManager.autoLogin.user = "spy4x";
|
services.xserver.displayManager.autoLogin.user = "spy4x";
|
||||||
|
|
||||||
|
# RClone Google Drive service
|
||||||
|
systemd.services.rclone-gdrive-mount = {
|
||||||
|
# Ensure the service starts after the network is up
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
requires = [ "network-online.target" ];
|
||||||
|
|
||||||
|
# Service configuration
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStartPre = "${curBin}/mkdir -p ${gdrivePath}";
|
||||||
|
ExecStart = "${pkgs.rclone}/bin/rclone mount gdrive: ${gdrivePath}";
|
||||||
|
ExecStop = "${curBin}/fusermount -u ${gdrivePath}";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "10s";
|
||||||
|
User = "spy4x";
|
||||||
|
Group = "users";
|
||||||
|
Environment = [ "PATH=/run/wrappers/bin/:$PATH" ]; # Required environments
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
|
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
|
||||||
systemd.services."getty@tty1".enable = false;
|
systemd.services."getty@tty1".enable = false;
|
||||||
systemd.services."autovt@tty1".enable = false;
|
systemd.services."autovt@tty1".enable = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user