Self-hosted bookmark manager that is designed be to be minimal, fast, and easy to set up using Docker.
MIT License
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:
Feature Overview:
Demo: https://demo.linkding.link/
Screenshot:
The following links help you to get started with linkding:
The full documentation is now available at 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.
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.
The application is built using the Django web framework. You can get started by checking out the excellent Django docs. The bookmarks
folder contains the actual bookmark application, siteroot
is the Django root application. Other than that the code should be self-explanatory / standard Django stuff 🙂.
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
Run all tests with pytest:
make test
Format Python code with black, and JavaScript code with prettier:
make format
This repository also supports DevContainers:
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