refactor: rewrite wallabag_dev to match template conventions

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
code
2026-07-15 02:39:22 +00:00
co-authored by Claude Fable 5
parent b542905f31
commit 66938e6656
4 changed files with 142 additions and 48 deletions
+72 -8
View File
@@ -1,15 +1,79 @@
# Wallabag
This app allows you to save websites, tag them and access them through an android app, which is accessible offline (after sync).
## Overview
Docker Hub: https://hub.docker.com/r/wallabag/wallabag
Project:
Docker Compose Example: https://github.com/wallabag/docker
Proxy Port: 80
Wallabag is a self-hosted read-it-later application: save web pages,
tag them, and read them later (including offline via the Android/iOS
apps after sync). This stack runs Wallabag with a MariaDB database.
## Project Details
- **Project Repository:** [github.com/wallabag/wallabag](https://github.com/wallabag/wallabag)
- **Container Image:** [Docker Hub](https://hub.docker.com/r/wallabag/wallabag)
- **Compose Example:** [github.com/wallabag/docker](https://github.com/wallabag/docker)
- **Documentation:** [doc.wallabag.org](https://doc.wallabag.org/)
- **Reverse Proxy Port:** `80`
## Getting Started
1. Copy `sample.env` and set `WALLABAG_DOMAIN` and the database
passwords
2. Start the containers: `docker compose up -d` (first start runs the
database install and can take a minute or two)
3. Open http://localhost:8082 in your browser and sign in with the
default `wallabag` / `wallabag` account — change its password
immediately
## Environment Variable Notes
WALLABAG_DOMAIN public base URL; must match how users reach the
site or logins and asset links break
WALLABAG_DB_NAME / WALLABAG_DB_USER / WALLABAG_DB_PASSWORD
database name and credentials, shared by both services
WALLABAG_MYSQL_ROOT_PASSWORD MariaDB root password; the wallabag
container also needs it to create the database on first start
WALLABAG_MAILER_DSN / WALLABAG_FROM_EMAIL optional SMTP settings
for password-reset and notification emails
WALLABAG_PORT host port for the web UI (default 8082)
See the [parameter documentation](https://doc.wallabag.org/en/admin/parameters.html)
for the full list of `SYMFONY__ENV__` settings.
## Volume Notes
- `/var/www/wallabag/web/assets/images` — saved article images;
stored at `${VOL_PATH:-/data}/wallabag/images` on the host
- `/var/lib/mysql` — MariaDB data; stored at
`${VOL_PATH:-/data}/wallabag/db` on the host
## Network Notes
Requires proxy network. The database is only attached to the stack's
`internal` network.
## Docker Run
Not recommended — Wallabag needs its MariaDB companion. Use the
compose file.
## Additional Notes / Gotchas
- This is a `_dev` stack — experimental, not yet production-ready.
- The default login after install is `wallabag` / `wallabag`.
- `SYMFONY__ENV__` variables are baked into Wallabag's config on
startup; after changing one, restart the container.
## References
* [Geek Cookbook](https://geek-cookbook.funkypenguin.co.nz/recipes/wallabag/)
* [Environment Parameters](https://doc.wallabag.org/en/admin/parameters.html)
- [Geek Cookbook](https://geek-cookbook.funkypenguin.co.nz/recipes/wallabag/)
## Dockhand Stack, Deploy from Git
- Cookbooks Repository
- stackname: wallabag_dev
- Compose file path: wallabag_dev/compose.yaml
- Additional env file (optional): wallabag_dev/sample.env
Then "Load" wallabag_dev/sample.env into the Environment variables in dockhand.
Create the Stack
+54
View File
@@ -0,0 +1,54 @@
# Wallabag Read-It-Later
services:
wallabag:
image: ${WALLABAG_IMAGE:-wallabag/wallabag:latest}
restart: ${WALLABAG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/wallabag/images:/var/www/wallabag/web/assets/images
environment:
- TZ=${TZ:-America/Vancouver}
- MYSQL_ROOT_PASSWORD=${WALLABAG_MYSQL_ROOT_PASSWORD:-changeme-root}
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
- SYMFONY__ENV__DATABASE_HOST=wallabag-db
- SYMFONY__ENV__DATABASE_PORT=3306
- SYMFONY__ENV__DATABASE_NAME=${WALLABAG_DB_NAME:-wallabag}
- SYMFONY__ENV__DATABASE_USER=${WALLABAG_DB_USER:-wallabag}
- SYMFONY__ENV__DATABASE_PASSWORD=${WALLABAG_DB_PASSWORD:-changeme}
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__DATABASE_TABLE_PREFIX=wallabag_
- SYMFONY__ENV__MAILER_DSN=${WALLABAG_MAILER_DSN:-smtp://127.0.0.1}
- SYMFONY__ENV__FROM_EMAIL=${WALLABAG_FROM_EMAIL:-wallabag@example.com}
- SYMFONY__ENV__DOMAIN_NAME=${WALLABAG_DOMAIN:-http://localhost:8082}
- SYMFONY__ENV__SERVER_NAME=${WALLABAG_SERVER_NAME:-wallabag}
ports:
- "${WALLABAG_PORT:-8082}:80"
networks:
- proxy
- internal
depends_on:
- wallabag-db
wallabag-db:
image: ${MARIADB_IMAGE:-mariadb:11}
restart: ${WALLABAG_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/wallabag/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${WALLABAG_MYSQL_ROOT_PASSWORD:-changeme-root}
networks:
- internal
networks:
proxy:
external: true
internal:
driver: bridge
-27
View File
@@ -1,27 +0,0 @@
services:
wallabag:
image: ${WALLABAG_IMAGE:-wallabag/wallabag:latest}
restart: unless-stopped
environment:
- SYMFONY__ENV__DATABASE_DRIVER=${WALLABAG_DB_DRIVER:-pdo_mysql}
- SYMFONY__ENV__DATABASE_HOST=${WALLABAG_DB_HOST:-wallabag-db}
- SYMFONY__ENV__DATABASE_PORT=${WALLABAG_DB_PORT:-3306}
- SYMFONY__ENV__DATABASE_NAME=${WALLABAG_DB_NAME:-wallabag}
- SYMFONY__ENV__DATABASE_USER=${WALLABAG_DB_USER:-wallabag}
- SYMFONY__ENV__DATABASE_PASSWORD=${WALLABAG_DB_PASS:-wallapass}
- SYMFONY__ENV__DATABASE_CHARSET=${WALLABAG_DB_CHARSET:-utf8mb4}
- SYMFONY__ENV__DATABASE_TABLE_PREFIX=${WALLABAG_DB_PREFIX:-wallabag_}
- SYMFONY__ENV__MAILER_DSN=${WALLABAG_MAILER_DSN:-smtp://127.0.0.1}
- SYMFONY__ENV__FROM_EMAIL=${WALLABAG_FROM_EMAIL:-wallabag@example.com}
- SYMFONY__ENV__DOMAIN_NAME=${WALLABAG_DOMAIN:-https://your-wallabag-instance.wallabag.org}
- SYMFONY__ENV__SERVER_NAME=${WALLABAG_SERVER:-Your wallabag instance}
- TZ=${WALLABAG_TZ:-America/Vancouver}
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
interval: 1m
timeout: 3s
volumes:
- wallabag-data:/var/www/wallabag/web/assets/images
volumes:
wallabag-data:
+16 -13
View File
@@ -1,17 +1,20 @@
# Global
WALLABAG_TZ=America/Vancouver
# Wallabag
WALLABAG_IMAGE=wallabag/wallabag:latest
WALLABAG_DB_DRIVER=pdo_mysql
WALLABAG_DB_HOST=wallabag-db
WALLABAG_DB_PORT=3306
MARIADB_IMAGE=mariadb:11
WALLABAG_RESTART=unless-stopped
VOL_PATH=/data
WALLABAG_PORT=8082
TZ=America/Vancouver
# Public URL used in emails and generated links (set to your proxy domain)
WALLABAG_DOMAIN=http://localhost:8082
WALLABAG_SERVER_NAME=wallabag
# Database
WALLABAG_DB_NAME=wallabag
WALLABAG_DB_USER=wallabag
WALLABAG_DB_PASS=wallapass
WALLABAG_DB_CHARSET=utf8mb4
WALLABAG_DB_PREFIX=wallabag_
WALLABAG_DB_PASSWORD=changeme
WALLABAG_MYSQL_ROOT_PASSWORD=changeme-root
# Mail (optional)
WALLABAG_MAILER_DSN=smtp://127.0.0.1
WALLABAG_FROM_WEMAIL=wallabag@example.com
WALLABAG_DOMAIN=https://your-wallabag-instance.wallabag.org
WALLABAG_SERVER=Your wallabag instance
WALLABAG_FROM_EMAIL=wallabag@example.com