diff --git a/wallabag_dev/README.md b/wallabag_dev/README.md index d467bf3..1dabcd8 100644 --- a/wallabag_dev/README.md +++ b/wallabag_dev/README.md @@ -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 diff --git a/wallabag_dev/compose.yaml b/wallabag_dev/compose.yaml new file mode 100644 index 0000000..d600c41 --- /dev/null +++ b/wallabag_dev/compose.yaml @@ -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 diff --git a/wallabag_dev/docker-compose.yml b/wallabag_dev/docker-compose.yml deleted file mode 100644 index e2ff361..0000000 --- a/wallabag_dev/docker-compose.yml +++ /dev/null @@ -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: diff --git a/wallabag_dev/sample.env b/wallabag_dev/sample.env index 54ab32c..c79c1b4 100644 --- a/wallabag_dev/sample.env +++ b/wallabag_dev/sample.env @@ -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