omnom

command module
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2026 License: AGPL-3.0 Imports: 2 Imported by: 0

README

Omnom

Translation status GoDoc

A web content preservation service

  • Bookmark with website snapshots
  • Aggregate feeds
  • Follow ActivityPub streams

Check out our wiki for more information.

Features

  • Self hosted
  • Bookmarking
  • RSS reader
  • Fediverse/ActivityPub support
  • Websites are captured as your browser renders it - saves the displayed content of dynamic pages as well
  • Multiple snapshots of the same URL with resource summary and compare/diff views
  • Web interface with multiuser support
  • Locally saved multimedia content
  • Flexible filtering - by date, free text search in content, tags, users, domains, URLs, etc..
  • Documented API

Browser addon

Omnom browser addon is available for

Installation

Single file binary release is available here.

Docker image is also available available, more details here.

Local build

go >= 1.24 required

  • Checkout the repo and execute go get -u in the root directory
  • Run go build

Setup & run

  • Run ./omnom help to list the available commands
  • Execute ./omnom listen to start the web application

Configuration

Settings can be configured in config.yml config file - don't forget to restart webapp after updating.

Execute ./omnom create-config config.yml to generate a configuration file with the default configuration values.

User handling

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.

Command line tool

Basic management actions are available using the command line tool (go run omnom.go or go build; ./omnom)

Available Commands
  create-bookmark      create new bookmark
  create-config        create default configuration file
  create-token         create new login/addon token for a user
  create-user          create new user
  diff-html            diff-html FILE1 FILE2
  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-unread          show unread details
  show-user            show user details
  update-feeds         update RSS/Atom feeds
  validate-html        validate-html FILE
  completion           Generate the autocompletion script for the specified shell

Translations

To contribute to localizations, please visit our weblate

Translation status

Bugs

Bugs or suggestions? Visit the issue tracker or join our discord server

License

AGPLv3

Funding

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.

NLnet foundation logo NGI Zero Logo

Documentation

Overview

Omnom is a self-hosted bookmark manager and feed aggregator with ActivityPub support.

Omnom allows you to save and organize web bookmarks with:

  • Full-page snapshots with diff tracking
  • Hierarchical collections for organization
  • Powerful tagging and search
  • Public and private bookmarks
  • Browser extension support

It also functions as a feed reader supporting:

  • RSS/Atom feeds
  • ActivityPub federation (Mastodon, Pleroma, etc.)
  • Per-user read/unread tracking
  • Content aggregation

Key features:

  • Passwordless authentication via email
  • OAuth support (GitHub, Google, OIDC)
  • REST API for integrations
  • Content preservation with snapshots
  • Multi-user support
  • Internationalization

Usage:

# Start the server
omnom listen

# Create a user
omnom create-user username email@example.com

# Add a bookmark from CLI
omnom create-bookmark username "Title" https://example.com

# Update feeds
omnom update-feeds

For more information, see: https://github.com/asciimoo/omnom

Directories

Path Synopsis
Package activitypub implements ActivityPub federation protocol for Omnom.
Package activitypub implements ActivityPub federation protocol for Omnom.
Package cmd provides command-line interface functionality for Omnom.
Package cmd provides command-line interface functionality for Omnom.
Package config provides configuration management for the Omnom application.
Package config provides configuration management for the Omnom application.
Package contentdiff provides HTML comparison and difference detection functionality.
Package contentdiff provides HTML comparison and difference detection functionality.
Package docs provides embedded documentation files for Omnom.
Package docs provides embedded documentation files for Omnom.
Package feed handles RSS/Atom and ActivityPub feed processing and aggregation.
Package feed handles RSS/Atom and ActivityPub feed processing and aggregation.
Package localization provides internationalization (i18n) support for Omnom.
Package localization provides internationalization (i18n) support for Omnom.
Package mail provides email sending functionality for Omnom notifications.
Package mail provides email sending functionality for Omnom notifications.
Package model provides database models and data access layer for Omnom.
Package model provides database models and data access layer for Omnom.
Package oauth provides OAuth 2.0 authentication support for external providers.
Package oauth provides OAuth 2.0 authentication support for external providers.
Package static provides embedded static assets for the Omnom web application.
Package static provides embedded static assets for the Omnom web application.
Package storage provides an abstraction layer for storing snapshots and resources.
Package storage provides an abstraction layer for storing snapshots and resources.
fs
Package fs implements filesystem-based storage for Omnom snapshots and resources.
Package fs implements filesystem-based storage for Omnom snapshots and resources.
Package templates provides embedded HTML templates for the Omnom web application.
Package templates provides embedded HTML templates for the Omnom web application.
Package utils provides utility functions and types used across the Omnom application.
Package utils provides utility functions and types used across the Omnom application.
Package validator provides HTML validation and security checking for user content.
Package validator provides HTML validation and security checking for user content.
Package webapp provides the HTTP web application and API server for Omnom.
Package webapp provides the HTTP web application and API server for Omnom.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL