From 654110c162271b0c52679189c316906a314adb36 Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Sat, 8 Nov 2025 11:42:34 +0100 Subject: [PATCH 1/2] nixos/pingvin-share: drop The `pingvin-share.backend` package is broken [1] and upstream was archived in June 2025 [2]. [1] https://hydra.nixos.org/build/311660333/nixlog/1 [2] https://github.com/stonith404/pingvin-share --- nixos/doc/manual/redirects.json | 9 - .../manual/release-notes/rl-2411.section.md | 2 +- .../manual/release-notes/rl-2605.section.md | 2 + nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 3 + .../services/web-apps/pingvin-share.md | 43 ---- .../services/web-apps/pingvin-share.nix | 226 ------------------ nixos/tests/all-tests.nix | 1 - nixos/tests/pingvin-share.nix | 24 -- 9 files changed, 6 insertions(+), 305 deletions(-) delete mode 100644 nixos/modules/services/web-apps/pingvin-share.md delete mode 100644 nixos/modules/services/web-apps/pingvin-share.nix delete mode 100644 nixos/tests/pingvin-share.nix diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json index 5c4a6e4bc28c..4385b88e7cea 100644 --- a/nixos/doc/manual/redirects.json +++ b/nixos/doc/manual/redirects.json @@ -674,15 +674,6 @@ "module-services-plausible-basic-usage": [ "index.html#module-services-plausible-basic-usage" ], - "module-services-pingvin-share": [ - "index.html#module-services-pingvin-share" - ], - "module-services-pingvin-share-basic-usage": [ - "index.html#module-services-pingvin-share-basic-usage" - ], - "module-services-pingvin-share-reverse-proxy-configuration": [ - "index.html#module-services-pingvin-share-reverse-proxy-configuration" - ], "module-services-pict-rs": [ "index.html#module-services-pict-rs" ], diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 76b414a871ca..28cc21b77b4d 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -163,7 +163,7 @@ - [wg-access-server](https://github.com/freifunkMUC/wg-access-server/), an all-in-one WireGuard VPN solution with a WebUI for connecting devices. Available as [services.wg-access-server](#opt-services.wg-access-server.enable). -- [Pingvin Share](https://github.com/stonith404/pingvin-share), a self-hosted file sharing platform and an alternative for WeTransfer. Available as [services.pingvin-share](#opt-services.pingvin-share.enable). +- [Pingvin Share](https://github.com/stonith404/pingvin-share), a self-hosted file sharing platform and an alternative for WeTransfer. Available as `services.pingvin-share`. - [Envision](https://gitlab.com/gabmus/envision), a UI for building, configuring and running Monado, the open source OpenXR runtime. Available as [programs.envision](#opt-programs.envision.enable). diff --git a/nixos/doc/manual/release-notes/rl-2605.section.md b/nixos/doc/manual/release-notes/rl-2605.section.md index 9f8cd65c86fc..f768465abcba 100644 --- a/nixos/doc/manual/release-notes/rl-2605.section.md +++ b/nixos/doc/manual/release-notes/rl-2605.section.md @@ -45,6 +45,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh - The Bash implementation of the `nixos-rebuild` program is removed. All switchable systems now use the Python rewrite. Any prior usage of `system.rebuild.enableNg` must now be removed. If you have any outstanding issues with the new implementation, please open an issue on GitHub. +- `services.pingvin-share` has been removed as the `pingvin-share.backend` package was broken and the project was archived upstream. + ## Other Notable Changes {#sec-release-26.05-notable-changes} diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 2bfca447e011..299423293893 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1705,7 +1705,6 @@ ./services/web-apps/phylactery.nix ./services/web-apps/pict-rs.nix ./services/web-apps/pihole-web.nix - ./services/web-apps/pingvin-share.nix ./services/web-apps/pixelfed.nix ./services/web-apps/plantuml-server.nix ./services/web-apps/plausible.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index d42c7fbf1d52..704dadd78623 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -255,6 +255,9 @@ in The Javascript version of Parsoid configured through this module does not work with modern MediaWiki versions, and has been deprecated by upstream, so it has been removed. MediaWiki comes with a new PHP-based parser built-in, so there is no need for this module. '') + (mkRemovedOptionModule [ "services" "pingvin-share" ] '' + The `pingvin-share.backend` package was broken and the project was archived upstream, so it was removed from nixpkgs. + '') (mkRemovedOptionModule [ "services" "polipo" ] '' The polipo project is unmaintained and archived upstream. '') diff --git a/nixos/modules/services/web-apps/pingvin-share.md b/nixos/modules/services/web-apps/pingvin-share.md deleted file mode 100644 index 2fa45c8bfaba..000000000000 --- a/nixos/modules/services/web-apps/pingvin-share.md +++ /dev/null @@ -1,43 +0,0 @@ -# Pingvin Share {#module-services-pingvin-share} - -A self-hosted file sharing platform and an alternative for WeTransfer. - -## Configuration {#module-services-pingvin-share-basic-usage} - -By default, the module will execute Pingvin Share backend and frontend on the ports 8080 and 3000. - -I will run two systemd services named `pingvin-share-backend` and `pingvin-share-frontend` in the specified data directory. - -Here is a basic configuration: - -```nix -{ - services-pingvin-share = { - enable = true; - - openFirewall = true; - - backend.port = 9010; - frontend.port = 9011; - }; -} -``` - -## Reverse proxy configuration {#module-services-pingvin-share-reverse-proxy-configuration} - -The preferred method to run this service is behind a reverse proxy not to expose an open port. This, you can configure Nginx such like this: - -```nix -{ - services-pingvin-share = { - enable = true; - - hostname = "pingvin-share.domain.tld"; - https = true; - - nginx.enable = true; - }; -} -``` - -Furthermore, you can increase the maximal size of an uploaded file with the option [services.nginx.clientMaxBodySize](#opt-services.nginx.clientMaxBodySize). diff --git a/nixos/modules/services/web-apps/pingvin-share.nix b/nixos/modules/services/web-apps/pingvin-share.nix deleted file mode 100644 index 6b2ddf4e9c02..000000000000 --- a/nixos/modules/services/web-apps/pingvin-share.nix +++ /dev/null @@ -1,226 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -let - cfg = config.services.pingvin-share; - inherit (lib) - mkOption - mkEnableOption - mkIf - mkPackageOption - types - ; -in - -{ - options = { - services.pingvin-share = { - enable = mkEnableOption "Pingvin Share, a self-hosted file sharing platform"; - - user = mkOption { - type = types.str; - default = "pingvin"; - description = '' - User account under which Pingvin Share runs. - ''; - }; - - group = mkOption { - type = types.str; - default = "pingvin"; - description = '' - Group under which Pingvin Share runs. - ''; - }; - - openFirewall = mkOption { - type = types.bool; - default = false; - description = '' - Whether to open the firewall for the port in {option}`services.pingvin-share.frontend.port`. - ''; - }; - - dataDir = mkOption { - type = types.path; - default = "/var/lib/pingvin-share"; - example = "/var/lib/pingvin"; - description = '' - The path to the data directory in which Pingvin Share will store its data. - ''; - }; - - hostname = mkOption { - type = types.str; - default = "localhost:${toString cfg.backend.port}"; - defaultText = lib.literalExpression "localhost:\${options.services.pingvin-share.backend.port}"; - example = "pingvin-share.domain.tdl"; - description = '' - The domain name of your instance. If null, the redirections will be made to localhost. - ''; - }; - - https = mkOption { - type = types.bool; - default = false; - example = true; - description = '' - Whether to enable HTTPS for the domain. - ''; - }; - - backend = { - package = mkPackageOption pkgs [ - "pingvin-share" - "backend" - ] { }; - - port = mkOption { - type = types.port; - default = 8080; - example = 9000; - description = '' - The port that the backend service of Pingvin Share will listen to. - ''; - }; - }; - - frontend = { - package = mkPackageOption pkgs [ - "pingvin-share" - "frontend" - ] { }; - - port = mkOption { - type = types.port; - default = 3000; - example = 8000; - description = '' - The port that the frontend service of Pingvin Share will listen to. - ''; - }; - }; - - nginx = { - enable = mkEnableOption "a Nginx reverse proxy for Pingvin Share."; - }; - }; - }; - - config = mkIf cfg.enable { - - users.groups = mkIf (cfg.group == "pingvin") { pingvin = { }; }; - - users.users = mkIf (cfg.user == "pingvin") { - pingvin = { - group = cfg.group; - description = "Pingvin Share daemon user"; - isSystemUser = true; - }; - }; - - networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.frontend.port ]; - - systemd.services.pingvin-share-backend = { - description = "Backend service of Pingvin Share, a self-hosted file sharing platform."; - - wantedBy = [ - "multi-user.target" - "pingvin-share-frontend.service" - ]; - before = [ "pingvin-share-frontend.service" ]; - after = [ - "network.target" - "network-online.target" - ]; - wants = [ "network-online.target" ]; - - environment = { - PRISMA_SCHEMA_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/schema-engine"; - PRISMA_QUERY_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/query-engine"; - PRISMA_QUERY_ENGINE_LIBRARY = "${pkgs.prisma-engines}/lib/libquery_engine.node"; - PRISMA_INTROSPECTION_ENGINE_BINARY = "${pkgs.prisma-engines}/bin/introspection-engine"; - PRISMA_FMT_BINARY = "${pkgs.prisma-engines}/bin/prisma-fmt"; - BACKEND_PORT = toString cfg.backend.port; - DATABASE_URL = "file:${cfg.dataDir}/pingvin-share.db?connection_limit=1"; - DATA_DIRECTORY = cfg.dataDir; - }; - - path = with pkgs; [ - cfg.backend.package - openssl - prisma-engines - ]; - - serviceConfig = { - User = cfg.user; - Group = cfg.group; - Type = "simple"; - Restart = "on-failure"; - ExecStartPre = [ - "${cfg.backend.package}/node_modules/.bin/prisma migrate deploy" - "${cfg.backend.package}/node_modules/.bin/prisma db seed" - ]; - ExecStart = "${cfg.backend.package}/node_modules/.bin/ts-node dist/src/main"; - StateDirectory = mkIf (cfg.dataDir == "/var/lib/pingvin-share") "pingvin-share"; - WorkingDirectory = cfg.backend.package; - }; - }; - - systemd.services.pingvin-share-frontend = { - description = "Frontend service of Pingvin Share, a self-hosted file sharing platform."; - - wantedBy = [ "multi-user.target" ]; - wants = [ - "network-online.target" - "pingvin-share-backend.service" - ]; - after = [ - "network-online.target" - "pingvin-share-backend.service" - ]; - - environment = { - PORT = toString cfg.frontend.port; - API_URL = "${if cfg.https then "https" else "http"}://${cfg.hostname}"; - }; - path = [ cfg.frontend.package ]; - - serviceConfig = { - User = cfg.user; - Group = cfg.group; - Type = "simple"; - Restart = "on-failure"; - ExecStart = "${cfg.frontend.package}/node_modules/.bin/next start"; - StateDirectory = mkIf (cfg.dataDir == "/var/lib/pingvin-share") "pingvin-share"; - WorkingDirectory = cfg.frontend.package; - }; - }; - - services.nginx = mkIf cfg.nginx.enable { - enable = lib.mkDefault true; - virtualHosts."${cfg.hostname}" = { - enableACME = cfg.https; - forceSSL = cfg.https; - - locations."/" = { - proxyPass = "http://localhost:${toString cfg.frontend.port}"; - recommendedProxySettings = true; - }; - locations."/api" = { - proxyPass = "http://localhost:${toString cfg.backend.port}"; - recommendedProxySettings = true; - }; - }; - }; - }; - - meta = { - maintainers = with lib.maintainers; [ ratcornu ]; - doc = ./pingvin-share.md; - }; -} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index e4f0b3f121f9..ba11b61b325c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1227,7 +1227,6 @@ in phylactery = runTest ./web-apps/phylactery.nix; pict-rs = runTest ./pict-rs.nix; pihole-ftl = import ./pihole-ftl { inherit runTest; }; - pingvin-share = runTest ./pingvin-share.nix; pinnwand = runTest ./pinnwand.nix; pixelfed = import ./web-apps/pixelfed { inherit runTestOn; }; plantuml-server = runTest ./plantuml-server.nix; diff --git a/nixos/tests/pingvin-share.nix b/nixos/tests/pingvin-share.nix deleted file mode 100644 index 5cb5dcd2a3fc..000000000000 --- a/nixos/tests/pingvin-share.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ lib, ... }: -{ - name = "pingvin-share"; - meta.maintainers = with lib.maintainers; [ ratcornu ]; - - nodes.machine = - { ... }: - { - services.pingvin-share = { - enable = true; - - backend.port = 9010; - frontend.port = 9011; - }; - }; - - testScript = '' - machine.wait_for_unit("pingvin-share-frontend.service") - machine.wait_for_open_port(9010) - machine.wait_for_open_port(9011) - machine.succeed("curl --fail http://127.0.0.1:9010/api/configs") - machine.succeed("curl --fail http://127.0.0.1:9011/") - ''; -} From 0c6dc88d490f8ee6c9f66c0199763252e4d22fde Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Sat, 8 Nov 2025 11:50:11 +0100 Subject: [PATCH 2/2] pingvin-share: drop The `pingvin-share.backend` package is broken [1] and upstream was archived in June 2025 [2]. [1] https://hydra.nixos.org/build/311660333/nixlog/1 [2] https://github.com/stonith404/pingvin-share --- .../web-apps/pingvin-share/backend.nix | 50 ------------------- .../web-apps/pingvin-share/default.nix | 21 -------- .../web-apps/pingvin-share/frontend.nix | 42 ---------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 5 files changed, 1 insertion(+), 115 deletions(-) delete mode 100644 pkgs/servers/web-apps/pingvin-share/backend.nix delete mode 100644 pkgs/servers/web-apps/pingvin-share/default.nix delete mode 100644 pkgs/servers/web-apps/pingvin-share/frontend.nix diff --git a/pkgs/servers/web-apps/pingvin-share/backend.nix b/pkgs/servers/web-apps/pingvin-share/backend.nix deleted file mode 100644 index fc9ea5c55c17..000000000000 --- a/pkgs/servers/web-apps/pingvin-share/backend.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - lib, - buildNpmPackage, - vips, - pkg-config, - prisma, - src, - version, - nixosTests, -}: - -buildNpmPackage { - pname = "pingvin-share-backend"; - inherit version; - - src = "${src}/backend"; - - npmInstallFlags = [ "--build-from-source" ]; - installPhase = '' - cp -r . $out - ln -s $out/node_modules/.bin $out/bin - ''; - - preBuild = '' - prisma generate - ''; - - buildInputs = [ vips ]; - nativeBuildInputs = [ - pkg-config - prisma - ]; - - npmDepsHash = "sha256-bc2suSGa7YTonIhUxEtNzdIUeUBubwJ6upW2tydVCnU="; - makeCacheWritable = true; - npmFlags = [ "--legacy-peer-deps" ]; - - passthru.tests = { - pingvin-share = nixosTests.pingvin-share; - }; - - meta = { - description = "Backend of pingvin-share, a self-hosted file sharing platform"; - homepage = "https://github.com/stonith404/pingvin-share"; - downloadPage = "https://github.com/stonith404/pingvin-share/releases"; - changelog = "https://github.com/stonith404/pingvin-share/releases/tag/v${version}"; - license = lib.licenses.bsd2; - maintainers = with lib.maintainers; [ ratcornu ]; - }; -} diff --git a/pkgs/servers/web-apps/pingvin-share/default.nix b/pkgs/servers/web-apps/pingvin-share/default.nix deleted file mode 100644 index 6a607d957902..000000000000 --- a/pkgs/servers/web-apps/pingvin-share/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - lib, - callPackage, - fetchFromGitHub, -}: - -let - version = "1.13.0"; - src = fetchFromGitHub { - owner = "stonith404"; - repo = "pingvin-share"; - rev = "v${version}"; - hash = "sha256-FWc0Yo2Phh8ee5izHj0ol1pwLSVJgIqyeaJo1o4drsM="; - }; -in - -lib.recurseIntoAttrs { - backend = callPackage ./backend.nix { inherit src version; }; - - frontend = callPackage ./frontend.nix { inherit src version; }; -} diff --git a/pkgs/servers/web-apps/pingvin-share/frontend.nix b/pkgs/servers/web-apps/pingvin-share/frontend.nix deleted file mode 100644 index 15a2e7764de9..000000000000 --- a/pkgs/servers/web-apps/pingvin-share/frontend.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - lib, - buildNpmPackage, - vips, - pkg-config, - src, - version, - nixosTests, -}: - -buildNpmPackage { - pname = "pingvin-share-frontend"; - inherit version; - - src = "${src}/frontend"; - - npmInstallFlags = [ "--build-from-source" ]; - installPhase = '' - cp -r . $out - ln -s $out/node_modules/.bin $out/bin - ''; - - buildInputs = [ vips ]; - nativeBuildInputs = [ pkg-config ]; - - npmDepsHash = "sha256-ykq98Bd67TY/t8JYraii7XnCIoSLk454decdHpQGorw="; - makeCacheWritable = true; - npmFlags = [ "--legacy-peer-deps" ]; - - passthru.tests = { - pingvin-share = nixosTests.pingvin-share; - }; - - meta = { - description = "Frontend of pingvin-share, a self-hosted file sharing platform"; - homepage = "https://github.com/stonith404/pingvin-share"; - downloadPage = "https://github.com/stonith404/pingvin-share/releases"; - changelog = "https://github.com/stonith404/pingvin-share/releases/tag/v${version}"; - license = lib.licenses.bsd2; - maintainers = with lib.maintainers; [ ratcornu ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 55ae9d9c4cbc..05695f66d677 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1288,6 +1288,7 @@ mapAliases { pidgin-xmpp-receipts = throw "'pidgin-xmpp-receipts' has been renamed to/replaced by 'pidginPackages.pidgin-xmpp-receipts'"; # Converted to throw 2025-10-27 pilipalax = throw "'pilipalax' has been removed from nixpkgs due to it not being maintained"; # Added 2025-07-25 pinentry = throw "'pinentry' has been removed. Pick an appropriate variant like 'pinentry-curses' or 'pinentry-gnome3'"; # Converted to throw 2025-10-26 + pingvin-share = throw "'pingvin-share' has been removed as it was broken and archived upstream"; # Added 2025-11-08 piper-train = throw "piper-train is now part of the piper package using the `withTrain` override"; # Added 2025-09-03 plasma-applet-volumewin7mixer = throw "'plasma-applet-volumewin7mixer' has been removed, as it is only compatible with Plasma 5, which is EOL"; # Added 2025-08-20 plasma-pass = throw "'plasma-pass' has been removed, as it is only compatible with Plasma 5, which is EOL"; # Added 2025-08-20 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8e1e26fedd55..1566cd682797 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8129,8 +8129,6 @@ with pkgs; physfs ; - pingvin-share = callPackage ../servers/web-apps/pingvin-share { }; - pipelight = callPackage ../tools/misc/pipelight { stdenv = stdenv_32bit; wine-staging = pkgsi686Linux.wine-staging;