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 dynamic pages as well
- Self hosted
- Web interface with multiuser support
- Flexible filtering - by date, free text search in content, tags, users, domains, URLs, etc..
- Fediverse/ActivityPub support
- Private & public bookmarks
- Multiple snapshots of the same URL with resource summary and compare/diff views
- Documented API
Omnom browser addon is available for
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 token, OAuth, or a remote user header.
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
.
If you use Omnom behind a reverse proxy with authentication, you can pass the logged-in username in an HTTP header like Remote-User
to automatically log in. Omnom can be configured to trust the header by setting the remote_user_header
option in config.yml
. Remote user header authentication can't be used with OAuth or open signups.
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
To contribute to localizations, please visit our weblate
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.