From 262f6779b1c77e44fde492213bfd8626136973eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Fri, 27 Mar 2026 14:11:05 -0600 Subject: [PATCH] wip: fix(copypary): zotero webdav --- flake.lock | 6 +- hosts/deertopia/configuration.nix | 2 +- modules/home/prism-launcher.nix | 18 ++++++ modules/home/users/msyds/emacs/bookmarks | 11 ++++ .../users/msyds/emacs/lisp/syd/clojure.el | 3 +- .../users/msyds/emacs/transient/history.el | 1 + modules/nixos/deertopia/copyparty.nix | 12 ++-- modules/nixos/deertopia/copyparty/vault.nix | 6 ++ modules/nixos/deertopia/copyparty/webdav.nix | 57 +++++++++++++++++++ users/msyds/default.nix | 1 + 10 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 modules/home/prism-launcher.nix create mode 100644 modules/home/users/msyds/emacs/bookmarks create mode 100644 modules/home/users/msyds/emacs/transient/history.el create mode 100644 modules/nixos/deertopia/copyparty/webdav.nix diff --git a/flake.lock b/flake.lock index a39729c..f638979 100644 --- a/flake.lock +++ b/flake.lock @@ -76,11 +76,11 @@ ] }, "locked": { - "lastModified": 1762095388, - "narHash": "sha256-7Q8LtcvKWHbP8znARRTOY2tpU5WoV6FHwp5TZJOI8Us=", + "lastModified": 1774411715, + "narHash": "sha256-mceIHtVMXpLAfr1W0VK9ceTBX5yKu4gGWpVbThWTsAA=", "owner": "9001", "repo": "copyparty", - "rev": "ac085b8149ff50e03d260128596dd130ed1c7cae", + "rev": "26e663d111e39ca96c63702ad27a05b6736607cf", "type": "github" }, "original": { diff --git a/hosts/deertopia/configuration.nix b/hosts/deertopia/configuration.nix index 13103ef..b72f823 100644 --- a/hosts/deertopia/configuration.nix +++ b/hosts/deertopia/configuration.nix @@ -58,7 +58,7 @@ lldap.pam.enable = true; nginx.enable = true; slskd.enable = true; - webdav.enable = true; + # webdav.enable = true; copyparty.enable = true; syncthing.enable = true; cache.enable = true; diff --git a/modules/home/prism-launcher.nix b/modules/home/prism-launcher.nix new file mode 100644 index 0000000..b7f70d0 --- /dev/null +++ b/modules/home/prism-launcher.nix @@ -0,0 +1,18 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.prism-launcher; +in { + options.sydnix.prism-launcher = { + enable = lib.mkEnableOption "Prism Launcher"; + }; + + config = lib.mkIf cfg.enable { + home.packages = [ + pkgs.prismlauncher + ]; + + sydnix.impermanence.directories = [ + ".local/share/PrismLauncher" + ]; + }; +} diff --git a/modules/home/users/msyds/emacs/bookmarks b/modules/home/users/msyds/emacs/bookmarks new file mode 100644 index 0000000..7ad6afd --- /dev/null +++ b/modules/home/users/msyds/emacs/bookmarks @@ -0,0 +1,11 @@ +;;;; Emacs Bookmark Format Version 1;;;; -*- coding: utf-8-emacs; mode: lisp-data -*- +;;; This format is meant to be slightly human-readable; +;;; nevertheless, you probably don't want to edit it. +;;; -*- End Of Bookmark File Format Version Stamp -*- +(("org-capture-last-stored" + (filename . "~/org/daily/2026-03-26.org") + (front-context-string . "* The significan") + (rear-context-string . "le: 2026-03-26\n\n") + (position . 89) + (last-modified 27077 32462 617656 528000)) +) diff --git a/modules/home/users/msyds/emacs/lisp/syd/clojure.el b/modules/home/users/msyds/emacs/lisp/syd/clojure.el index dca409a..2d06a76 100755 --- a/modules/home/users/msyds/emacs/lisp/syd/clojure.el +++ b/modules/home/users/msyds/emacs/lisp/syd/clojure.el @@ -27,7 +27,8 @@ cider-doc-buffer) (defun syd-clojure-eval-region (beg end) (cider-eval-region beg end)) - (syd-handle '(clojure-mode clojurescript-mode cider-repl-mode) + (syd-handle '(clojure-mode clojurescript-mode cider-repl-mode + cider-clojure-interaction-mode) :docs #'cider-doc :eval-region #'syd-clojure-eval-region :load-buffer #'cider-load-buffer) diff --git a/modules/home/users/msyds/emacs/transient/history.el b/modules/home/users/msyds/emacs/transient/history.el new file mode 100644 index 0000000..90b5a84 --- /dev/null +++ b/modules/home/users/msyds/emacs/transient/history.el @@ -0,0 +1 @@ +nil \ No newline at end of file diff --git a/modules/nixos/deertopia/copyparty.nix b/modules/nixos/deertopia/copyparty.nix index 48a8dbd..7216a5b 100644 --- a/modules/nixos/deertopia/copyparty.nix +++ b/modules/nixos/deertopia/copyparty.nix @@ -13,10 +13,14 @@ in { }; }; - imports = [ ./copyparty/vault.nix ]; + imports = [ + ./copyparty/vault.nix + ./copyparty/webdav.nix + ]; config = lib.mkIf cfg.enable { sydnix.deertopia.copyparty.vault.enable = true; + sydnix.deertopia.copyparty.webdav.enable = true; sydnix.impermanence.directories = [ "/var/lib/copyparty" @@ -29,8 +33,8 @@ in { "media" ]; - # HACK: Make files created by copyparty.service initialise with the mode - # 775. + # HACK: Make files created by copyparty.service initialise with + # the mode 775. systemd.services.copyparty.serviceConfig.UMask = lib.mkForce "002"; services.copyparty = { @@ -56,7 +60,7 @@ in { "/Media library" = { path = "/media/library"; # View and upload, but no deleting. - access.rw = "*"; + access.r = "*"; access.rwmd = "@jellyfin-admin"; }; "/Torrents" = { diff --git a/modules/nixos/deertopia/copyparty/vault.nix b/modules/nixos/deertopia/copyparty/vault.nix index 75af5e6..3dd4a49 100644 --- a/modules/nixos/deertopia/copyparty/vault.nix +++ b/modules/nixos/deertopia/copyparty/vault.nix @@ -36,6 +36,12 @@ in { access.A = [ "msyds" ]; access.rwmd = [ "zotero" ]; }; + "/msyds/zotero-root" = { + path = "/vault/msyds/zotero-root"; + flags.daw = true; + access.A = [ "msyds" ]; + access.rwmd = [ "zotero" ]; + }; "/~msyds/public" = { path = "/vault/~msyds/public"; access.A = [ "msyds" ]; diff --git a/modules/nixos/deertopia/copyparty/webdav.nix b/modules/nixos/deertopia/copyparty/webdav.nix new file mode 100644 index 0000000..50e4bbe --- /dev/null +++ b/modules/nixos/deertopia/copyparty/webdav.nix @@ -0,0 +1,57 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.sydnix.deertopia.copyparty.webdav; +in { + options.sydnix.deertopia.copyparty.webdav = { + enable = lib.mkEnableOption "WebDAV via copyparty"; + port = lib.mkOption { + type = lib.types.port; + description = '' + Port on which Copyparty shall listen for WebDAV traffic. + ''; + default = 3924; + }; + }; + + # https://github.com/9001/copyparty/issues/1142 + config = lib.mkIf cfg.enable { + services.copyparty.settings = { + rproxy = -1; + xff-src = "lan"; + daw = true; + dav-auth = true; + ihead = "*"; + ohead = "*"; + dav-port = cfg.port; + }; + + services.authelia.instances.deertopia.settings = + lib.mkIf config.sydnix.deertopia.authelia.enable { + access_control.rules = lib.mkBefore [ + { + domain = "dav.deertopia.net"; + policy = "bypass"; + methods = [ "OPTIONS" "PROPFIND" ]; + } + ]; + }; + + sydnix.deertopia.nginx.vhosts."dav" = { + directory = null; + vhost = { + forceSSL = true; + enableACME = true; + extraConfig = '' + include ${../authelia/authelia-location.conf}; + # Increase limit of upload sizes. + client_max_body_size 20G; + ''; + locations."/".extraConfig = '' + include ${../authelia/authelia-authrequest.conf}; + include ${../authelia/proxy.conf}; + proxy_pass http://localhost:${builtins.toString cfg.port}; + ''; + }; + }; + }; +} diff --git a/users/msyds/default.nix b/users/msyds/default.nix index 6e8b7ee..c3d3a59 100644 --- a/users/msyds/default.nix +++ b/users/msyds/default.nix @@ -46,6 +46,7 @@ kdeconnect.enable = true; qalculate.enable = true; toki-pona.enable = true; + prism-launcher.enable = true; sops = { enable = true; keyFile = "/persist/private-keys/age/crumb";