Skip to main content

wallabag Hosting on Hostim.dev

wallabag is an open-source, self-hosted read-it-later app. You save web pages, wallabag strips them down to the article text, and you read them later in the browser, in the mobile apps, or on an e-reader. It has tags, annotations, full-text search, RSS feeds of your lists, and imports from Pocket, Instapaper, Pinboard and others.

The official Docker image runs nginx and PHP in one container, so there is one app to run next to the database.

Self-host wallabag with Docker Compose (minimal)​

wallabag runs on SQLite, PostgreSQL or MySQL/MariaDB. This example uses PostgreSQL.

services:
wallabag:
image: wallabag/wallabag:2.6.15.1
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: change-me-root
SYMFONY__ENV__DATABASE_DRIVER: pdo_pgsql
SYMFONY__ENV__DATABASE_HOST: db
SYMFONY__ENV__DATABASE_PORT: "5432"
SYMFONY__ENV__DATABASE_NAME: wallabag
SYMFONY__ENV__DATABASE_USER: wallabag
SYMFONY__ENV__DATABASE_PASSWORD: change-me
SYMFONY__ENV__SECRET: change-me-to-a-long-random-string
SYMFONY__ENV__DOMAIN_NAME: https://read.example.com
volumes:
- ./images:/var/www/wallabag/web/assets/images
ports:
- "8080:80"
depends_on:
- db
db:
image: postgres:17
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: change-me-root
volumes:
- ./db:/var/lib/postgresql/data

On the first start the container uses the postgres superuser to create the wallabag role and database, then installs the schema and a wallabag user with the password wallabag. Change that password right after the first login. PHP runs as nobody, so before you turn on image downloads, make ./images writable for it (sudo chown 65534:65534 images). Run docker compose up -d and open http://<your-server>:8080. For HTTPS you also need a reverse proxy and a certificate. More stacks are in our Docker Compose library.


Deploy wallabag on Hostim.dev (One-Click)

The hosted route: no VPS, no proxy, no certificates. The template runs the official image with a managed PostgreSQL database, a persistent volume, a domain and HTTPS.

Try it Yourself

Guest project runs for 1 hour. Log in to save and extend to 5 days.

Why Host wallabag on Hostim.dev?​

  • One-click Docker deployment
  • Managed PostgreSQL database
  • Admin password generated on deploy, no default wallabag password
  • Persistent volume for saved images
  • Automatic HTTPS and domain

What's included​

ResourceDetails
Appwallabag/wallabag:2.6.15.1 Docker image
Volume/var/www/wallabag/web/assets/images (images saved with articles)
DatabaseManaged PostgreSQL
DomainFree *.hostim.dev subdomain
SSLLet’s Encrypt (auto-enabled)
Port80

The template sets these variables for you:

VariableValue
WALLABAG_ADMIN_PASSWORDRandom 20-character string, generated on deploy. The password of the wallabag user
SYMFONY__ENV__DOMAIN_NAMEhttps://<your app domain>
SYMFONY__ENV__SECRETRandom 32-character string, generated on deploy
SYMFONY__ENV__DATABASE_DRIVERpdo_pgsql
SYMFONY__ENV__DATABASE_HOST, _PORT, _NAME, _USER, _PASSWORDAddress and credentials of the managed PostgreSQL
SYMFONY__ENV__FOSUSER_REGISTRATIONfalse, so nobody can sign up on their own
POPULATE_DATABASEFalse, the database already exists

The template also replaces the start command. The image only creates the schema and the first user when it can create the database itself with a superuser password. A managed database already exists, so the template's start command installs wallabag when its tables are missing, sets the wallabag password from WALLABAG_ADMIN_PASSWORD, runs the database migrations, and then starts the image as usual.

How to Deploy​

  1. Go to your Hostim.dev dashboard.
  2. Click Create Project → Use a Template.
  3. Select wallabag.
  4. Choose a resource plan.
  5. Deploy.
  6. Copy the value of WALLABAG_ADMIN_PASSWORD from the app's environment variables.
  7. Open the app URL and log in as wallabag with that password.

The password is set once, on the first start. Changing WALLABAG_ADMIN_PASSWORD later does nothing; change the password in wallabag under Config → Password.


FAQ​

Where does wallabag store its data?

Articles, tags, annotations, users and settings are in the managed PostgreSQL database. If you turn on image downloads, the images of saved articles are files in /var/www/wallabag/web/assets/images, on a persistent volume. We restarted the app four times in a row with saved articles and downloaded images in place, and nothing was lost.

How do I keep images when the original site removes them?

By default wallabag links to the images on the original site. Log in as wallabag, open Internal Settings → Misc and turn on Download images locally. Articles saved after that keep their images on the volume.

How do I connect the browser extension or the mobile apps?

The apps log in through the API. In wallabag, open API clients management, create a client, and enter its client ID and secret together with your app URL, username and password in the app.

How do I add more users?

As wallabag, open Users management and create the accounts there. To let people sign up on their own, set SYMFONY__ENV__FOSUSER_REGISTRATION=true and redeploy. Sign-ups then need email confirmation unless you also set SYMFONY__ENV__FOSUSER_CONFIRMATION=false.

How do I send email?

wallabag sends email for sign-up confirmation, password resets and two-factor codes. Set SYMFONY__ENV__MAILER_DSN (for example smtp://user:pass@smtp.example.com:587) and SYMFONY__ENV__FROM_EMAIL for your SMTP provider, then redeploy. Two-factor emails use their own sender address: set SYMFONY__ENV__TWOFACTOR_SENDER as well.

How do I use my own domain?

Add the domain to the app in the Hostim.dev dashboard and point a DNS record at it. HTTPS is set up for it automatically. Then change SYMFONY__ENV__DOMAIN_NAME to the new address and redeploy. Do this before you turn on image downloads: wallabag writes the full image URL, including the domain, into each saved article, so images saved under the old domain keep pointing at it.

How do I back up wallabag?

Back up the PostgreSQL database and the images volume. Together they hold your articles, users, settings and downloaded images. You can also export articles from wallabag itself (EPUB, PDF, JSON, CSV and more).

How do I update wallabag?

The template pins a version, because the image's configuration variables are tied to the 2.6 releases. To update, back up the database, change the image tag to the newer 2.6 release and redeploy. The start command runs the database migrations. Read the release notes before you move to a new major version.


Alternatives​

  • Linkding — self-hosted bookmark manager (guide)
  • Readeck — read-it-later app with a single binary
  • Karakeep — bookmark and read-it-later app with AI tagging

Source + Docs​


Looking for something else? Browse all templates →


Try it now​

Deploy wallabag Now – in less than 60 seconds