Project guide
Linkding
A compact bookmark manager for saving references, docs and articles without browser-sync sprawl.
Complexity: Low Django application with SQLite or PostgreSQL
What it is
- Linkding is a simple self-hosted bookmark manager focused on fast saving, tags and readable search.
- It works well as a personal or small-team archive for articles, docs, runbooks and release links.
When it is a good fit
- You want one place for operational notes, documentation links and references.
- You care more about retrieval and structure than about social or collaborative features.
- You want a service that stays understandable after six months of neglect.
When it is not the best choice
- You need a full wiki or document editor.
- You expect advanced permissions and large multi-team workflows.
Minimum VPS requirements
- 1 vCPU is enough.
- 512 MB to 1 GB RAM is generally sufficient.
- Disk usage is usually small unless you deliberately archive many snapshots.
Starter install
- The official install page is refreshingly short: run the container, mount `/etc/linkding/data`, then create the first user from inside the container.
- That is also the path I would take on a small VPS. The service is narrow enough that there is rarely a reason to complicate the first deployment.
services:
linkding:
image: sissbruecker/linkding:latest
restart: unless-stopped
ports:
- "127.0.0.1:9090:9090"
volumes:
- ./data:/etc/linkding/data - Bring the container up with `docker compose up -d` and confirm that the login page loads through nginx.
- Create the first admin account with `docker compose exec linkding python manage.py createsuperuser` and fill the prompts interactively.
- Keep the default image unless you really need page archiving. The larger variants pull in a browser runtime and are noticeably heavier on a small host.
- Once the first user is in place, test one browser integration before declaring the setup done.
Deployment notes
- SQLite keeps the initial deployment short and is usually enough for a small collection.
- Place the data volume next to your other service directories so backup routines stay consistent.
- If browser extensions are used, document the public URL once and avoid changing it casually.
Reverse proxy / nginx notes
- A standard nginx host with forwarded headers is enough.
- Keep request body limits reasonable if you enable archiving or richer uploads.
- Use one canonical hostname so bookmarklet and extension flows do not drift.
Data, volumes and backups
- Back up the application data and any archived content together.
- Bookmark metadata is small, so frequent snapshots are cheap and worth doing.
- Retain a plain copy of the Compose file and environment values used by the service.
Updates and maintenance
- Check storage growth if page archiving is enabled.
- Upgrade periodically and verify login plus tag search after each update.
- Clean dead links only when they create real clutter; the archive value often outweighs perfection.
Common pitfalls
- Changing the external URL later can break saved browser-side integrations until they are reconfigured.
- Archiving every page can turn a tiny service into a larger storage consumer.
- Treating it like a wiki leads to frustration because the product is intentionally narrow.
Alternatives
- Wallabag if read-later and article extraction matter more.
- A small wiki if you need authored pages rather than saved links.
Official links
For installation details, release information and current support policy, always check the official project resources directly.