For advanced Nix users who want deeper integration with the Nix ecosystem.
Basic Installation
nix profile install github:srid/emanote
Using as flake-parts
module
See Using as flake-parts
module for detailed documentation on using Emanote’s flake-parts module.
Using Emanote as a Home Manager service
Home Manager is a Nix-based personal configuration manager. If you use Home Manager, then Emanote has a module that can be imported into your configuration.
Merge or import this config into your ~/.config/nixpkgs/home.nix
:
{ config, ... }:
let
emanote = import (builtins.fetchTarball "https://github.com/srid/emanote/archive/master.tar.gz");
in {
imports = [ emanote.homeManagerModule ];
services.emanote = {
enable = true;
# host = "127.0.0.1"; # default listen address is 127.0.0.1
# port = 7000; # default http port is 7000
notes = [
"/home/user/notes" # add as many layers as you like
];
package = emanote.packages.${builtins.currentSystem}.default;
};
}
Re-apply your home-manager configuration the usual way (e.g. home-manager switch
).
You will then have an emanote
command in your profile, and a systemd user service running a live-preview of your notes.
$ home-manager switch
...
$ systemctl --user status emanote.service
● emanote.service - Emanote web server
Loaded: loaded (/nix/store/i1af5hdydwcf7y0r55n7fd67dnw5habd-home-manager-files/.config/systemd/user/emanote.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-11-02 17:17:04 AWST; 17h ago
Main PID: 1705303 (emanote)
Tasks: 26 (limit: 38220)
Memory: 38.3M
CPU: 2.884s
CGroup: /user.slice/user-1000.slice/[email protected]/app.slice/emanote.service
└─1705303 /nix/store/9hj2cwk1jakfws0d1hpwa221kcni3j45-emanote-0.3.12.1/bin/emanote --layers /nix/store/hr7wp1xvqn48b8gy16sdq6k2csrvr8c1-emanote-config;/home/user/notes