Simplify the build

This commit is contained in:
Quentin 2022-05-06 10:49:28 +02:00
parent 653e45f192
commit 99a4f51166
Signed by: quentin
GPG key ID: E9602264D639FF68
7 changed files with 4 additions and 123 deletions

View file

@ -1,16 +1,2 @@
Currently there is now way to cleanly package Bower on Nix.
So we have to manually package cryptpad.
To update, you have to:
```bash
nix-shell
cd cryptpad
git pull
git checkout <tag>
bower update
npm install
cd ..
nix-build
nix-build docker.nix
```
docker load < $(nix-build docker.nix)
docker push superboum/cryptpad:???

View file

@ -5,15 +5,4 @@
url ="https://github.com/NixOS/nixpkgs/archive/2f06b87f64bc06229e05045853e0876666e1b023.tar.gz";
sha256 = "sha256:1d7zg96xw4qsqh7c89pgha9wkq3rbi9as3k3d88jlxy2z0ns0cy2";
};
cryptpadSrc = builtins.fetchGit {
url = "https://github.com/xwiki-labs/cryptpad";
ref = "refs/tags/4.14.1";
rev = "5979aafdee90aab232658374b11aca8331fd0421";
};
bower2nixSrc = builtins.fetchGit {
url = "";
ref = "";
rev = "";
}
nodejs = "nodejs-slim-16_x";
}

@ -1 +0,0 @@
Subproject commit 5979aafdee90aab232658374b11aca8331fd0421

View file

@ -1,79 +0,0 @@
let
common = import ./common.nix;
pkgs = import common.pkgsSrc {};
nodejs = pkgs.${common.nodejs};
bower2nix =
bowerNix = pkgs.stdenv.mkDerivation {
name = "cryptpad-bower-ifd";
src = common.cryptpadSrc;
buildPhase = ''
${pkgs.nodePackages.bower2nix}/bin/bower2nix bower.json bower.nix
'';
installPhase = ''
cp bower.nix $out
'';
dontFixup = true;
};
bower = pkgs.buildBowerComponents {
name = "cryptpad-bower";
generated = bowerNix;
src = common.cryptpadSrc;
};
npmNix = pkgs.stdenv.mkDerivation {
name = "cryptpad-npm-ifd";
src = common.cryptpadSrc;
buildPhase = ''
${pkgs.nodePackages.node2nix}/bin/node2nix -l package-lock.json
'';
installPhase = ''
mkdir -p $out/
cp *.nix $out/
'';
dontFixup = true;
};
npm = (import npmNix {
inherit pkgs nodejs;
}).nodeDependencies;
in
pkgs.stdenv.mkDerivation {
name = "cryptpad";
src = common.cryptpadSrc;
installPhase = ''
mkdir -p $out/{bin,opt}
# copy the source code
cp -r customize.dist lib server.js www $out/opt/
# mount node_modules
ln -s ${npm}/lib/node_modules $out/opt/node_modules
# mount bower, based on the .bowerrc file at the git repo root
ln -s ${bower} $out/opt/www/bower_components
# cryptpad is bugged with absolute path, this is a workaround to use absolute path as relative path
ln -s / $out/opt/root
# start script
cat > $out/bin/cryptpad <<EOF
#!${pkgs.bash}/bin/bash
cd $out/opt/
export PATH="${npm}/bin:$PATH"
${nodejs}/bin/node server.js
EOF
chmod +x $out/bin/cryptpad
'';
dontFixup = true;
}

View file

@ -1,11 +1,10 @@
let
common = import ./common.nix;
app = import ./default.nix;
pkgs = import common.pkgsSrc {};
in
pkgs.dockerTools.buildImage {
name = "superboum/cryptpad";
config = {
Cmd = [ "${app}/bin/backup-psql" ];
Cmd = [ "${pkgs.cryptpad}/bin/cryptpad" ];
};
}

View file

@ -1,13 +0,0 @@
let
common = import ./common.nix;
pkgs = import common.pkgsSrc {};
nodejs = pkgs.${common.nodejs};
in
pkgs.mkShell {
buildInputs = [
nodejs
pkgs.nodePackages.npm
pkgs.nodePackages.bower
];
}

View file

@ -75,7 +75,7 @@ module.exports = {
* all addresses, including IPv6, set this to '::'.
*
*/
//httpAddress: '::',
httpAddress: '::',
/* httpPort specifies on which port the nodejs server should listen.
* By default it will serve content over port 3000, which is suitable