aboutsummaryrefslogtreecommitdiff
path: root/flakes/peertube/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flakes/peertube/flake.nix')
-rw-r--r--flakes/peertube/flake.nix56
1 files changed, 11 insertions, 45 deletions
diff --git a/flakes/peertube/flake.nix b/flakes/peertube/flake.nix
index 2a594c0..9a5c557 100644
--- a/flakes/peertube/flake.nix
+++ b/flakes/peertube/flake.nix
@@ -14,7 +14,6 @@
14 14
15 outputs = { self, myuids, nixpkgs, peertube, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system: 15 outputs = { self, myuids, nixpkgs, peertube, flake-utils }: flake-utils.lib.eachSystem ["x86_64-linux"] (system:
16 let 16 let
17 version = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.peertube.locked.rev;
18 pkgs = import nixpkgs { inherit system; overlays = [ 17 pkgs = import nixpkgs { inherit system; overlays = [
19 (self: super: { nodejs = self.nodejs-12_x; }) 18 (self: super: { nodejs = self.nodejs-12_x; })
20 ]; }; 19 ]; };
@@ -22,7 +21,7 @@
22 21
23 patchedSource = stdenv.mkDerivation { 22 patchedSource = stdenv.mkDerivation {
24 pname = "peertube"; 23 pname = "peertube";
25 inherit version; 24 version = peertube.rev;
26 src = peertube; 25 src = peertube;
27 phases = [ "unpackPhase" "patchPhase" "installPhase" ]; 26 phases = [ "unpackPhase" "patchPhase" "installPhase" ];
28 patches = [ ./fix_yarn_lock.patch ]; 27 patches = [ ./fix_yarn_lock.patch ];
@@ -71,55 +70,16 @@
71 }); 70 });
72 71
73 server = callPackage ./server.nix { 72 server = callPackage ./server.nix {
74 inherit version yarnModulesConfig mkYarnModules'; 73 inherit yarnModulesConfig mkYarnModules';
75 sources = patchedSource; 74 sources = patchedSource;
76 }; 75 };
77 client = callPackage ./client.nix { 76 client = callPackage ./client.nix {
78 inherit server version yarnModulesConfig mkYarnModules'; 77 inherit server yarnModulesConfig mkYarnModules';
79 sources = patchedSource; 78 sources = patchedSource;
80 }; 79 };
81 80
82 in rec { 81 in rec {
83 packages.peertube = stdenv.mkDerivation rec { 82 packages.peertube = callPackage ./. { inherit server client; src = patchedSource; };
84 inherit version;
85 pname = "peertube";
86 src = patchedSource;
87 buildPhase = ''
88 ln -s ${server.modules}/node_modules .
89 rm -rf dist && cp -a ${server.dist}/dist dist
90 rm -rf client/dist && cp -a ${client.dist}/dist client/
91 '';
92 installPhase = ''
93 mkdir $out
94 cp -a * $out
95 ln -s /tmp $out/.cache
96 '';
97
98 meta = {
99 description = "A free software to take back control of your videos";
100
101 longDescription = ''
102 PeerTube aspires to be a decentralized and free/libre alternative to video
103 broadcasting services.
104 PeerTube is not meant to become a huge platform that would centralize
105 videos from all around the world. Rather, it is a network of
106 inter-connected small videos hosters.
107 Anyone with a modicum of technical skills can host a PeerTube server, aka
108 an instance. Each instance hosts its users and their videos. In this way,
109 every instance is created, moderated and maintained independently by
110 various administrators.
111 You can still watch from your account videos hosted by other instances
112 though if the administrator of your instance had previously connected it
113 with other instances.
114 '';
115
116 license = stdenv.lib.licenses.agpl3Plus;
117
118 homepage = "https://joinpeertube.org/";
119
120 platforms = stdenv.lib.platforms.unix;
121 };
122 };
123 defaultPackage = packages.peertube; 83 defaultPackage = packages.peertube;
124 legacyPackages.peertube = packages.peertube; 84 legacyPackages.peertube = packages.peertube;
125 checks = { 85 checks = {
@@ -196,7 +156,13 @@
196 }; 156 };
197 }; 157 };
198 } 158 }
199 ) // { 159 ) // rec {
160 overlays = {
161 peertube = final: prev: {
162 peertube = self.defaultPackage."${final.system}";
163 };
164 };
165 overlay = overlays.peertube;
200 nixosModule = { lib, pkgs, config, ... }: 166 nixosModule = { lib, pkgs, config, ... }:
201 let 167 let
202 name = "peertube"; 168 name = "peertube";