How to Install Linkding (Self-Hosted Bookmarks That Sync to Every Browser and Phone)

Bookmarks are split across two browsers, a phone, a "read later" app that's shutting down, and a notes file called links.txt. Linkding is a bookmark manager that does one thing well: save a link with tags and a note from anywhere, search it from anywhere, and optionally keep a snapshot of the page so it's still readable when the site disappears. It's tiny, fast, and runs happily next to everything else.
Quick reference
| Task | What |
|---|---|
| Folder | ~/docker/linkding/compose.yaml |
| Web | http://server-ip:9090 |
| First user | docker compose exec linkding python manage.py createsuperuser |
| Browser | the Linkding extension (Firefox, Chrome) → server URL + API token |
| Phone | add to home screen; share sheet → Linkding |
| Snapshots | Settings → Archive (Internet Archive) or HTML snapshots |
1. The compose file
mkdir -p ~/docker/linkding && cd ~/docker/linkding
nano compose.yaml
services:
linkding:
image: sissbruecker/linkding:latest
container_name: linkding
ports:
- "9090:9090"
environment:
LD_SUPERUSER_NAME: john
LD_SUPERUSER_PASSWORD: ${ADMIN_PASSWORD}
LD_ENABLE_SNAPSHOTS: "True"
volumes:
- ./data:/etc/linkding/data
restart: unless-stopped
The superuser is created on first start from those variables (SQLite, in ./data). LD_ENABLE_SNAPSHOTS turns on local HTML page archiving; drop it on a Pi short of space.
docker compose up -d
sudo ufw allow 9090/tcp
Log in at http://192.168.1.50:9090.
2. Import what you have
Settings → Import: upload a bookmarks HTML file — every browser exports one (Firefox: Library → Import and Backup → Export; Chrome: Bookmark manager → Export). Folders become tags. Pocket, Raindrop and most others can export the same format.
3. The browser extension
Install linkding from the Firefox or Chrome store. In its options: Base URL https://links.example.com (or the LAN address), API token from Linkding's Settings → Integrations. Now the toolbar button saves the current page with title and description pre-filled, and the omnibox searches your bookmarks when you type ld . Firefox can also show them in the bookmarks bar.
4. Phone
Open Linkding in the phone's browser and Add to Home Screen — it's a proper web app. On Android, sharing a page to it works through the home-screen app; on iOS, a Shortcut that takes the shared URL and opens https://links.example.com/bookmarks/new?url=... does the job.
5. Tags, notes and search
Tags are the whole organisation system: #homeserver #toread #recipe. Notes support Markdown. The search box understands #tag, !unread, !untagged and plain words across title, description, notes and the page's own text if snapshotted. Bundles save searches as one click.
6. Snapshots so links don't rot
With snapshots on, each bookmark gets an HTML snapshot stored in ./data — a single-file copy of the page as it was. Settings → Archive integration can also submit every link to the Internet Archive and link to the Wayback copy. Both run in the background; the camera icon on a bookmark opens the saved version.
7. Share and feed
Any bookmark can be Shared, making it visible on /bookmarks/shared without login — a public reading list. An RSS feed of your bookmarks (Settings → Integrations → Feeds) lets FreshRSS (tutorial 89) or friends follow what you save.
Behind the proxy
links.example.com → 127.0.0.1:9090, HTTPS, and add LD_CSRF_TRUSTED_ORIGINS: https://links.example.com to the environment so form posts work through the proxy.
Troubleshooting
Extension says "Unable to connect". Base URL wrong or the token missing; test the URL in a tab first. Mixed content if the site is http and the browser is strict.
CSRF errors through the proxy. LD_CSRF_TRUSTED_ORIGINS as above.
Snapshots folder growing fast. Each is a full page; for a heavy user it's gigabytes a year. Turn snapshots off for #toread and rely on the Wayback integration.
Import skipped some bookmarks. Duplicates (same URL) are skipped by design; the import summary says how many.
Wrapping up
One container, an extension in each browser, the web app on the phone. Every link you save goes to one searchable, tagged place you own, with a snapshot in case the page vanishes — and links.txt can finally be deleted.
