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

Linkding: bookmarks you own — Every browser, every phone, one searchable place.

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

TaskWhat
Folder~/docker/linkding/compose.yaml
Webhttp://server-ip:9090
First userdocker compose exec linkding python manage.py createsuperuser
Browserthe Linkding extension (Firefox, Chrome) → server URL + API token
Phoneadd to home screen; share sheet → Linkding
SnapshotsSettings → 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.

Call us