Linkding is a Self-hosted Bookmarking Manager
Linkding is a self-hosted bookmark manager that emphasizes minimalism, speed, and ease of setup via Docker. It offers a clean user interface optimized for readability, allowing users to efficiently manage their bookmarks.
The name 'Linkding' is a combination of 'link', referencing URLs and bookmarks, and 'Ding', which is German for 'thing', essentially meaning it's a tool for managing your links.
As an old avid user of the discontinued De.lic.io.us social bookmarking platform, I found Linding is the best open-source self-hosted alternative, a bit late better than never. I like it similar design, tags, search options and simple interface.
The application boasts a range of features, including tag-based bookmark organization, bulk editing, support for Markdown notes, and a 'read it later' function. Additionally, users can share bookmarks with others, including guest users, contributing to a more collaborative bookmark management experience.
The application conveniently utilizes SQLite, contributing to a simplified installation process via Docker or Docker Compose. By default, SQLite is the chosen database system, yet there's flexibility, allowing configuration with PostgreSQL if preferred. The benefits of this setup include ease of installation, user-friendly operation, and the option to switch to a more robust database like PostgreSQL, ensuring scalability and improved performance for larger data sets.
Features
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
- Provides titles, descriptions and icons of bookmarked websites
- 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 and Chrome, 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
- Responsive design
Install
linkding is designed to be run with container solutions like Docker. The Docker image is compatible with ARM platforms, so it can be run on a Raspberry Pi.
linkding uses an SQLite database by default. Alternatively linkding supports PostgreSQL, see the database options for more information.
Using Docker
The Docker image comes in several variants. To use a different image than the default, replace latest
with the desired tag in the commands below, or in the docker-compose file.
Tag | Description |
---|---|
latest | Provides the basic functionality of linkding |
latest-plus | Includes feature for archiving websites as HTML snapshots
|
latest-alpine | latest , but based on Alpine Linux. 🧪 Experimental |
latest-plus-alpine | latest-plus , but based on Alpine Linux. 🧪 Experimental |
To install linkding using Docker you can just run the image from Docker Hub:
docker run --name linkding -p 9090:9090 -v {host-data-folder}:/etc/linkding/data -d sissbruecker/linkding:latest
In the command above, replace the {host-data-folder}
placeholder with an absolute path to a folder on your host system where you want to store the linkding database.
If everything completed successfully, the application should now be running and can be accessed at http://localhost:9090.
To upgrade the installation to a new version, remove the existing container, pull the latest version of the linkding Docker image, and then start a new container using the same command that you used above. There is a shell script available to automate these steps. The script can be configured using environment variables, or you can just modify it.
To complete the setup, you still have to create an initial user, so that you can access your installation.
Using Docker Compose
To install linkding using Docker Compose, you can use the docker-compose.yml
file. Copy the .env.sample
file to .env
, configure the parameters, and then run:
docker-compose up -d
To complete the setup, you still have to create an initial user, so that you can access your installation.
User Setup
For security reasons, the linkding Docker image does not provide an initial user, so you have to create one after setting up an installation. To do so, replace the credentials in the following command and run it:
Docker
docker exec -it linkding python manage.py createsuperuser --username=joe [email protected]
Docker Compose
docker-compose exec linkding python manage.py createsuperuser --username=joe [email protected]
The command will prompt you for a secure password. After the command has completed you can start using the application by logging into the UI with your credentials.
Alternatively you can automatically create an initial superuser on startup using the LD_SUPERUSER_NAME
option.
You can also install it with a reverse proxy setup easily, for Apache, Nginx and Caddy 2.
Download Browser Extension
linkding comes with an official browser extension that allows to quickly add bookmarks, and search bookmarks through the browser's address bar. You can get the extension here:
The extension is open-source as well, and can be found here.
License
Linkding is released as an open-source under the MIT License