Bookmarking with website snapshots.
Access & share previously visited pages without worrying about modifications or availability.
Check out our wiki for more information.
- Websites are captured as your browser renders it - saves the displayed content of heavily JS driven dynamic pages
- Self hosted
- Web interface with multiuser support
- Flexible filtering - by date, free text search in content, tags, users, domains, URLs, etc..
- Private & public bookmarks
- Multiple snapshots of the same URL
- Documented API
go >= 1.24
- Checkout the repo and execute
go get -u
- Copy
config.yml_sample
toconfig.yml
- Execute
go build && ./omnom listen
orgo run omnom.go listen
in the repo root
Settings can be configured in config.yml
config file - don't forget to restart webapp after updating.
Omnom does not store passwords. Login requires one time login tokens or OAuth.
Login tokens can be requested via email (this requires a valid SMTP configuration in config.yml
) through the web interface or can be generated from command line using the ./omnom create-token [username] login
.
Basic management actions are available using the command line tool (go run omnom.go
or go build; ./omnom
)
create-token create new login/addon token for a user
create-user create new user
generate-api-docs-md Generate Markdown API documentation
help Help about any command
listen start server
set-token set new login/addon token for a user
show-user show user details
completion Generate the autocompletion script for the specified shell
Omnom browser addon is available for
Run Omnom with Docker using the following command:
docker run -p 7331:7331/tcp ghcr.io/asciimoo/omnom:master
The container exposes port 7331. Map it to your host port:
-p <host_port>:7331/tcp
Persist your data using these volumes:
Container Path | Description | Recommended Mount Type |
---|---|---|
/omnom/config |
Database (SQLite), ActivityPub keys, and configuration files | Bind mount or volume |
/omnom/static/data |
Snapshot data and user-uploaded content | Bind mount or volume |
Example with volumes:
docker run -p 7331:7331/tcp \
-v ./omnom_config:/omnom/config \
-v ./omnom_data:/omnom/static/data \
ghcr.io/asciimoo/omnom:master
You can modify the default config.yml
by mounting your own version:
-v ./custom_config.yml:/omnom/config.yml
Run any Omnom command directly:
docker run ghcr.io/asciimoo/omnom:master /omnom/omnom --help
Variable | Description | Default |
---|---|---|
UID |
User ID for Omnom process | 1000 |
GID |
Group ID for Omnom process | 1000 |
Bugs or suggestions? Visit the issue tracker or join our discord server
AGPLv3
This project is funded through NGI Zero Core, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.