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.
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
wallabagpassword - Persistent volume for saved images
- Automatic HTTPS and domain
What's included
| Resource | Details |
|---|---|
| App | wallabag/wallabag:2.6.15.1 Docker image |
| Volume | /var/www/wallabag/web/assets/images (images saved with articles) |
| Database | Managed PostgreSQL |
| Domain | Free *.hostim.dev subdomain |
| SSL | Let’s Encrypt (auto-enabled) |
| Port | 80 |
The template sets these variables for you:
| Variable | Value |
|---|---|
WALLABAG_ADMIN_PASSWORD | Random 20-character string, generated on deploy. The password of the wallabag user |
SYMFONY__ENV__DOMAIN_NAME | https://<your app domain> |
SYMFONY__ENV__SECRET | Random 32-character string, generated on deploy |
SYMFONY__ENV__DATABASE_DRIVER | pdo_pgsql |
SYMFONY__ENV__DATABASE_HOST, _PORT, _NAME, _USER, _PASSWORD | Address and credentials of the managed PostgreSQL |
SYMFONY__ENV__FOSUSER_REGISTRATION | false, so nobody can sign up on their own |
POPULATE_DATABASE | False, 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
- Go to your Hostim.dev dashboard.
- Click Create Project → Use a Template.
- Select wallabag.
- Choose a resource plan.
- Deploy.
- Copy the value of
WALLABAG_ADMIN_PASSWORDfrom the app's environment variables. - Open the app URL and log in as
wallabagwith 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 →