Skip to content
← All apps

Wallabag

Save articles for later with persistent SQLite data and downloaded images.

Choose your deployment and the way you want to use Selfhost. The instructions below follow that choice.

Set up Wallabag

SQLite with persistent downloaded images

  • Choose the SQLite deployment, which preserves both the database directory and downloaded article images. Acknowledge the initial account requirement before starting.
  • Before exposing the app, use Change account password with username wallabag and a strong password. The upstream image creates that initial account during installation.
Customize deployment inputs (2)
Local HTTP port port
portDefault: 8087
Initial hostname (change public URL later in app settings) hostname
hostnameDefault: "localhost"
Review this deployment’s requirements

Your selections add the matching CLI acknowledgements. The installer checks them again.

Save this as inputs.json and adjust the values before initialization.

{
  "port": 8087,
  "hostname": "localhost"
}

Review and acknowledge every requirement above before running initialization.

selfhost app --directory ./wallabag init wallabag --method sqlite --inputs inputs.json

Initialization writes portable files and does not start the app. Review compose.yaml, the private .env and any files in files/, then start it:

selfhost app --directory ./wallabag start

No Selfhost dashboard or background service is needed. You can also start these files directly:

cd wallabag
docker compose -f compose.yaml up -d
  • Review the generated Compose and environment before starting. Only the app HTTP port is published, on loopback.
  • Keep credentials, database and data volumes together in an independent backup. Exported Compose files do not include volume data.
  • Wallabag initially creates the wallabag account. Run the Change user password action with a new password immediately; keep the app private until complete.
  • Downloaded images and the SQLite database both need backup.

Before configuring integrations

  • Create user and Promote administrator operate through the native Symfony console. Password fields are secret action inputs.
  • Native settings include the canonical domain, registration, SMTP, database and cache connections. Recreate the container after applying environment changes.
  • Migrate database schema is an advanced maintenance action. Back up both named volumes first.
  • This version does not offer a native OpenID Connect login integration. Selfhost does not substitute a trusted-header bypass.
  • Changing the database driver does not migrate the SQLite database. Configure and migrate an external database using Wallabag procedures before switching.

Wallabag integrations

Compose service: wallabag. These operations use the profile saved when this deployment is created.

Native settings

Changes use the app’s Compose environment. Unrelated settings are preserved.

Supported fields (18)
Public URL public-url
string
Instance name server-name
string
Default language locale
string
Public registration registration
stringChoices: true, false
Confirm registrations by email email-confirmation
stringChoices: true, false
SMTP DSN mail-dsn
secret
Outgoing email address sender
string
Two-factor email sender twofactor-sender
string
Database driver database-driver
string · advancedChoices: pdo_sqlite, pdo_pgsql, pdo_mysql
Database host database-host
string · advanced
Database port database-port
string · advanced
Database name database-name
string · advanced
Database username database-user
string · advanced
Database password database-password
secret · advanced
Redis host redis-host
string · advanced
Redis port redis-port
string · advanced
Redis password redis-password
secret · advanced
PHP memory limit php-memory
string · advanced

Save a JSON map of the field IDs you want to change as changes.json. Replace FIELD_ID with an ID from the supported fields above, and use its declared value type. Review the plan and replace REVIEWED_REVISION with the revision it returns.

{
  "FIELD_ID": "YOUR_VALUE"
}
selfhost app --directory ./wallabag config wallabag
selfhost app --directory ./wallabag plan wallabag changes.json
selfhost app --directory ./wallabag apply wallabag changes.json --revision REVIEWED_REVISION

Saved changes need service recreation to become active. Existing interpolated environment values stay under your control in .env or Compose.

App actions

Change user password

Set a selected user password. For a new instance, replace the initial wallabag password before public access.

Username username
stringDefault: "wallabag"Length: 1 to 4096 characters
New password password
secretLength: 12 to 4096 characters

Save the input IDs and selected values in a private action-inputs.json file.

selfhost app --directory ./wallabag action wallabag change-password --inputs action-inputs.json
Create user

Create a new non-administrator account; existing users are not changed.

Username username
stringLength: 1 to 4096 characters
Email email
stringLength: 1 to 4096 characters
Password password
secretLength: 12 to 4096 characters

Save the input IDs and selected values in a private action-inputs.json file.

selfhost app --directory ./wallabag action wallabag create-user --inputs action-inputs.json
Grant administrator role

Grant ROLE_SUPER_ADMIN to the selected existing user. Review the exact username before running.

Username username
stringLength: 1 to 4096 characters

Save the input IDs and selected values in a private action-inputs.json file.

selfhost app --directory ./wallabag action wallabag promote-admin --inputs action-inputs.json
Clear application cache

Clear the production Symfony cache.

selfhost app --directory ./wallabag action wallabag clear-cache
Apply database migrations

Apply the running image database migrations. Back up database and images first.

selfhost app --directory ./wallabag action wallabag migrate-database
List native commands

Inspect the commands supported by the running image.

selfhost app --directory ./wallabag action wallabag list-commands

App configuration reference

Versions and updates

This deployment uses the following images. Existing projects retain their saved recipe and images. A new catalogue version does not silently update them.

  • wallabag: wallabag/wallabag:2.6.14
  • 2.6.14 wallabag/wallabag:2.6.14

    Local SQLite deployment, separate article image volume, native initial password change and user creation, environment changes and persistent recreation passed. No native OIDC integration is advertised.

Review compatibility and back up app data before an update. Choose an image version and review the change.

Keep control of your setup

Selfhost remains optional. Your app runs using ordinary Compose files, its own settings and persistent data. Keep the Compose project name and volumes to preserve storage. Configuration exports and setting backups do not include application data.

Standalone CLI guide · Backups and removal · Wallabag documentation

Built by Obiente. Your services, your configuration.