Pinrs is a server for a bookmarking service. The goal is to be API compatible enough with the excellent linkding to be able to use the same clients. The goal is not to re-implement all of linkding's features, for example archiving and multi users will not be supported.
$ cargo build --release
The pinrs.service file can be modified and used to run on a system using systemd. A reverse proxy in front of pinrs is recommended.
- Get a copy of the bookmarks from linkding as an json array:
$ curl -s -H "Authorization: Token <TOKEN>" "<HOST>/api/bookmarks/?limit=100000" | jq -c '.results' > linkding.json
The token can be found in the linkding web application, Settings -> REST API.
- Import to pinrs:
$ PINRS_DB=/path/to/your/pinrs.db pinrs --import linkding.json
- Get a copy of the bookmarks from pinrs in Netscape bookmark html:
$ pinrs --export-html > pinrs.html
- In the linkding web application, import the file in Settings -> General -> Import.
Note: exporting from linkding, importing to pinrs, exporting from pinrs and then importing to linkding again is not a lossless operation. Fields that linkding supports but pinrs doesn't are not preserved.
- smaller feature set
- single binary
- only the server part, no frontend
- single user
- all clients supporting linkding should work. Features not supported in pinrs should be silently ignored
- strictly only reacting to incoming request, i.e., no background tasks
- archival feature
- fetching information about a bookmark (title, favicon, etc.) is left for the client, the server will never do any outgoing connections.
- multi users support
- database compatibility
The goal is for all linkding client to work, if you find any problems, please create an issue.