nix | ||
.gitignore | ||
config.js | ||
default.nix | ||
deuxfleurs.nix | ||
docker-compose.yml | ||
docker.nix | ||
package-lock.json | ||
README.md |
CryptPad for NixOS with Deuxfleurs flavour
Building
The default.nix
file follows the nixpkgs callPackage
convention for fetching dependencies, so you need to either:
- Run
nix-build --expr '{ ... }@args: (import <nixpkgs> {}).callPackage ./default.nix args'
- Do the
callPackage from a higher-level directory importing your package
Docker
The docker.nix
derives into a Docker image you can load simply by running:
$ docker load -i $(nix-build docker.nix)
You can then test the built Docker image using the provided docker-compose.yml
and config.js
files, which are
configured to render the instance accessible at http://localhost:3000
with data stored into the _data
folder.
Deuxfleurs flavour
The deuxfleurs.nix
file derives into two derivations: The CryptPad derivation itself and a Docker image,
which can be choose by passing the -A [name]
flags to nix-build
For example, to build and load the Deuxfleurs-flavoured CryptPad Docker image, you run:
$ docker load -i $(nix-build deuxfleurs.nix -A docker)
OnlyOffice integration
Apart for deuxfleurs.nix
, both default.nix
and docker.nix
files build CryptPad with a copy of OnlyOffice pre-built and
used by CryptPad, which can result to large Docker image (~2.6GiB)
This behaviour is configurable by passing the --arg withOnlyOffice false
flag to nix-build
when building them.
Updating the Deuxfleurs pinned nixpkgs
The pinned sources files are generated with the niv tool.
To update the pinned nixpkgs, you simply run the following command:
$ niv update
To modify the pinned nixpkgs, you can use the niv modify
command, for example, to move to nixpkgs-unstable:
$ niv modify nixpkgs -b nixos-unstable
Quirks
- The CryptPad
package-lock.json
is included here because the upstream-provided one appeared to be desync'ed, so a manual lockfile generation was needed