Simplify the build
This commit is contained in:
parent
653e45f192
commit
99a4f51166
7 changed files with 4 additions and 123 deletions
|
@ -1,16 +1,2 @@
|
||||||
Currently there is now way to cleanly package Bower on Nix.
|
docker load < $(nix-build docker.nix)
|
||||||
So we have to manually package cryptpad.
|
docker push superboum/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
|
|
||||||
```
|
|
||||||
|
|
|
@ -5,15 +5,4 @@
|
||||||
url ="https://github.com/NixOS/nixpkgs/archive/2f06b87f64bc06229e05045853e0876666e1b023.tar.gz";
|
url ="https://github.com/NixOS/nixpkgs/archive/2f06b87f64bc06229e05045853e0876666e1b023.tar.gz";
|
||||||
sha256 = "sha256:1d7zg96xw4qsqh7c89pgha9wkq3rbi9as3k3d88jlxy2z0ns0cy2";
|
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
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
let
|
let
|
||||||
common = import ./common.nix;
|
common = import ./common.nix;
|
||||||
app = import ./default.nix;
|
|
||||||
pkgs = import common.pkgsSrc {};
|
pkgs = import common.pkgsSrc {};
|
||||||
in
|
in
|
||||||
pkgs.dockerTools.buildImage {
|
pkgs.dockerTools.buildImage {
|
||||||
name = "superboum/cryptpad";
|
name = "superboum/cryptpad";
|
||||||
config = {
|
config = {
|
||||||
Cmd = [ "${app}/bin/backup-psql" ];
|
Cmd = [ "${pkgs.cryptpad}/bin/cryptpad" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ module.exports = {
|
||||||
* all addresses, including IPv6, set this to '::'.
|
* all addresses, including IPv6, set this to '::'.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
//httpAddress: '::',
|
httpAddress: '::',
|
||||||
|
|
||||||
/* httpPort specifies on which port the nodejs server should listen.
|
/* httpPort specifies on which port the nodejs server should listen.
|
||||||
* By default it will serve content over port 3000, which is suitable
|
* By default it will serve content over port 3000, which is suitable
|
||||||
|
|
Reference in a new issue