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
97 lines
3.1 KiB
Markdown
97 lines
3.1 KiB
Markdown
|
|
# 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
|
|
|