Omnom
Omnom is a webpage bookmarking and snapshotting service.
Try the service in a VM
-
Install Nix
- Arch Linux
-
- Bash
-
$ pacman --sync --refresh --noconfirm curl git jq nix
- Debian
-
- Bash
-
$ apt install --yes curl git jq nix
- Ubuntu
-
- Bash
-
$ apt install --yes curl git jq nix
-
Download a configuration file
# default.nix { ngipkgs ? import (fetchTarball "https://github.com/ngi-nix/ngipkgs/tarball/main") { }, }: ngipkgs.demo-vm ( let port = 8080; in { services.omnom = { enable = true; openFirewall = true; inherit port; settings = { server.address = "0.0.0.0:${toString port}"; }; }; } )
-
Enable binary substituters
- Bash
-
$ export NIX_CONFIG='substituters = https://cache.nixos.org/ https://ngi.cachix.org/ trusted-public-keys = cache.nixos.org-1:6nchdd59x431o0gwypbmraurkbj16zpmqfgspcdshjy= ngi.cachix.org-1:n+cal72roc3qqulxihpv+tw5t42whxmmhpragkrsrow='
-
Build and run a virtual machine
- Arch Linux, Debian Sid/Trixie and Ubuntu 25.04
-
- Bash
-
$ nix-build ./default.nix && ./result
- Ubuntu 24.04
-
- Bash
-
$ rev=$(nix-instantiate --eval --attr sources.nixpkgs.rev https://github.com/ngi-nix/ngipkgs/archive/master.tar.gz | jq --raw-output)
$ nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz --packages nix --run "nix-build ./default.nix && ./result"
- Usage Instructions Deployment for demo purposes
Options
services.omnom
-
The directory where Omnom stores its data files.
- Type:
absolute path
- Default:
"/var/lib/omnom"
-
Whether to enable Omnom, a webpage bookmarking and snapshotting service.
- Type:
boolean
- Default:
false
-
The Omnom service group.
- Type:
non-empty string
- Default:
"omnom"
-
Whether to open ports in the firewall.
- Type:
boolean
- Default:
false
-
The omnom package to use.
- Type:
package
- Default:
pkgs.omnom
-
File containing the password for the SMTP user.
- Type:
null or absolute path
- Default:
null
-
The Omnom service port.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Default:
7331
-
Configuration options for the /etc/omnom/config.yml file.
- Type:
YAML 1.1 value
- Default:
{ }
-
ActivityPub private key. Will be generated, by default.
- Type:
absolute path
- Default:
"${config.services.omnom.dataDir}/private.pem"
-
ActivityPub public key. Will be generated, by default.
- Type:
absolute path
- Default:
"${config.services.omnom.dataDir}/public.pem"
-
Whether to enable debug mode.
- Type:
boolean
- Default:
false
-
Whether to enable restricting user creation.
- Type:
boolean
- Default:
false
-
Number of results per page.
- Type:
signed integer
- Default:
20
-
Database connection URI.
- Type:
string
- Default:
"${config.services.omnom.dataDir}/db.sqlite3"
-
Database type.
- Type:
value "sqlite" (singular enum)
- Default:
"sqlite"
-
Server address.
- Type:
string
- Default:
"127.0.0.1:${config.services.omnom.port}"
-
Whether to limit cookies to a secure channel.
- Type:
boolean
- Default:
true
-
Connection timeout duration in seconds.
- Type:
signed integer
- Default:
5
-
SMTP server hostname.
- Type:
string
- Default:
""
-
SMTP server port address.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Default:
25
-
Send timeout duration in seconds.
- Type:
signed integer
- Default:
10
-
Omnom sender e-mail.
- Type:
string
- Default:
"Omnom
"
-
Whether to enable Whether TLS encryption should be used..
- Type:
boolean
- Default:
false
-
Whether to enable Whether to allow insecure TLS..
- Type:
boolean
- Default:
false
-
Storage type.
- Type:
string
- Default:
"fs"
-
The Omnom service user.
- Type:
non-empty string
- Default:
"omnom"
services.omnom.dataDir
services.omnom.enable
services.omnom.group
services.omnom.openFirewall
services.omnom.package
services.omnom.passwordFile
services.omnom.port
services.omnom.settings
services.omnom.settings.activitypub.privkey
services.omnom.settings.activitypub.pubkey
services.omnom.settings.app.debug
services.omnom.settings.app.disable_signup
services.omnom.settings.app.results_per_page
services.omnom.settings.db.connection
services.omnom.settings.db.type
services.omnom.settings.server.address
services.omnom.settings.server.secure_cookie
services.omnom.settings.smtp.connection_timeout
services.omnom.settings.smtp.host
services.omnom.settings.smtp.port
services.omnom.settings.smtp.send_timeout
services.omnom.settings.smtp.sender
services.omnom.settings.smtp.tls
services.omnom.settings.smtp.tls_allow_insecure
services.omnom.settings.storage.type
services.omnom.user
Examples
base
{ ... }: { services.omnom = { enable = true; openFirewall = true; port = 8080; settings = { app = { disable_signup = true; # restrict CLI user-creation results_per_page = 50; }; smtp = { tls = true; host = "127.0.0.1"; port = 1025; username = "testUser"; }; }; #Contains password for SMIP User passwordFile = "/etc/secrets/omnom.key"; }; }
This project is funded by NLnet through these subgrants:
Related links: