From 591815d0b92fa4ea45ac1817dcf5072e683a66bc Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Mon, 15 Apr 2024 10:41:32 -0600 Subject: [PATCH] miniserver systemd, apps dir, path --- .gitignore | 2 + miniserver/configuration.nix | 690 ----------------------------------- miniserver/configuration.org | 153 ++++---- miniserver/servers.nix | 2 +- 4 files changed, 79 insertions(+), 768 deletions(-) delete mode 100644 miniserver/configuration.nix diff --git a/.gitignore b/.gitignore index 6321cd8..84c03c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ /scripts/download/.direnv/ +configuration.nix +/apps/ diff --git a/miniserver/configuration.nix b/miniserver/configuration.nix deleted file mode 100644 index cd7e920..0000000 --- a/miniserver/configuration.nix +++ /dev/null @@ -1,690 +0,0 @@ -{ config, pkgs, lib, ... }: -let - version = "23.11"; - myEmail = "CaptainJawZ@outlook.com"; - myName = "Danilo Reyes"; - cpuArchitecture = "alderlake"; - home-manager = builtins.fetchTarball - # "https://github.com/nix-community/home-manager/archive/master.tar.gz"; - "https://github.com/nix-community/home-manager/archive/release-${version}.tar.gz"; - unstable = import - (builtins.fetchTarball "https://github.com/nixos/nixpkgs/tarball/master") { - config = config.nixpkgs.config; - }; - jawzManageLibrary = pkgs.writeScriptBin - "manage-library" (builtins.readFile ../scripts/manage-library.sh); - jawzTasks = pkgs.writeScriptBin - "tasks" (builtins.readFile ../scripts/tasks.sh); - jawzSubs = pkgs.writeScriptBin - "sub-sync" (builtins.readFile ../scripts/sub-sync.sh); - jawzStream = pkgs.writeScriptBin - "stream-dl" (builtins.readFile ../scripts/stream-dl.sh); -in -{ # Remember to close this bracket at the end of the document - -imports = [ - ./fstab.nix - ./servers.nix - ./docker.nix - # ./mail.nix - # ./openldap.nix - # - (import "${home-manager}/nixos") -]; - -powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; -networking = { - useDHCP = lib.mkDefault true; - enableIPv6 = false; - hostName = "miniserver"; - networkmanager.enable = true; - extraHosts = '' - 192.168.1.64 workstation - 192.168.1.69 server - ''; - firewall = let - open_firewall_ports = [ - 51413 # torrent sedding - 9091 # qbittorrent - 2049 # nfs - ]; - open_firewall_port_ranges = [ ]; - in - { - enable = true; - allowPing = true; - allowedTCPPorts = open_firewall_ports; - allowedUDPPorts = open_firewall_ports; - allowedTCPPortRanges = open_firewall_port_ranges; - allowedUDPPortRanges = open_firewall_port_ranges; - }; -}; - -time.timeZone = "America/Mexico_City"; -i18n = { - defaultLocale = "en_CA.UTF-8"; - extraLocaleSettings = { - LC_MONETARY = "es_MX.UTF-8"; - }; -}; -console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - # useXkbConfig = true; # use xkbOptions in tty. -}; - -system = { - copySystemConfiguration = true; - stateVersion = "${version}"; -}; -nix = let featuresList = [ - "nixos-test" - "benchmark" - "big-parallel" - "kvm" - "gccarch-${cpuArchitecture}" - "gccarch-znver3" - ]; - in - { - gc = { - automatic = true; - dates = "weekly"; - }; - buildMachines = [ { - hostName = "workstation"; - system = "x86_64-linux"; - sshUser = "nixremote"; - maxJobs = 14; - speedFactor = 1; - supportedFeatures = featuresList; - } ]; - distributedBuilds = true; - settings = { - cores = 3; - auto-optimise-store = true; - trusted-users = [ "nixremote" ]; - system-features = featuresList; - substituters = [ - "https://nix-gaming.cachix.org" - "https://nixpkgs-python.cachix.org" - "https://devenv.cachix.org" - "https://cuda-maintainers.cachix.org" - ]; - trusted-public-keys = [ - "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" - "nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU=" - "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" - "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" - ]; - }; -}; - -security = { - acme = { - acceptTerms = true; - defaults.email = myEmail; - }; - rtkit.enable = true; - sudo = { - enable = true; - wheelNeedsPassword = false; - }; - pam.loginLimits = [{ - domain = "*"; - type = "soft"; - item = "nofile"; - value = "8192"; - }]; -}; - -nixpkgs = { - hostPlatform = lib.mkDefault "x86_64-linux"; - config = { - allowUnfree = true; - permittedInsecurePackages = [ - "openssl-1.1.1w" - ]; - }; - # localSystem = { - # gcc.arch = cpuArchitecture; - # gcc.tune = cpuArchitecture; - # system = "x86_64-linux"; - # }; -}; - -users = { - groups.nixremote = { - name = "nixremote"; - gid = 555; - }; - users.nixremote = { - isNormalUser = true; - createHome = true; - group = "nixremote"; - home = "/var/nixremote/"; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICiyTwryzw8CblPldplDpVUkXD9C1fXVgO8LeXdE5cuR root@workstation" - "" - ]; - }; -}; -users.users.jawz = { - isNormalUser = true; - extraGroups = [ "wheel" "networkmanager" "docker" - "scanner" "lp" "piracy" "kavita" - "render" "video" - ]; - initialPassword = "password"; - openssh = { - authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB5GaQM4N+yGAByibOFQOBVMV/6TjOfaGIP+NunMiK76 gpodeacero\cdreyes@100CDREYES" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkpeIV9G26W2/e9PsjBx3sNwPGoicJ807ExRGh4KjhW jawz@server" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH2wtsaMvfEUm//2YnFHyrc16o+TOXXBfIGPJ9nL8RMp jawz@workstation" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBEblxSDhWPEo33crSjooeUg4W02ruENxHLmmBqCuIo jawz@galaxy" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN6HsajaTL+nTJtSIu00M5WJwgt/7fyU59gBr2R7tbnv root@server" - ]; - }; - -packages = (with pkgs; [ - -hunspell -hunspellDicts.it_IT -hunspellDicts.es_MX -hunspellDicts.en_CA - -symbola - -unstable.yt-dlp # downloads videos from most video websites -unstable.gallery-dl # similar to yt-dlp but for most image gallery websites - -fd # modern find, faster searches -fzf # fuzzy finder! super cool and useful -gdu # disk-space utility, somewhat useful -du-dust # rusty du -trash-cli # oop! didn't meant to delete that -eza # like ls but with colors -rmlint # probably my favourite app, amazing dupe finder that integrates well with BTRFS -smartmontools # check hard drie health - -jawzManageLibrary -jawzTasks -jawzSubs -jawzStream -(writeScriptBin "ffmpeg4discord" (builtins.readFile ../scripts/ffmpeg4discord.py)) -(writeScriptBin "ffmpreg" (builtins.readFile ../scripts/ffmpreg.sh)) -(writeScriptBin "split-dir" (builtins.readFile ../scripts/split-dir.sh)) -(writeScriptBin "pika-list" (builtins.readFile ../scripts/pika-list.sh)) -(writeScriptBin "run" (builtins.readFile ../scripts/run.sh)) -(writeScriptBin "find-dup-episodes" (builtins.readFile ../scripts/find-dup-episodes.sh)) - -tldr # man for retards - -# SH -bats # testing system, required by Exercism -bashdb # autocomplete -shellcheck # linting -shfmt # a shell parser and formatter - -# NIX -expect # keep color when nom'ing -nix-output-monitor # autistic nix builds -nixfmt # linting -cachix # why spend time compiling? - -# PYTHON. -(python3.withPackages (ps: with ps; [ - flake8 # wraper for pyflakes, pycodestyle and mccabe - isort # sort Python imports - nose # testing and running python scripts - pyflakes # checks source code for errors - pytest # framework for writing tests - speedtest-cli # check internet speed from the comand line - editorconfig # follow rules of contributin - black # Python code formatter - pylint # bug and style checker for python -])) # base language - -]) ++ (with pkgs.python3Packages; [ -(buildPythonApplication rec { - pname = "download"; - version = "1.5"; - src = ../scripts/download/.; - doCheck = false; - buildInputs = [ setuptools ]; - propagatedBuildInputs = - [ pyyaml types-pyyaml ]; -}) -(buildPythonApplication rec { - pname = "ffpb"; - version = "0.4.1"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk="; - }; - doCheck = false; - buildInputs = [ setuptools ]; - propagatedBuildInputs = - [ tqdm ]; -}) -# (buildPythonApplication rec { -# pname = "qbit_manage"; -# version = "4.0.3"; -# src = fetchPypi { -# inherit pname version; -# sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk="; -# }; -# doCheck = true; -# buildInputs = [ setuptools ]; -# propagatedBuildInputs = -# [ gitpython requests retrying ruamel-yaml schedule unstable.qbittorrent-api ]; -# }) - -]) ++ (with pkgs.nodePackages; [ - # Language servers - dockerfile-language-server-nodejs - yaml-language-server - bash-language-server - vscode-json-languageserver - pyright - - markdownlint-cli # Linter - prettier # Linter - pnpm # Package manager - -]); }; # <--- end of package list - -home-manager = { - useUserPackages = true; - useGlobalPkgs = true; - users.jawz = { config, pkgs, ... }:{ - home.stateVersion = "${version}"; - -programs.bash = { - enable = true; - historyFile = "\${XDG_STATE_HOME}/bash/history"; - historyControl = [ "erasedups" "ignorespace" ]; - shellAliases = { - hh = "hstr"; - ls = "eza --icons --group-directories-first"; - edit = "emacsclient -t"; - comic = "download -u jawz -i \"$(cat $LC | fzf --multi --exact -i)\""; - gallery = "download -u jawz -i \"$(cat $LW | fzf --multi --exact -i)\""; - cp = "cp -i"; - mv = "mv -i"; - mkcd = "mkdir -pv \"$1\" && cd \"$1\" || exit"; - mkdir = "mkdir -p"; - rm = "trash"; - ".." = "cd .."; - "..." = "cd ../.."; - ".3" = "cd ../../.."; - ".4" = "cd ../../../.."; - ".5" = "cd ../../../../.."; - dl = "download -u jawz -i"; - e = "edit"; - c = "cat"; - f = "fzf --multi --exact -i"; - sc = "systemctl --user"; - jc = "journalctl --user -xefu"; - open-gallery = "cd /mnt/pool/scrapping/JawZ/gallery-dl && - xdg-open $(fd . ./ Husbands -tdirectory -d 1 | fzf -i)\""; - unique-extensions = "fd -tf | rev | cut -d. -f1 | rev | - tr '[:upper:]' '[:lower:]' | sort | - uniq --count | sort -rn"; - }; - enableVteIntegration = true; - initExtra = '' - $HOME/.local/bin/pokemon-colorscripts -r --no-title - # Lists - list_root="${config.xdg.configHome}"/jawz/lists/jawz - export LW=$list_root/watch.txt - export LI=$list_root/instant.txt - export LC=$list_root/comic.txt - export command_timeout=30 - - if command -v fzf-share >/dev/null; then - source "$(fzf-share)/key-bindings.bash" - source "$(fzf-share)/completion.bash" - fi - - nixos-reload () { - nixfmt /home/jawz/Development/NixOS/miniserver/*.nix - sudo unbuffer nixos-rebuild switch -I nixos-config=/home/jawz/Development/NixOS/miniserver/configuration.nix |& nom - } - ''; -}; - -xdg = { - enable = true; - userDirs = { - enable = true; - createDirectories = false; - desktop = "${config.home.homeDirectory}"; - documents = "${config.home.homeDirectory}/Documents"; - download = "${config.home.homeDirectory}/Downloads"; - music = "${config.home.homeDirectory}/Music"; - pictures = "${config.home.homeDirectory}/Pictures"; - templates = "${config.xdg.dataHome}/Templates"; - videos = "${config.home.homeDirectory}/Videos"; - }; - configFile = { - "wgetrc".source = ../dotfiles/wget/wgetrc; - "configstore/update-notifier-npm-check.json".source = ../dotfiles/npm/update-notifier-npm-check.json; - "npm/npmrc".source = ../dotfiles/npm/npmrc; - "gallery-dl/config.json".source = ../dotfiles/gallery-dl/config.json; - "htop/htoprc".source = ../dotfiles/htop/htoprc; - "python/pythonrc".source = ../dotfiles/pythonrc; - "unpackerr.conf".source = ../dotfiles/unpackerr.conf; - }; -}; - -programs = { - helix = { - enable = true; - }; - hstr.enable = true; - emacs.enable = true; - direnv = { - enable = true; - enableBashIntegration = true; - nix-direnv.enable = true; - }; - bat = { - enable = true; - config = { - pager = "less -FR"; - theme = "base16"; - }; - extraPackages = with pkgs.bat-extras; [ - batman # man pages - batpipe # piping - batgrep # ripgrep - batdiff # this is getting crazy! - batwatch # probably my next best friend - prettybat # trans your sourcecode! - ]; - }; - git = { - enable = true; - userName = "${myName}"; - userEmail = "${myEmail}"; - }; - htop = { - enable = true; - package = pkgs.htop-vim; - }; -}; - -services = { - lorri.enable = true; - emacs = { - enable = true; - defaultEditor = true; - package = pkgs.emacs; - startWithUserSession = "graphical"; - }; -}; - -}; }; - -environment = { - systemPackages = with pkgs; [ - wget - jellyfin-ffmpeg # coolest video converter! - mediainfo - dlib - fd - ripgrep - ]; - variables = rec { - # PATH - XDG_CACHE_HOME = "\${HOME}/.cache"; - XDG_CONFIG_HOME = "\${HOME}/.config"; - XDG_BIN_HOME = "\${HOME}/.local/bin"; - XDG_DATA_HOME = "\${HOME}/.local/share"; - XDG_STATE_HOME = "\${HOME}/.local/state"; - - # DEV PATH - CABAL_DIR = "${XDG_CACHE_HOME}/cabal"; - CARGO_HOME = "${XDG_DATA_HOME}/cargo"; - GEM_HOME = "${XDG_DATA_HOME}/ruby/gems"; - GEM_PATH = "${XDG_DATA_HOME}/ruby/gems"; - GEM_SPEC_CACHE = "${XDG_DATA_HOME}/ruby/specs"; - GOPATH = "${XDG_DATA_HOME}/go"; - NPM_CONFIG_USERCONFIG = "${XDG_CONFIG_HOME}/npm/npmrc"; - PNPM_HOME = "${XDG_DATA_HOME}/pnpm"; - PSQL_HISTORY="${XDG_DATA_HOME}/psql_history"; - REDISCLI_HISTFILE="${XDG_DATA_HOME}/redis/rediscli_history"; - WINEPREFIX="${XDG_DATA_HOME}/wine"; - PYTHONSTARTUP="${XDG_CONFIG_HOME}/python/pythonrc"; - STACK_ROOT="${XDG_DATA_HOME}/stack"; - - # OPTIONS - HISTFILE = "${XDG_STATE_HOME}/bash/history"; - LESSHISTFILE = "-"; - GHCUP_USE_XDG_DIRS = "true"; - RIPGREP_CONFIG_PATH = "${XDG_CONFIG_HOME}/ripgrep/ripgreprc"; - ELECTRUMDIR = "${XDG_DATA_HOME}/electrum"; - VISUAL = "emacsclient -ca emacs"; - WGETRC = "${XDG_CONFIG_HOME}/wgetrc"; - XCOMPOSECACHE = "${XDG_CACHE_HOME}/X11/xcompose"; - "_JAVA_OPTIONS" = "-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java"; - DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"; - - # NVIDIA - CUDA_CACHE_PATH = "${XDG_CACHE_HOME}/nv"; - - # Themes - # WEBKIT_DISABLE_COMPOSITING_MODE = "1"; - CALIBRE_USE_SYSTEM_THEME = "1"; - - PATH = [ - "\${HOME}/.local/bin" - "\${XDG_CONFIG_HOME}/emacs/bin" - "\${XDG_DATA_HOME}/npm/bin" - "\${XDG_DATA_HOME}/pnpm" - ]; - - # needed for tensorflow - # CUDA_PATH = "${pkgs.cudatoolkit}"; - # # LD_LIBRARY_PATH = "${pkgs.linuxPackages.nvidia_x11}/lib:${pkgs.ncurses5}/lib"; - # EXTRA_LDFLAGS = "-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"; - # EXTRA_CCFLAGS = "-I/usr/include"; - }; -}; - -programs = { - starship.enable = true; - tmux.enable = true; - fzf.fuzzyCompletion = true; - neovim = { - enable = true; - vimAlias = true; - }; - gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; -}; - -services = { - # minidlna = { - # enable = true; - # openFirewall = true; - # settings = { - # inotify = "yes"; - # media_dir = [ - # "/mnt/pool/glue" - # ]; - # }; - # }; - avahi = { - enable = true; - nssmdns = true; - }; - fstrim.enable = true; - smartd.enable = true; - btrfs.autoScrub = { - enable = true; - fileSystems = [ - "/" - "/mnt/pool" - ]; - }; - openssh = { - enable = true; - openFirewall = true; - startWhenNeeded = true; - settings = { - PasswordAuthentication = false; - KbdInteractiveAuthentication = false; - }; - }; -}; - -systemd = { - packages = let - pkgs = import (builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/9957cd48326fe8dbd52fdc50dd2502307f188b0d.tar.gz"; - }) {}; - - myPkg = pkgs.qbittorrent-nox; -in [ myPkg ]; - services = { - "qbittorrent-nox@jawz" = { - enable = true; - overrideStrategy = "asDropin"; - wantedBy = [ "multi-user.target" ]; - }; - }; - timers = { - }; - user = { - services = { - "stream@" = { - description = "monitors a stream channel for online streams."; - restartIfChanged = true; - wantedBy = [ "default.target" ]; - path = [ - pkgs.nix - jawzStream - ]; - serviceConfig = { - Restart = "on-failure"; - RestartSec = 30; - ExecStart = "${jawzStream}/bin/stream-dl %I"; - }; - }; - unpackerr = { - enable = true; - restartIfChanged = true; - description = "Run unpackerr"; - wantedBy = [ "default.target" ]; - serviceConfig = { - Restart = "on-failure"; - RestartSec = 30; - ExecStart = "${pkgs.unpackerr}/bin/unpackerr -c /home/jawz/.config/unpackerr.conf"; - }; - }; - # manage-library = { - # enable = true; - # restartIfChanged = true; - # description = "Run the manage library bash script"; - # wantedBy = [ "default.target" ]; - # path = [ - # pkgs.bash - # pkgs.nix - # jawzManageLibrary - # ]; - # serviceConfig = { - # Restart = "on-failure"; - # RestartSec = 30; - # ExecStart = "${jawzManageLibrary}/bin/manage-library"; - # }; - # }; - # tasks = { - # restartIfChanged = true; - # description = "Run a tasks script which keeps a lot of things organized"; - # wantedBy = [ "default.target" ]; - # path = [ - # pkgs.bash - # pkgs.nix - # jawzTasks - # ]; - # serviceConfig = { - # Restart = "on-failure"; - # RestartSec = 30; - # ExecStart = "${jawzTasks}/bin/tasks"; - # }; - # }; - # qbit_manage = let qbit_dir = "/home/jawz/Development/Git/qbit_manage"; in { - # restartIfChanged = true; - # description = "Tidy up my torrents"; - # wantedBy = [ "default.target" ]; - # path = [ - # pkgs.python3 - # pkgs.pipenv - # ]; - # serviceConfig = { - # Restart = "on-failure"; - # RestartSec = 30; - # ExecStart = "${qbit_dir}/.venv/bin/python3 ${qbit_dir}/qbit_manage.py -r -c ${qbit_dir}/config.yml"; - # }; - # }; - }; - timers = let - streamTimer = { - enable = true; - description = "monitors a stream channel for online streams."; - wantedBy = [ "timers.target" ]; - timerConfig = { - OnBootSec = "5min"; - OnUnitActiveSec = "65min"; - RandomizedDelaySec = 30; - }; - }; - in { - "stream@johnneal911" = streamTimer // { }; - "stream@uk2011boy" = streamTimer // { }; - "stream@tomayto\\x20picarto" = streamTimer // { }; - "stream@retrohurricaneLIVE\\x20picarto" = streamTimer // { }; - # tasks = { - # enable = true; - # description = "Run a tasks script which keeps a lot of things organized"; - # wantedBy = [ "timers.target" ]; - # timerConfig = { - # OnCalendar = "*:0/10"; - # }; - # }; - # manage-library = { - # enable = true; - # description = "Run the manage library bash script"; - # wantedBy = [ "timers.target" ]; - # timerConfig = { - # OnCalendar = "00:30"; - # }; - # }; - # qbit_manage = { - # enable = true; - # description = "Tidy up my torrents"; - # wantedBy = [ "timers.target" ]; - # timerConfig = { - # OnCalendar = "*:0/10"; - # }; - # }; - }; - }; -}; - -fonts.fontconfig.enable = true; - -hardware = { - cpu.intel.updateMicrocode = lib.mkDefault true; - opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - }; -}; - -} diff --git a/miniserver/configuration.org b/miniserver/configuration.org index 5ec2a9c..f77c5e2 100644 --- a/miniserver/configuration.org +++ b/miniserver/configuration.org @@ -701,9 +701,9 @@ environment = { PATH = [ "\${HOME}/.local/bin" - "\${XDG_CONFIG_HOME}/emacs/bin" - "\${XDG_DATA_HOME}/npm/bin" - "\${XDG_DATA_HOME}/pnpm" + "${XDG_CONFIG_HOME}/emacs/bin" + "${XDG_DATA_HOME}/npm/bin" + "${XDG_DATA_HOME}/pnpm" ]; # needed for tensorflow @@ -806,7 +806,7 @@ in [ myPkg ]; services = { "stream@" = { description = "monitors a stream channel for online streams."; - restartIfChanged = true; + restartIfChanged = true; wantedBy = [ "default.target" ]; path = [ pkgs.nix @@ -818,62 +818,60 @@ in [ myPkg ]; ExecStart = "${jawzStream}/bin/stream-dl %I"; }; }; - unpackerr = { + # unpackerr = { + # enable = true; + # restartIfChanged = true; + # description = "Run unpackerr"; + # wantedBy = [ "default.target" ]; + # serviceConfig = { + # Restart = "on-failure"; + # RestartSec = 30; + # ExecStart = "${pkgs.unpackerr}/bin/unpackerr -c /home/jawz/.config/unpackerr.conf"; + # }; + # }; + manage-library = { enable = true; restartIfChanged = true; - description = "Run unpackerr"; + description = "Run the manage library bash script"; wantedBy = [ "default.target" ]; + path = [ + pkgs.nix + jawzManageLibrary + ]; serviceConfig = { Restart = "on-failure"; RestartSec = 30; - ExecStart = "${pkgs.unpackerr}/bin/unpackerr -c /home/jawz/.config/unpackerr.conf"; + ExecStart = "${jawzManageLibrary}/bin/manage-library"; + }; + }; + tasks = { + restartIfChanged = true; + description = "Run a tasks script which keeps a lot of things organized"; + wantedBy = [ "default.target" ]; + path = [ + pkgs.nix + jawzTasks + ]; + serviceConfig = { + Restart = "on-failure"; + RestartSec = 30; + ExecStart = "${jawzTasks}/bin/tasks"; + }; + }; + qbit_manage = let qbit_dir = "/home/jawz/Development/Git/qbit_manage"; in { + restartIfChanged = true; + description = "Tidy up my torrents"; + wantedBy = [ "default.target" ]; + path = [ + pkgs.python3 + pkgs.pipenv + ]; + serviceConfig = { + Restart = "on-failure"; + RestartSec = 30; + ExecStart = "${qbit_dir}/venv/bin/python3 ${qbit_dir}/qbit_manage.py -r -c ${qbit_dir}/config.yml"; }; }; - # manage-library = { - # enable = true; - # restartIfChanged = true; - # description = "Run the manage library bash script"; - # wantedBy = [ "default.target" ]; - # path = [ - # pkgs.bash - # pkgs.nix - # jawzManageLibrary - # ]; - # serviceConfig = { - # Restart = "on-failure"; - # RestartSec = 30; - # ExecStart = "${jawzManageLibrary}/bin/manage-library"; - # }; - # }; - # tasks = { - # restartIfChanged = true; - # description = "Run a tasks script which keeps a lot of things organized"; - # wantedBy = [ "default.target" ]; - # path = [ - # pkgs.bash - # pkgs.nix - # jawzTasks - # ]; - # serviceConfig = { - # Restart = "on-failure"; - # RestartSec = 30; - # ExecStart = "${jawzTasks}/bin/tasks"; - # }; - # }; - # qbit_manage = let qbit_dir = "/home/jawz/Development/Git/qbit_manage"; in { - # restartIfChanged = true; - # description = "Tidy up my torrents"; - # wantedBy = [ "default.target" ]; - # path = [ - # pkgs.python3 - # pkgs.pipenv - # ]; - # serviceConfig = { - # Restart = "on-failure"; - # RestartSec = 30; - # ExecStart = "${qbit_dir}/.venv/bin/python3 ${qbit_dir}/qbit_manage.py -r -c ${qbit_dir}/config.yml"; - # }; - # }; }; timers = let streamTimer = { @@ -889,32 +887,33 @@ in [ myPkg ]; in { "stream@johnneal911" = streamTimer // { }; "stream@uk2011boy" = streamTimer // { }; + "stream@tommy9x6" = streamTimer // { }; + "stream@brocollirob" = streamTimer // { }; "stream@tomayto\\x20picarto" = streamTimer // { }; - "stream@retrohurricaneLIVE\\x20picarto" = streamTimer // { }; - # tasks = { - # enable = true; - # description = "Run a tasks script which keeps a lot of things organized"; - # wantedBy = [ "timers.target" ]; - # timerConfig = { - # OnCalendar = "*:0/10"; - # }; - # }; - # manage-library = { - # enable = true; - # description = "Run the manage library bash script"; - # wantedBy = [ "timers.target" ]; - # timerConfig = { - # OnCalendar = "00:30"; - # }; - # }; - # qbit_manage = { - # enable = true; - # description = "Tidy up my torrents"; - # wantedBy = [ "timers.target" ]; - # timerConfig = { - # OnCalendar = "*:0/10"; - # }; - # }; + tasks = { + enable = true; + description = "Run a tasks script which keeps a lot of things organized"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "*:0/10"; + }; + }; + manage-library = { + enable = true; + description = "Run the manage library bash script"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "00:30"; + }; + }; + qbit_manage = { + enable = true; + description = "Tidy up my torrents"; + wantedBy = [ "timers.target" ]; + timerConfig = { + OnCalendar = "*:0/10"; + }; + }; }; }; }; diff --git a/miniserver/servers.nix b/miniserver/servers.nix index e6011e7..c621cc7 100644 --- a/miniserver/servers.nix +++ b/miniserver/servers.nix @@ -94,7 +94,7 @@ in { # bazarr = base // { }; jellyfin = base // { }; # prowlarr.enable = true; - # jira.enable = true; + jira.enable = true; microbin = { enable = true; settings = {