Self-hosted bookmark storage and article clipper, open source alternative to Pocket

; Date: Wed May 28 2025

Tags: Docker »»»» Self Hosting »»»»

We read an article somewhere, it was very interesting, we learned a lot, and we vow to remember everything we learned. Then we close the browser tab, and amidst our busy life we forget about the article, forget what we learned, until one day it comes to mind. But, we can't remember the title, what site it was on, precisely the topic, and it's difficult to find the article again.

That's where Wallabag helps us. It's a tool for recording things we've read online, and using tagging we can organize those things into useful groups.

There are many services available for this purpose. Where Wallabag shines is that you can host it on your own server for the ultimate in data privacy. You don't have to worry that Big Brother is tracking the articles you've read, because Wallabag stores them on a server you control.

This is for the people who have a server and the skills to self-host a Docker service.

(wallabag.org) https://wallabag.org/#

(doc.wallabag.org) https://doc.wallabag.org/

(hub.docker.com) https://hub.docker.com/r/wallabag/wallabag/

Docker Compose file for Wallabag

services:
  wallabag:
    image: wallabag/wallabag
    restart: unless-stopped
    environment:
      # - MYSQL_ROOT_PASSWORD=wallaroot
      # - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
      # - SYMFONY__ENV__DATABASE_HOST=db
      # - SYMFONY__ENV__DATABASE_PORT=3306
      # - SYMFONY__ENV__DATABASE_NAME=wallabag
      # - SYMFONY__ENV__DATABASE_USER=wallabag
      # - SYMFONY__ENV__DATABASE_PASSWORD=wallapass
      # - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
      # - SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
      # - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
      # - SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
      - SYMFONY__ENV__DOMAIN_NAME=https://bag.example.com
      - SYMFONY__ENV__SERVER_NAME="Baggy"
    # ports:
    #   - "80"
    volumes:
      - /home/david/docker/wallabag/images:/var/www/wallabag/web/assets/images
      - /home/david/docker/wallabag/data:/var/www/wallabag/data
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
      interval: 1m
      timeout: 3s
    depends_on:
     # - db
      - redis
    networks:
      - servernet
      - wallanet

#   db:
#     image: mariadb
#     restart: unless-stopped
#     environment:
#       - MYSQL_ROOT_PASSWORD=wallaroot
#     volumes:
#       - /opt/wallabag/data:/var/lib/mysql
#     healthcheck:
#       test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
#       interval: 20s
#       timeout: 3s

  redis:
    image: redis:alpine
    restart: unless-stopped    
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 20s
      timeout: 3s
    networks:
      - wallanet


networks:
    servernet:
        external: true
    wallanet:
        external: true

Caddy configuration

http://bag.wwwatts.net {
  redir https://{host}{uri} permanent
}

https://bag.wwwatts.net {
        reverse_proxy wallabag-wallabag-1:80
}

The initial startup, there is a default user/password:

  • user: wallabag
  • password: wallabag

When I did this, a warning popped up from the browser saying this combination was known to be compromised. Obviously this is a default password, and some administrators may have left the default in place, only to have miscreants access their Wallabag instance.

So... change the password. To do so:

  1. Click on the upper-right-icon and select Config
  2. Click on the Password tab
  3. Enter a new password

Also, on the upper-right-corner menu is a Users Management choice. The table has one entry, wallabag. It's recommended to change the name of this user to admin (for example). To do so, click on the Edit link.

Next, it's recommended to setup a user account for yourself. The wallabag/admin account has full access rights to everything. Subsequent accounts do not have full privileges. It is recommended that your day-day use have limited privileges. Click on the Create a new User button and follow the instructions.

Next, login as your day-day user account.

Importing from Pocket etc to Wallabag

See (doc.wallabag.org) https://doc.wallabag.org/user/import/

Importing articles from a desktop browser

For your browser, install the correct extension. Links for this are on the Wallabag home page.

On first install you'll be in the configuration/options screen.

Enter the domain name of your Wallabag instance. Click on Check URL. If successful more boxes will show up to enter tokens and such.

In your Wallabag instance, navigate to API Cients Management. Click on Create a new Client.

On that page you will see a pair of tokens. One by one click on the Copy button, then pages into the corresponding slot on the API Cients Management window. After copying the keys over, enter the user name and password of your account. Click on Get Token.

Afterward, click on the options below. Most of them should be checked.

A new icon will appear in the browser toolbar.

Importing articles using a smart phone

For your mobile device, click on the Android or iOS choice. Links are on the Wallabag home page.

Alternatives

Raindrop - (raindrop.io) https://raindrop.io/ - Looks like an excellent tool. The service is not open source, which you may be okay with.

Karakeep - (karakeep.app) https://karakeep.app/ - It's open source self hosted, meaning your data is safe. But, it requires having an OpenAI subscription and will cost $$s on every item saved.

Archive Box - (archivebox.io) https://archivebox.io/ - Did not explore beyond reading the home page.

(www.gotchseo.com) https://www.gotchseo.com/best-pocket-alternatives/ -- List to review

(linkwarden.app) https://linkwarden.app/

(www.bookmarkninja.com) https://www.bookmarkninja.com/

(bmrk.cc) https://bmrk.cc/

(brace.to) https://brace.to/

How to

(www.howtoforge.com) https://www.howtoforge.com/how-to-install-wallabag-on-ubuntu-1804/

About the Author(s)

(davidherron.com) David Herron : David Herron is a writer and software engineer focusing on the wise use of technology. He is especially interested in clean energy technologies like solar power, wind power, and electric cars. David worked for nearly 30 years in Silicon Valley on software ranging from electronic mail systems, to video streaming, to the Java programming language, and has published several books on Node.js programming and electric vehicles.