https://github.com/sissbruecker/linkding
Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker.
https://github.com/sissbruecker/linkding
bookmark-manager bookmark-service bookmarks self-hosted
Last synced: 9 days ago
JSON representation
Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker.
- Host: GitHub
- URL: https://github.com/sissbruecker/linkding
- Owner: sissbruecker
- License: mit
- Created: 2019-06-28T05:34:23.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-28T22:14:55.000Z (20 days ago)
- Last Synced: 2025-04-01T23:14:32.917Z (16 days ago)
- Topics: bookmark-manager, bookmark-service, bookmarks, self-hosted
- Language: Python
- Homepage: https://linkding.link/
- Size: 5.39 MB
- Stars: 7,897
- Watchers: 35
- Forks: 374
- Open Issues: 115
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Security: SECURITY.md
Awesome Lists containing this project
- deploy-your-own-saas - Linkding
- awesome-privacy - LinkDing
- fucking-awesome-privacy - LinkDing
- awesome-starred - sissbruecker/linkding - Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. (self-hosted)
- awesome-homelab - linkding - hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. | (Apps / Bookmarking)
- jimsghstars - sissbruecker/linkding - Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. (Python)
- awesome-rainmana - sissbruecker/linkding - Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. (Python)
- definitive-opensource - linkding - hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. | `SelfHost` | **8k** | (Table of Contents / Bookmark Manager)
- stars - sissbruecker/linkding - Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. (Python)
- my-awesome - sissbruecker/linkding - manager,bookmark-service,bookmarks,self-hosted pushed_at:2025-04 star:8.0k fork:0.4k Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. (Python)
- awesome-django - linkding - Self-hosted bookmark manager that is designed to be minimal, fast, and easy to set up using Docker. (Projects / Open Source Projects)
- trackawesomelist - linkding (⭐7.3k) - Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker. (Recently Updated / [Feb 06, 2025](/content/2025/02/06/README.md))
- awesome-docker - sissbruecker/linkding
- awesome-docker - sissbruecker/linkding
README
## Introduction
linkding is a bookmark manager that you can host yourself.
It's designed be to be minimal, fast, and easy to set up using Docker.The name comes from:
- *link* which is often used as a synonym for URLs and bookmarks in common language
- *Ding* which is German for thing
- ...so basically something for managing your links**Feature Overview:**
- Clean UI optimized for readability
- Organize bookmarks with tags
- Bulk editing, Markdown notes, read it later functionality
- Share bookmarks with other users or guests
- Automatically provides titles, descriptions and icons of bookmarked websites
- Automatically archive websites, either as local HTML file or on Internet Archive
- Import and export bookmarks in Netscape HTML format
- Installable as a Progressive Web App (PWA)
- Extensions for [Firefox](https://addons.mozilla.org/firefox/addon/linkding-extension/) and [Chrome](https://chrome.google.com/webstore/detail/linkding-extension/beakmhbijpdhipnjhnclmhgjlddhidpe), as well as a bookmarklet
- SSO support via OIDC or authentication proxies
- REST API for developing 3rd party apps
- Admin panel for user self-service and raw data access**Demo:** https://demo.linkding.link/
**Screenshot:**

## Getting Started
The following links help you to get started with linkding:
- [Install linkding on your own server](https://linkding.link/installation) or [check managed hosting options](https://linkding.link/managed-hosting)
- [Install the browser extension](https://linkding.link/browser-extension)
- [Check out community projects](https://linkding.link/community), which include mobile apps, browser extensions, libraries and more## Documentation
The full documentation is now available at [linkding.link](https://linkding.link/).
If you want to contribute to the documentation, you can find the source files in the `docs` folder.
If you want to contribute a community project, feel free to [submit a PR](https://github.com/sissbruecker/linkding/edit/master/docs/src/content/docs/community.md).
## Contributing
Small improvements, bugfixes and documentation improvements are always welcome. If you want to contribute a larger feature, consider opening an issue first to discuss it. I may choose to ignore PRs for features that don't align with the project's goals or that I don't want to maintain.
## Development
The application is built using the Django web framework. You can get started by checking out the excellent [Django docs](https://docs.djangoproject.com/en/4.1/). The `bookmarks` folder contains the actual bookmark application. Other than that the code should be self-explanatory / standard Django stuff 🙂.
### Prerequisites
- Python 3.12
- Node.js### Setup
Create a virtual environment for the application (https://docs.python.org/3/tutorial/venv.html):
```
python3 -m venv ~/environments/linkding
```
Activate the environment for your shell:
```
source ~/environments/linkding/bin/activate[.csh|.fish]
```
Within the active environment install the application dependencies from the application folder:
```
pip3 install -r requirements.txt -r requirements.dev.txt
```
Install frontend dependencies:
```
npm install
```
Initialize database:
```
mkdir -p data
python3 manage.py migrate
```
Create a user for the frontend:
```
python3 manage.py createsuperuser --username=joe [email protected]
```
Start the Node.js development server (used for compiling JavaScript components like tag auto-completion) with:
```
npm run dev
```
Start the Django development server with:
```
python3 manage.py runserver
```
The frontend is now available under http://localhost:8000### Tests
Run all tests with pytest:
```
make test
```### Formatting
Format Python code with black, and JavaScript code with prettier:
```
make format
```### DevContainers
This repository also supports DevContainers: [](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/sissbruecker/linkding.git)
Once checked out, only the following commands are required to get started:
Create a user for the frontend:
```
python3 manage.py createsuperuser --username=joe [email protected]
```
Start the Node.js development server (used for compiling JavaScript components like tag auto-completion) with:
```
npm run dev
```
Start the Django development server with:
```
python3 manage.py runserver
```
The frontend is now available under http://localhost:8000