Linkding is a nice, minimalist self-hosted bookmark manager. I switched to it after using Shaarli for a few years. This note has the installation procedure.

Shaarli works almost equally well, but in recent versions, it had started behaving oddly for me. Refreshing the bookmarks webpage often gave the message, “Nothing to display” and going to “Tools” would often present the login screen instead. So I looked around and quickly settled on Linkding as an alternative and am quite liking it so far. It has the same simplicity of Shaarli, can work using an sqlite database, and has slightly better options for bookmarking via iOS. The interface also feels a bit more modern. Importing bookmarks from Shaarli was super easy.

Install docker

See Docker install

Docker compose

 1services:
 2  linkding:
 3    container_name: linkding
 4    image: sissbruecker/linkding:latest
 5#    ports:
 6#      - "${LD_HOST_PORT:-9090}:9090"
 7    volumes:
 8      - ./data:/etc/linkding/data
 9    env_file:
10      - .env
11    restart: unless-stopped
12    networks:
13      - linkding-npm
14
15networks:
16  linkding-npm:
17    enable_ipv6: true
  • Since we will use the linkding-npm​ network which will also be added to the NPM Docker config file, the NPM reverse proxy can access the linkding container and its ports directly. So we can # out the ports in the above config.

  • The enable_ipv6​ is needed if you have an IPv6-only host

  • Copy the .env.sample file as .env​. The only change I made to this file is to set the value of LD_CSRF_TRUSTED_ORIGINS=https://subdomain.example.com​. Replace subdomain.example.com​ with the right value.

  • I actually forgot to create the data​ folder, but the docker compose up​ command below created it.

  • Then bring up the container with docker compose up​.

  • After the container is up, create a super user with the command

    1docker exec -it linkding python manage.py createsuperuser --username=joe --email=[email protected]
    

Configure NPM

Basic NPM setup instructions: NPM Docker

Add to docker-compose.yaml

1services:
2    app:
3    networks:
4        - linkding_linkding-npm
5networks:
6    linkding_linkding-npm:
7        external: true

Import bookmarks from Shaarli

  • From Shaarli, export all bookmarks as HTML

  • In Linkding, go to Settings > General > Import and upload the HTML file produced by the Shaarli export.

    • The bookmarks get imported smoothly. You may need to adjust the text of the tags (remove the # in each tag name)

Integrations

  • Desktop browsers: Drag the bookmarklet from Settings > Integrations into the browser bookmarks toolbar. When a site is to be bookmarked, click the bookmarklet.
  • iOS: Follow the instructions to download and configure an iOS shortcut. This will appear after the “Share” button is pressed when browsing sites in Safari in iOS.