mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-09-16 22:19:52 +02:00
130 lines
4.6 KiB
Markdown
130 lines
4.6 KiB
Markdown
<div align="center">
|
|
<br>
|
|
<a href="https://github.com/sissbruecker/linkding">
|
|
<img src="assets/header.svg" height="50">
|
|
</a>
|
|
<br>
|
|
</div>
|
|
|
|
## 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.13
|
|
- [uv](https://docs.astral.sh/uv/getting-started/installation/)
|
|
- Node.js
|
|
|
|
### Setup
|
|
|
|
Initialize the development environment with:
|
|
```
|
|
make init
|
|
```
|
|
This sets up a virtual environment using uv, installs NPM dependencies and runs migrations to create the initial database.
|
|
|
|
Create a user for the frontend:
|
|
```
|
|
uv run manage.py createsuperuser --username=joe --email=joe@example.com
|
|
```
|
|
|
|
Run the frontend build for bundling frontend components with:
|
|
```
|
|
make frontend
|
|
```
|
|
|
|
Then start the Django development server with:
|
|
```
|
|
make serve
|
|
```
|
|
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
|
|
|
|
> [!WARNING]
|
|
> The dev container setup is currently broken after switching to uv.
|
|
> Feel free to contribute a PR if you want to fix it.
|
|
> The instructions below are outdated until then.
|
|
|
|
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=joe@example.com
|
|
```
|
|
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
|