commit e8c2bc7e4ade56f893c8fb23eac4cdb754555389 Author: Justin Hawkins <justin@hawkins.id.au> Date: Sat May 3 12:36:18 2025 +0930 Clean up menu/version commit 1993533a4613a5db7bbb2ecd6b7a2694f48acd52 Author: Justin Hawkins <justin@hawkins.id.au> Date: Sat May 3 12:31:50 2025 +0930 Update README commit 044cc830dcb3d05b43ab770e8ea42959873823dd Author: Justin Hawkins <justin@hawkins.id.au> Date: Sat May 3 12:22:33 2025 +0930 No longer needed commit a7c37ad7c5c12fcac1d5589271e0e66af4f086e8 Author: Justin Hawkins <justin@hawkins.id.au> Date: Sat May 3 12:14:59 2025 +0930 Fixup version handling commit ade0b748e978ce1d9533a928bd6369f1714ca8a8 Author: Justin Hawkins <justin@hawkins.id.au> Date: Sat May 3 11:58:15 2025 +0930 Use the correct analyser for searches commit e5a65cf5cfdd82ba7aa3d2470c12c6e82c851a3f Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri May 2 19:51:54 2025 +0930 Fix version in template commit 0171be0ee4d11796cfc0419a00b412f8037f4d97 Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri May 2 19:51:41 2025 +0930 Rescrape all links if needed on startup commit ae654998f751c3883f8b3bd76005afae38209edf Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri May 2 19:51:25 2025 +0930 Spelling commit bfe9bbee028e5515be5b6d406e9090c61cdbbebd Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri May 2 19:34:06 2025 +0930 Make goreleaser set the version commit 4436313413f52b2b29a08e510ac4496016aae8a0 Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri May 2 11:43:58 2025 +0930 Make release matrix sane commit 7b467ecee7a3d74ba194b723034dd16bf1c53b53 Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri May 2 11:40:07 2025 +0930 I hate YAML, so much. commit b578e0f044e754ca70cd4ace95fdc6dc3cdcfe07 Author: Justin Hawkins <justin@hawkins.id.au> Date: Thu May 1 23:47:07 2025 +0930 Update goreleaser commit fba84f0827d35359a450fb847b03f5fa78960a1f Author: Justin Hawkins <justin@hawkins.id.au> Date: Thu May 1 23:45:46 2025 +0930 Update version commit e4edb08bd19c560b6f2ea5e572d5950896ac6062 Author: Justin Hawkins <justin@hawkins.id.au> Date: Thu May 1 23:42:59 2025 +0930 Deps commit 58b6692d1b397de91f3531c35c6518fb58ad285a Author: Justin Hawkins <justin@hawkins.id.au> Date: Thu May 1 23:39:51 2025 +0930 Mostly done, first cut commit badbe5e92ffa415b444535eca385d87fa00afa68 Author: Justin Hawkins <justin@hawkins.id.au> Date: Sun Apr 27 20:28:37 2025 +0930 Remove unused code commit 903240dd18cdcd7722705f04ff40b30661969d4d Author: Justin Hawkins <justin@hawkins.id.au> Date: Sun Apr 27 20:26:19 2025 +0930 Update deps commit de90b9951a82c420be0588e6c2c2b63fe0b10eff Author: Justin Hawkins <justin@hawkins.id.au> Date: Sun Apr 27 20:21:33 2025 +0930 Keep on bleving commit 9b15528510a06661237249eaf7bf64c3ce71fc3c Author: Justin Hawkins <justin@hawkins.id.au> Date: Fri Apr 25 23:57:04 2025 +0930 Start of blevification
linkwallet
A self-hosted bookmark database with full-text page content search.
linkwallet uses the Bleve indexing library, providing excellent support for free-text queries over the content of all your bookmarked pages.
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.
Bookmarks can be added with two clicks via the 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.
- In most cases, you only need to change the path to the
- 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