1
0
mirror of https://github.com/wallabag/docker synced 2025-12-13 17:56:31 +00:00

43 Commits

Author SHA1 Message Date
Yassine Guedidi
55976e23e5 Merge pull request #436 from wallabag/prepare-2.6.11-release
Prepare 2.6.11 release
2025-04-08 23:09:59 +02:00
Yassine Guedidi
3975a28546 Prepare 2.6.11 release 2025-03-30 06:38:09 +02:00
Kevin Decherf
0e58189b97 Merge pull request #431 from Luensche/patch-1
Update README.md
2025-01-23 20:11:14 +01:00
Björn Engel
2d96e30450 Update README.md
Version in docker-compose.yaml is obsolete.
2025-01-07 21:40:29 +01:00
Kevin Decherf
364b1b3d84 Merge pull request #428 from wallabag/2.6.x
Backport 2.6.10 into master
2024-11-19 21:10:09 +01:00
Jérémy Benoist
d1c4800a3e Merge pull request #427 from wallabag/fix/update-ci
Update CI
2024-11-12 09:22:12 +01:00
Jeremy Benoist
4c3ff8a8ac Update CI
Allow dependabot to keep GA up to date.
2024-11-12 09:03:21 +01:00
Nicolas Lœuillet
c9104abfeb Merge pull request #424 from wallabag/release/2.6.10
Prepare 2.6.10 release
2024-11-03 16:00:52 +01:00
Nicolas Lœuillet
78d6d36e0c Prepare 2.6.10 release 2024-11-03 08:12:24 +01:00
Jérémy Benoist
2a78ed65fe Merge pull request #411 from wallabag/release/2.6.9
Prepare 2.6.9
2024-04-03 11:14:05 +02:00
Jérémy Benoist
cb78d1c98c Prepare 2.6.9
See https://github.com/wallabag/wallabag/releases/tag/2.6.9
2024-04-03 11:00:19 +02:00
Kevin Decherf
19b6080f31 Merge pull request #404 from wallabag/impr/phpini
Update shipped php.ini with php-production.ini from PHP 8.1
2024-03-11 12:51:25 +01:00
Kevin Decherf
85c82d22c4 Update shipped php.ini with php-production.ini from PHP 8.1
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-11 12:46:49 +01:00
Kevin Decherf
2ab5b95caf Merge pull request #405 from wallabag/impr/nginx
Update NGINX timeout to align with max_execution_time
2024-03-11 12:03:26 +01:00
Kevin Decherf
2c4fc77b58 Update NGINX timeout to align with max_execution_time
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-11 11:55:59 +01:00
Kevin Decherf
bffc1412bf Merge pull request #403 from wallabag/impr/memlimit
Add support of PHP memory limit in variables
2024-03-11 11:54:52 +01:00
Kevin Decherf
588c21b192 Add support of PHP memory limit in variables
Supersedes #374

Fixes #124

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-11 11:52:55 +01:00
Kevin Decherf
6f2ec8654e Merge branch 'master' into 2.6.x 2024-03-10 22:03:33 +01:00
Kevin Decherf
4143013553 Merge pull request #402 from wallabag/fix/sqlite
Fix SQLite provisioning
2024-03-10 21:59:54 +01:00
Kevin Decherf
eaf63d2098 Merge pull request #401 from wallabag/impr/doc
doc: change docker-compose healthcheck target
2024-03-10 21:59:31 +01:00
Kevin Decherf
9c6aca3b76 Fix SQLite provisioning
If we use a local folder volume binding, install_wallabag was failing
because of missing file and permission issues.

This reworks the way we initially create the database when it is missing
or empty.

Superseeds #386

Fixes #316 #346

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-10 16:21:31 +01:00
Kevin Decherf
e16d9e4113 doc: change docker-compose healthcheck target
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2024-03-10 16:20:26 +01:00
Kevin Decherf
03d1e3a920 Merge pull request #398 from neilbags/patch-1
Add restart: unless-stopped to example docker-compose
2024-03-10 14:11:08 +01:00
Neil McKenzie
7c9d8a37e0 Add restart: unless-stopped to example docker-compose
Most example docker-compose files include restart: unless-stopped or restart: always. This being absent on Wallabag's example leads to unexpected downtime upon server restart
2024-02-01 08:53:52 +11:00
Jérémy Benoist
bdbf7b909a Merge pull request #393 from wallabag/release/2.6.8
Prepare 2.6.8
2024-01-03 09:33:14 +01:00
Jérémy Benoist
bf62096c0e Prepare 2.6.8 2024-01-03 09:32:44 +01:00
Jérémy Benoist
f59fb4b67a Merge pull request #385 from markusnasholm/nginx_ipv6 2023-12-23 07:40:15 +01:00
Markus Näsholm
c68fc98e51 Update nginx.conf to work with IPv6 2023-10-05 20:20:45 +02:00
Jérémy Benoist
919f82516c Merge pull request #384 from wallabag/release/2.6.7
Prepare 2.6.7
2023-10-02 14:32:24 +02:00
Jérémy Benoist
2515407009 Prepare 2.6.7 2023-10-02 14:30:58 +02:00
Yassine Guedidi
96dd9bc3e3 Merge pull request #362 from yguedidi/build-assets
Use the release archive instead of the git archive
2023-09-27 22:34:42 +02:00
Yassine Guedidi
5bde344da3 Use the release archive instead of the git archive 2023-09-27 20:38:11 +02:00
Jérémy Benoist
36d4bf58db Merge pull request #378 from wallabag/impr/imagick
Use php81-pecl-imagick from default repository
2023-09-12 20:56:40 +02:00
Kevin Decherf
e7b0f9c7f6 Use php81-pecl-imagick from default repository
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2023-09-12 20:01:17 +02:00
Jérémy Benoist
5a426ce3fa Merge pull request #376 from itcbx/master 2023-09-11 07:14:38 +02:00
Chen BingXin
75d1b96cc8 Support for gif.
Add imagick extension to support gif.
2023-09-09 10:05:42 +08:00
Jérémy Benoist
b340aaee0a Merge pull request #371 from wallabag/revert-370-release-265
Revert "Update Dockerfile to release 2.6.5"
2023-08-28 10:38:07 +02:00
Jérémy Benoist
d7e49fbda9 Revert "Update Dockerfile to release 2.6.5" 2023-08-28 10:35:58 +02:00
Nicolas Lœuillet
8a68a267ed Merge pull request #370 from wallabag/release-265
Update Dockerfile to release 2.6.5
2023-08-28 10:29:43 +02:00
Nicolas Lœuillet
4b00b7f383 Update Dockerfile to release 2.6.5 2023-08-28 10:27:16 +02:00
Nicolas Lœuillet
f1e3a0e2ae Merge pull request #357 from wallabag/change-default-fosuser-registration
Change public registration to false by default
2023-08-24 08:00:42 +02:00
Nicolas Lœuillet
c2b7c3bbd7 Fix test 2023-08-24 07:55:21 +02:00
Nicolas Lœuillet
7810ca6255 Change public registration to false by default 2023-08-24 07:55:21 +02:00
11 changed files with 741 additions and 683 deletions

View File

@@ -12,3 +12,10 @@ updates:
versions: versions:
- ">= 3.11.a" - ">= 3.11.a"
- "< 3.12" - "< 3.12"
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 10

View File

@@ -13,16 +13,16 @@ jobs:
contents: read contents: read
steps: steps:
- name: Check out the repo - name: Check out the repo
uses: actions/checkout@v3 uses: actions/checkout@v4
- name: Log in to Docker Hub - name: Log in to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry - name: Log in to the Container registry
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
@@ -30,23 +30,23 @@ jobs:
# Documentation: https://github.com/docker/setup-qemu-action # Documentation: https://github.com/docker/setup-qemu-action
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v2 uses: docker/setup-qemu-action@v3
# Documentation: https://github.com/docker/setup-buildx-action # Documentation: https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v3
- name: Extract metadata (tags, labels) for Docker - name: Extract metadata (tags, labels) for Docker
id: meta id: meta
uses: docker/metadata-action@v4 uses: docker/metadata-action@v5
with: with:
images: | images: |
wallabag/wallabag wallabag/wallabag
ghcr.io/${{ github.repository }} ghcr.io/${{ github.repository }}
- name: Build and push Docker images - name: Build and push Docker images
uses: docker/build-push-action@v3 uses: docker/build-push-action@v6
with: with:
context: . context: .
push: true push: true

View File

@@ -24,17 +24,17 @@ jobs:
steps: steps:
- name: "Checkout" - name: "Checkout"
uses: actions/checkout@v3 uses: actions/checkout@v4
with: with:
fetch-depth: 2 fetch-depth: 2
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v5
with: with:
python-version: 3.11 python-version: 3.11
- name: "Build image" - name: "Build image"
run: docker-compose -f tests/docker-compose.${{ matrix.database }}.yml build run: docker compose -f tests/docker-compose.${{ matrix.database }}.yml build
- name: "Install dependencies" - name: "Install dependencies"
run: pip install pytest pytest-docker requests run: pip install pytest pytest-docker requests
@@ -44,8 +44,8 @@ jobs:
- name: "Get docker logs" - name: "Get docker logs"
if: ${{ always() }} if: ${{ always() }}
run: docker-compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml logs wallabag run: docker compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml logs wallabag
- name: "Cleanup environment" - name: "Cleanup environment"
if: ${{ always() }} if: ${{ always() }}
run: docker-compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml down -v run: docker compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml down -v

View File

@@ -13,7 +13,7 @@ FROM alpine:3.18
COPY --from=builder /go/bin/envsubst /usr/bin/envsubst COPY --from=builder /go/bin/envsubst /usr/bin/envsubst
ARG WALLABAG_VERSION=2.6.6 ARG WALLABAG_VERSION=2.6.11
RUN set -ex \ RUN set -ex \
&& apk add --no-cache \ && apk add --no-cache \
@@ -34,6 +34,7 @@ RUN set -ex \
php81-mbstring \ php81-mbstring \
php81-openssl \ php81-openssl \
php81-pecl-amqp \ php81-pecl-amqp \
php81-pecl-imagick \
php81-pdo_mysql \ php81-pdo_mysql \
php81-pdo_pgsql \ php81-pdo_pgsql \
php81-pdo_sqlite \ php81-pdo_sqlite \
@@ -65,7 +66,7 @@ COPY --from=composer /usr/bin/composer /usr/local/bin/composer
COPY root / COPY root /
RUN set -ex \ RUN set -ex \
&& curl -L -o /tmp/wallabag.tar.gz https://github.com/wallabag/wallabag/archive/$WALLABAG_VERSION.tar.gz \ && curl -L -o /tmp/wallabag.tar.gz https://github.com/wallabag/wallabag/releases/download/$WALLABAG_VERSION/wallabag-$WALLABAG_VERSION.tar.gz \
&& tar xvf /tmp/wallabag.tar.gz -C /tmp \ && tar xvf /tmp/wallabag.tar.gz -C /tmp \
&& mkdir /var/www/wallabag \ && mkdir /var/www/wallabag \
&& mv /tmp/wallabag-*/* /var/www/wallabag/ \ && mv /tmp/wallabag-*/* /var/www/wallabag/ \

View File

@@ -30,7 +30,7 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__MAILER_DSN=...` (defaults to "smtp://127.0.0.1") - `-e SYMFONY__ENV__MAILER_DSN=...` (defaults to "smtp://127.0.0.1")
- `-e SYMFONY__ENV__FROM_EMAIL=...`(defaults to "`wallabag@example.com`", the address wallabag uses for outgoing emails) - `-e SYMFONY__ENV__FROM_EMAIL=...`(defaults to "`wallabag@example.com`", the address wallabag uses for outgoing emails)
- `-e SYMFONY__ENV__TWOFACTOR_SENDER=...` (defaults to "`no-reply@wallabag.org`", the address wallabag uses for two-factor emails) - `-e SYMFONY__ENV__TWOFACTOR_SENDER=...` (defaults to "`no-reply@wallabag.org`", the address wallabag uses for two-factor emails)
- `-e SYMFONY__ENV__FOSUSER_REGISTRATION=...`(defaults to "true", enable or disable public user registration) - `-e SYMFONY__ENV__FOSUSER_REGISTRATION=...`(defaults to "false", enable or disable public user registration)
- `-e SYMFONY__ENV__FOSUSER_CONFIRMATION=...`(defaults to "true", enable or disable registration confirmation) - `-e SYMFONY__ENV__FOSUSER_CONFIRMATION=...`(defaults to "true", enable or disable registration confirmation)
- `-e SYMFONY__ENV__DOMAIN_NAME=...` defaults to "`https://your-wallabag-instance.wallabag.org`", the URL of your wallabag instance) - `-e SYMFONY__ENV__DOMAIN_NAME=...` defaults to "`https://your-wallabag-instance.wallabag.org`", the URL of your wallabag instance)
- `-e SYMFONY__ENV__REDIS_SCHEME=...` (defaults to "tcp", protocol to use to communicate with the target server (tcp, unix, or http)) - `-e SYMFONY__ENV__REDIS_SCHEME=...` (defaults to "tcp", protocol to use to communicate with the target server (tcp, unix, or http))
@@ -41,6 +41,7 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__SENTRY_DSN=...` (defaults to "~", this is the data source name for sentry) - `-e SYMFONY__ENV__SENTRY_DSN=...` (defaults to "~", this is the data source name for sentry)
- `-e POPULATE_DATABASE=...`(defaults to "True". Does the DB has to be populated or is it an existing one) - `-e POPULATE_DATABASE=...`(defaults to "True". Does the DB has to be populated or is it an existing one)
- `-e SYMFONY__ENV__SERVER_NAME=...` (defaults to "Your wallabag instance". Specifies a user-friendly name for the 2FA issuer) - `-e SYMFONY__ENV__SERVER_NAME=...` (defaults to "Your wallabag instance". Specifies a user-friendly name for the 2FA issuer)
- `-e PHP_MEMORY_LIMIT=...` (allows you to change the PHP `memory_limit` value. defaults to 128M, and should be a number and unit, eg. 512K, 128M, 2G, or a number of bytes)
## SQLite ## SQLite
@@ -108,10 +109,10 @@ $ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/con
An example [docker-compose](https://docs.docker.com/compose/) file can be seen below: An example [docker-compose](https://docs.docker.com/compose/) file can be seen below:
``` ```
version: '3'
services: services:
wallabag: wallabag:
image: wallabag/wallabag image: wallabag/wallabag
restart: unless-stopped
environment: environment:
- MYSQL_ROOT_PASSWORD=wallaroot - MYSQL_ROOT_PASSWORD=wallaroot
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
@@ -131,7 +132,7 @@ services:
volumes: volumes:
- /opt/wallabag/images:/var/www/wallabag/web/assets/images - /opt/wallabag/images:/var/www/wallabag/web/assets/images
healthcheck: healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"] test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
interval: 1m interval: 1m
timeout: 3s timeout: 3s
depends_on: depends_on:
@@ -139,6 +140,7 @@ services:
- redis - redis
db: db:
image: mariadb image: mariadb
restart: unless-stopped
environment: environment:
- MYSQL_ROOT_PASSWORD=wallaroot - MYSQL_ROOT_PASSWORD=wallaroot
volumes: volumes:
@@ -149,6 +151,7 @@ services:
timeout: 3s timeout: 3s
redis: redis:
image: redis:alpine image: redis:alpine
restart: unless-stopped
healthcheck: healthcheck:
test: ["CMD", "redis-cli", "ping"] test: ["CMD", "redis-cli", "ping"]
interval: 20s interval: 20s

View File

@@ -23,9 +23,12 @@ install_wallabag() {
provisioner() { provisioner() {
SYMFONY__ENV__DATABASE_DRIVER=${SYMFONY__ENV__DATABASE_DRIVER:-pdo_sqlite} SYMFONY__ENV__DATABASE_DRIVER=${SYMFONY__ENV__DATABASE_DRIVER:-pdo_sqlite}
POPULATE_DATABASE=${POPULATE_DATABASE:-True} POPULATE_DATABASE=${POPULATE_DATABASE:-True}
SQLITE_DB_DIR="/var/www/wallabag/data/db"
SQLITE_DB_FILEPATH="$SQLITE_DB_DIR/wallabag.sqlite"
# Replace environment variables # Replace environment variables
envsubst < /etc/wallabag/parameters.template.yml > app/config/parameters.yml envsubst < /etc/wallabag/parameters.template.yml > app/config/parameters.yml
envsubst < /etc/wallabag/php-wallabag.template.ini > /etc/php81/conf.d/50_wallabag.ini
# Wait for external database # Wait for external database
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_mysql" ] || [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_pgsql" ] ; then if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_mysql" ] || [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_pgsql" ] ; then
@@ -33,10 +36,17 @@ provisioner() {
fi fi
# Configure SQLite database # Configure SQLite database
SQLITE_FILE_SIZE=$(wc -c "/var/www/wallabag/data/db/wallabag.sqlite" | awk '{print $1}') if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ]; then
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ] && ([ ! -f "/var/www/wallabag/data/db/wallabag.sqlite" ] || [ "$SQLITE_FILE_SIZE" = 0 ]) ; then # mkdir and chown are mandatory for local folder binding
echo "Configuring the SQLite database ..." if [ ! -f "$SQLITE_DB_FILEPATH" ]; then
install_wallabag mkdir -p "$SQLITE_DB_DIR"
chown nobody: "$SQLITE_DB_DIR"
fi
if [ ! -s "$SQLITE_DB_FILEPATH" ]; then
echo "Configuring the SQLite database ..."
install_wallabag
fi
fi fi
# Configure MySQL / MariaDB database # Configure MySQL / MariaDB database

View File

@@ -36,6 +36,7 @@ http {
server { server {
listen 80; listen 80;
listen [::0]:80;
server_name _; server_name _;
root /var/www/wallabag/web; root /var/www/wallabag/web;
@@ -57,6 +58,7 @@ http {
# for more information). # for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_read_timeout 300s;
# Prevents URIs that include the front controller. This will 404: # Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path # http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this # Remove the internal directive to allow URIs like this

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@ parameters:
twofactor_sender: ${SYMFONY__ENV__TWOFACTOR_SENDER:-no-reply@wallabag.org} twofactor_sender: ${SYMFONY__ENV__TWOFACTOR_SENDER:-no-reply@wallabag.org}
# fosuser stuff # fosuser stuff
fosuser_registration: ${SYMFONY__ENV__FOSUSER_REGISTRATION:-true} fosuser_registration: ${SYMFONY__ENV__FOSUSER_REGISTRATION:-false}
fosuser_confirmation: ${SYMFONY__ENV__FOSUSER_CONFIRMATION:-true} fosuser_confirmation: ${SYMFONY__ENV__FOSUSER_CONFIRMATION:-true}
# how long the access token should live in seconds for the API # how long the access token should live in seconds for the API

View File

@@ -0,0 +1 @@
memory_limit = ${PHP_MEMORY_LIMIT:-128M}

View File

@@ -28,7 +28,7 @@ def docker_cleanup():
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def docker_compose_command() -> str: def docker_compose_command() -> str:
return "docker-compose" return "docker compose"
@pytest.fixture(scope="session") @pytest.fixture(scope="session")
def docker_compose_file(pytestconfig, database): def docker_compose_file(pytestconfig, database):
@@ -52,7 +52,6 @@ def test_accessing_login_page(wallabag_service):
assert r.status_code == 200 assert r.status_code == 200
assert 'Log in' in r.text assert 'Log in' in r.text
assert 'Password' in r.text assert 'Password' in r.text
assert 'Register' in r.text
assert 'Username' in r.text assert 'Username' in r.text