# linkwallet [![Go Report Card](https://goreportcard.com/badge/github.com/tardisx/linkwallet)](https://goreportcard.com/report/github.com/tardisx/linkwallet) A self-hosted bookmark database with full-text page content search. linkwallet uses the [Bleve](https://blevesearch.com) indexing library, providing excellent support for free-text queries over the content of all your bookmarked pages. ![Search][screenshot_search] linkwallet indexes the page content, and automatically re-scrapes the pages periodically. Tags can be applied (though with the full-text search they are often not needed). Bookmarks can be easily managed, and can be imported or exported in bulk. ![Admin][screenshot_admin] Bookmarks can be added with two clicks via the bookmarklet. ![Bookmarklet][screenshot_bookmarklet] # Feature list * Simple cross-platform single binary deployment * or docker if you prefer * Bookmarklet, single click to add a bookmark from any webpage * Full-text search * Bookmark content is scraped and indexed locally * Page content periodically refreshed automatically * Interactively search across titles and content * Rippingly fast results, as you type * full text search ~30ms (over full text content of 600 bookmarks) * No need to remember how you filed something, you just need a keyword or two to discover it again * Embedded database, no separate database required * Extremely light on resources * Easily export your bookmarks to a plain text file - your data is yours # Installation ## Docker * Copy the `docker-compose.yml-sample` to a directory somewhere * Rename to `docker-compose.yml` and edit to your needs * In most cases, you only need to change the path to the `/data` mountpoint. * Run `docker-compose up -d` To upgrade: * `docker-compose pull` * `docker-compose up -d` ## Packages (deb/rpm) [not yet migrated to new goreleaser - please message me if you need packages] ## Binary * Download the appropriate binary from the releases page * Install somewhere on your system * Run `./linkwallet -db-path /some/path/xxxx.db` where `/some/path/xxxx.db` is the location of your bookmarks database (will be created if it does not yet exist) ## Source * Checkout the code * `go build cmd/linkwallet/linkwallet.go` # Using linkwallet is a 100% web-driven app. After running, hit the web interface on port 8109 (docker using the sample docker-compose.yml) or 8080 (default on binary). Change the port number by setting the PORT environment variable. If you put linkwallet on a separate machine, or behind a reverse proxy, go into the config page and set the correct `BaseURL` parameter, or the bookmarklets will not work. # Roadmap * More options when managing links * sorting * More tag options * bookmarklet with pre-filled tags * search/filter on tags [screenshot_search]: https://raw.githubusercontent.com/tardisx/linkwallet/main/screenshot_search.png [screenshot_admin]: https://raw.githubusercontent.com/tardisx/linkwallet/main/screenshot_admin.png [screenshot_bookmarklet]: https://raw.githubusercontent.com/tardisx/linkwallet/main/screenshot_bookmarklet.png