linkwallet/README.md
Justin Hawkins d2aa6fdd2f Merge the feature branch to introduce the bleve indexing.
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
2025-05-03 12:37:44 +09:30

97 lines
3.1 KiB
Markdown

# 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