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"
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 startNo 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.jsonCreate 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.jsonGrant 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.jsonClear application cache
Clear the production Symfony cache.
selfhost app --directory ./wallabag action wallabag clear-cacheApply database migrations
Apply the running image database migrations. Back up database and images first.
selfhost app --directory ./wallabag action wallabag migrate-databaseList native commands
Inspect the commands supported by the running image.
selfhost app --directory ./wallabag action wallabag list-commandsVersions 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.14Local 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