Skip to content
Greffon
Tutorial

Self-Host Linkding with Greffon

Bookmarks are a quiet record of what you read and care about. Linkding keeps that list small, fast, and yours. Here is the honest setup on a greffer.

GLGreffon Labs5 min read
~/blog/self-host-linkding

Bookmarks pile up across browsers, phones, and accounts until you stop trusting any of them. Linkding is the opposite of that: a single, minimal place for the links you actually want to keep, searchable and tagged, on a box you own rather than a service that might quietly change its terms. Greffon handles the setup so you can get to the part that matters, which is saving links.

Why own your bookmarks

Linkding is a small Django app that does one thing well: it stores bookmarks, tags them, and lets you find them fast. It ships a browser extension and a bookmarklet, supports importing from a standard browser export, and reads cleanly on a phone. There is no account to sign up for and no syncing service in the middle, because the server is yours.

Owning the data matters more than it sounds. Your bookmark list is a record of what you read and what you meant to come back to. Keeping it on hardware you control means it does not vanish when a product shuts down or a free tier disappears, and it is not mined to profile you.

Graft it from the catalog

On a greffer, you do not hand-write a compose file or wire a reverse proxy. Pick Linkding from the catalog and graft it onto your greffer. Greffon issues the certificate and routes the app over HTTPS, so it comes up reachable without you assembling that plumbing by hand.

Linkding asks for an admin username and password on first start. Pick a real password (the catalog requires at least eight characters, but longer is better), because this single account guards everything you save. There is also an advanced trusted-origin setting that is prefilled with your instance URL, so you can leave it alone unless you front the app with a custom domain.

Set a strong admin password up front
Linkding has one login and no second factor. The admin password you choose at graft time is the whole gate. Treat it like a password you would store in a vault, not a throwaway, and set a strong one before you put anything real in.

Reach it from anywhere

On the same network as your greffer, Linkding is reachable the moment it starts. To save links from your phone on the go, or from a work laptop, you have two honest options.

The simplest is tunnel mode: a greffer connects outbound to the manager's tunnel and serves its apps without opening a single inbound port. Because Linkding is a plain HTTP app, the tunnel carries it fully, which makes this the answer for a box behind NAT or CGNAT with no public IP. If you would rather expose the greffer directly, port forwarding plus dynamic DNS still works. Either way the app stays reachable over HTTPS.

Storage and memory

Linkding is genuinely light. It runs comfortably on a small greffer because the database is SQLite and a bookmark list, even a large one, is mostly text. The footprint that grows over time is optional: Linkding can archive snapshots of the pages you save so a link still works after the original goes dead. That archiving is what turns a tiny app into one that wants real disk, since stored snapshots add up.

The practical takeaway is to size disk for how you plan to use it. If you only keep URLs and tags, almost any greffer will do. If you turn on page archiving for a heavy reading habit, watch the data volume and give it headroom.

Back it up

A bookmark list you have curated for years is annoying to rebuild from memory. Linkding keeps everything in a SQLite database plus any archived snapshots, so a backup means copying that data off the greffer on a schedule. Greffon handles TLS and routing today, and native one-click backups are coming in M2. Until then, bring your own backup tool (restic or borgbackup are the usual choices) and store a copy somewhere other than the greffer itself.

Export is not the same as backup
Linkding can export your bookmarks to an HTML file, which is great for portability and worth doing now and then. It does not capture archived snapshots or app state, though, so treat the export as a convenience and a real off-box backup of the data volume as the actual safety net.

Keep it always-on

You will reach for Linkding whenever you stumble on something worth keeping, which is to say at unpredictable times from whatever device is in hand. Run it on an always-on greffer, a small VPS, a mini-PC, or a free Oracle Cloud box, rather than a laptop that sleeps. The Oracle walkthrough is a good place to get a greffer running before you graft Linkding onto it.

FAQ

How heavy is Linkding to run?
Very light. It is a small Django app backed by SQLite, so a list of bookmarks is mostly text and runs fine on a modest greffer. The one thing that grows is optional page archiving, which stores snapshots of saved pages and wants real disk if you lean on it.
Can I import my existing bookmarks?
Yes. Linkding reads the standard bookmarks HTML file that browsers export, so you can bring over what you already have. It also ships a browser extension and a bookmarklet for saving new links as you browse.
Can I reach it from my phone away from home?
Yes. Because Linkding is a plain HTTP app, tunnel mode carries it fully: the greffer connects out and serves the app with no inbound ports, which works even behind CGNAT. Port forwarding plus dynamic DNS is the alternative if you prefer to expose the greffer directly.
What happens if my greffer goes down?
Linkding is server-side, so while it is down you cannot reach or save bookmarks until it is back. That is the case for an always-on machine and tested backups. The browser extension and any local exports give you a partial fallback in the meantime.
GL
Greffon Labs
We build Greffon, the simplest way to turn any machine into a server you own.

Ready to turn on your greffer?

Install in minutes. Deploy each app in seconds. Your server, your apps.

Read the docs