1
0
mirror of https://github.com/wallabag/docker synced 2025-12-13 09:46:27 +00:00

73 Commits
2.5.3 ... 2.6.9

Author SHA1 Message Date
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
9241c7d799 Merge pull request #375 from wallabag/release/2.6.6
Prepare 2.6.6
2023-09-07 09:29:54 +02:00
Jérémy Benoist
18d9f742fb Prepare 2.6.6 2023-09-07 09:29:14 +02:00
Jérémy Benoist
b5d9ba681c Merge pull request #372 from wallabag/release/2.6.5
2.6.5
2023-08-28 10:38:22 +02: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
746c6e682b 2.6.5 2023-08-28 10:36:30 +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
Nicolas Lœuillet
4f406f1f1f Merge pull request #365 from wallabag/nicosomb-patch-1
Update Dockerfile for 2.6.4
2023-08-22 15:50:15 +02:00
Nicolas Lœuillet
7edde03f39 Update Dockerfile for 2.6.4 2023-08-22 15:45:19 +02:00
Nicolas Lœuillet
4b4eb85eb1 Merge pull request #363 from wallabag/nicosomb-patch-1
Update Dockerfile for wallabag 2.6.3
2023-08-21 12:18:25 +02:00
Jérémy Benoist
7ac0c31dc1 Merge pull request #360 from yguedidi/get-composer-from-official-image
Get composer from official image
2023-08-21 12:12:17 +02:00
Nicolas Lœuillet
854d1027b8 Update Dockerfile for wallabag 2.6.3 2023-08-21 12:07:33 +02:00
Yassine Guedidi
f4517471db Get composer from official image 2023-08-15 18:21:29 +02:00
Nicolas Lœuillet
abb6a98924 Merge pull request #361 from yguedidi/rename-root_dir-to-project_dir
Rename root_dir to project_dir
2023-08-14 07:52:51 +02:00
Yassine Guedidi
624616cd9e Rename root_dir to project_dir 2023-08-13 11:48:06 +02:00
Jérémy Benoist
d6ce0cea67 Merge pull request #344 from STaRDoGG/patch-1
Change default workdir
2023-07-24 15:31:15 +02:00
J. Scott Elblein
673dea7800 Merge branch 'master' into patch-1 2023-07-24 07:56:12 -05:00
Kevin Decherf
d21d9c6260 Merge pull request #355 from wallabag/update-readme
Update README
2023-07-24 13:42:23 +02:00
Nicolas Lœuillet
886535f767 Update Dockerfile for wallabag 2.6.2 2023-07-24 13:15:37 +02:00
Nicolas Lœuillet
1ad213de86 Update README 2023-07-24 13:11:12 +02:00
Jérémy Benoist
3538a3c8d7 Merge pull request #345 from STaRDoGG/patch-2
Add wallabag/bin to PATH
2023-07-24 10:32:36 +02:00
Jérémy Benoist
92fcba3557 Merge pull request #354 from wallabag/alpine318
Update base alpine to 3.18
2023-07-24 10:31:52 +02:00
Kevin Decherf
98ed4730b3 drop: run tests on master
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2023-07-22 18:34:12 +02:00
Kevin Decherf
c0c280b606 Update base alpine to 3.18
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2023-07-22 18:32:38 +02:00
Kevin Decherf
5790e0d029 Merge pull request #353 from wallabag/fix/logs
tests: always run ci steps for logs and cleanup
2023-07-22 18:31:10 +02:00
Nicolas Lœuillet
e61cbdb025 Merge pull request #352 from wallabag/nicosomb-patch-1
Remove 2fa parameter
2023-07-22 17:55:29 +02:00
Kevin Decherf
c12a84557a tests: always run ci steps for logs and cleanup
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2023-07-22 17:46:33 +02:00
Nicolas Lœuillet
835e9ad84b Remove 2fa parameter 2023-07-22 17:34:17 +02:00
Kevin Decherf
d5aac3e6ed Merge pull request #351 from wallabag/impr/pytest
tests: move docker service start in pytest
2023-07-22 17:33:32 +02:00
Kevin Decherf
e38f9adb8b tests: move docker service start in pytest
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2023-07-22 17:17:11 +02:00
J. Scott Elblein
b6db602ece Update Dockerfile
Add Wallabag bin path to environment path so it's commands (i.e console cache:clear --env=prod) can be run from anywhere.
2023-06-28 20:09:05 -05:00
J. Scott Elblein
659a8f4d3f Update Dockerfile
Sets the workdir to navigate to the wallabag folder when entering.

Makes it much easier to not have to always drill all the way down each time you first shell in.
2023-06-28 12:27:54 -05:00
Jérémy Benoist
62d1948e15 Merge pull request #336 from wallabag/nicosomb-patch-1
2.6.1
2023-06-21 13:45:25 +02:00
Jeremy Benoist
a025d243d1 Fix mariadb launch 2023-06-21 13:39:51 +02:00
Jeremy Benoist
fb13655def Handle mailer_dsn 2023-06-21 10:45:24 +02:00
Jeremy Benoist
de07417e8f Update domain name 2023-06-21 09:56:30 +02:00
Jérémy Benoist
b34d71355d Relax composer
We don't need a fixed version of Composer now (as we updated most packages on wallabag)
2023-06-21 09:26:11 +02:00
Nicolas Lœuillet
8bc63c22ec Update Dockerfile 2023-06-21 07:27:14 +02:00
Nicolas Lœuillet
676572b8fe Update dependencies 2023-06-20 18:16:17 +02:00
Nicolas Lœuillet
d51cc9fe33 Update Dockerfile to 2.6.0 2023-06-20 18:07:13 +02:00
Jérémy Benoist
5c52eee713 Merge pull request #319 from wallabag/release/2.5.4
2.5.4
2023-02-07 22:28:01 +01:00
Jérémy Benoist
e2717ea9a9 2.5.4
See https://github.com/wallabag/wallabag/releases/tag/2.5.4
2023-02-07 22:25:16 +01:00
12 changed files with 806 additions and 714 deletions

View File

@@ -36,17 +36,16 @@ jobs:
- name: "Build image"
run: docker-compose -f tests/docker-compose.${{ matrix.database }}.yml build
- name: "Run image"
run: docker-compose -f tests/docker-compose.${{ matrix.database }}.yml up -d
- name: "Install dependencies"
run: pip install pytest requests
- name: "Check running instance"
run: docker ps
- name: "Wait 60s"
run: sleep 60
run: pip install pytest pytest-docker requests
- name: "Run tests"
run: py.test tests/
run: py.test --database=${{ matrix.database }} tests/
- name: "Get docker logs"
if: ${{ always() }}
run: docker-compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml logs wallabag
- name: "Cleanup environment"
if: ${{ always() }}
run: docker-compose -p "wallabag_${{ matrix.database }}" -f tests/docker-compose.${{ matrix.database }}.yml down -v

View File

@@ -1,3 +1,7 @@
ARG COMPOSER_VERSION=2.5.8
FROM composer:$COMPOSER_VERSION as composer
FROM golang:alpine as builder
# envsubst from gettext can not replace env vars with default values
@@ -5,11 +9,11 @@ FROM golang:alpine as builder
# flag -ldflags "-s -w" produces a smaller executable
RUN go install -ldflags "-s -w" -v github.com/a8m/envsubst/cmd/envsubst@v1.3.0
FROM alpine:3.17
FROM alpine:3.18
COPY --from=builder /go/bin/envsubst /usr/bin/envsubst
ARG WALLABAG_VERSION=2.5.3
ARG WALLABAG_VERSION=2.6.9
RUN set -ex \
&& apk add --no-cache \
@@ -30,6 +34,7 @@ RUN set -ex \
php81-mbstring \
php81-openssl \
php81-pecl-amqp \
php81-pecl-imagick \
php81-pdo_mysql \
php81-pdo_pgsql \
php81-pdo_sqlite \
@@ -43,6 +48,7 @@ RUN set -ex \
php81-xmlreader \
php81-tidy \
php81-intl \
php81-sodium \
mariadb-client \
postgresql14-client \
rabbitmq-c \
@@ -53,16 +59,14 @@ RUN set -ex \
&& ln -sf /usr/sbin/php-fpm81 /usr/sbin/php-fpm \
&& rm -rf /var/cache/apk/* \
&& ln -sf /dev/stdout /var/log/nginx/access.log \
&& ln -sf /dev/stderr /var/log/nginx/error.log \
&& curl -s https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/composer \
&& composer selfupdate 2.2.18 \
&& rm -rf /root/.composer/*
&& ln -sf /dev/stderr /var/log/nginx/error.log
COPY --from=composer /usr/bin/composer /usr/local/bin/composer
COPY root /
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 \
&& mkdir /var/www/wallabag \
&& mv /tmp/wallabag-*/* /var/www/wallabag/ \
@@ -74,6 +78,11 @@ RUN set -ex \
&& rm -rf /root/.composer/* /var/www/wallabag/var/cache/* /var/www/wallabag/var/logs/* /var/www/wallabag/var/sessions/* \
&& chown -R nobody:nobody /var/www/wallabag
ENV PATH="${PATH}:/var/www/wallabag/bin"
# Set console entry path
WORKDIR /var/www/wallabag
EXPOSE 80
ENTRYPOINT ["/entrypoint.sh"]
CMD ["wallabag"]

View File

@@ -27,15 +27,12 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__DATABASE_TABLE_PREFIX=...` (defaults to "wallabag_". Specifies the prefix for each database table)
- `-e SYMFONY__ENV__SECRET=...` (defaults to "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv")
- `-e SYMFONY__ENV__LOCALE=...` (default to en)
- `-e SYMFONY__ENV__MAILER_HOST=...` (defaults to "127.0.0.1", the SMTP host)
- `-e SYMFONY__ENV__MAILER_USER=...` (defaults to "~", the SMTP user)
- `-e SYMFONY__ENV__MAILER_PASSWORD=...`(defaults to "~", the SMTP password)
- `-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__TWOFACTOR_AUTH=...` (defaults to "true", enable or disable two-factor authentication)
- `-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__DOMAIN_NAME=...` defaults to "`https://your-wallabag-url-instance.com`", 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_HOST=...` (defaults to "redis", IP or hostname of the target server)
- `-e SYMFONY__ENV__REDIS_PORT=...` (defaults to "6379", port of the target host)
@@ -44,6 +41,7 @@ Default login is `wallabag:wallabag`.
- `-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 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
@@ -115,6 +113,7 @@ version: '3'
services:
wallabag:
image: wallabag/wallabag
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
@@ -125,18 +124,16 @@ services:
- SYMFONY__ENV__DATABASE_PASSWORD=wallapass
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
- SYMFONY__ENV__MAILER_HOST=127.0.0.1
- SYMFONY__ENV__MAILER_USER=~
- SYMFONY__ENV__MAILER_PASSWORD=~
- SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
- SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
- SYMFONY__ENV__DOMAIN_NAME=https://your-wallabag-url-instance.com
- SYMFONY__ENV__DOMAIN_NAME=https://your-wallabag-instance.wallabag.org
- SYMFONY__ENV__SERVER_NAME="Your wallabag instance"
ports:
- "80"
volumes:
- /opt/wallabag/images:/var/www/wallabag/web/assets/images
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
timeout: 3s
depends_on:
@@ -144,6 +141,7 @@ services:
- redis
db:
image: mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
volumes:
@@ -154,6 +152,7 @@ services:
timeout: 3s
redis:
image: redis:alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 20s

4
conftest.py Normal file
View File

@@ -0,0 +1,4 @@
import pytest
def pytest_addoption(parser):
parser.addoption("--database", action="store", default="default")

View File

@@ -23,9 +23,12 @@ install_wallabag() {
provisioner() {
SYMFONY__ENV__DATABASE_DRIVER=${SYMFONY__ENV__DATABASE_DRIVER:-pdo_sqlite}
POPULATE_DATABASE=${POPULATE_DATABASE:-True}
SQLITE_DB_DIR="/var/www/wallabag/data/db"
SQLITE_DB_FILEPATH="$SQLITE_DB_DIR/wallabag.sqlite"
# Replace environment variables
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
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_mysql" ] || [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_pgsql" ] ; then
@@ -33,9 +36,17 @@ provisioner() {
fi
# Configure SQLite database
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ] && [ ! -f "/var/www/wallabag/data/db/wallabag.sqlite" ] ; then
echo "Configuring the SQLite database ..."
install_wallabag
if [ "$SYMFONY__ENV__DATABASE_DRIVER" = "pdo_sqlite" ]; then
# mkdir and chown are mandatory for local folder binding
if [ ! -f "$SQLITE_DB_FILEPATH" ]; then
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
# Configure MySQL / MariaDB database
@@ -87,9 +98,9 @@ provisioner() {
}
if [ "$COMMAND_ARG1" = "wallabag" ]; then
echo "Starting Wallabag ..."
echo "Starting wallabag ..."
provisioner
echo "Wallabag is ready!"
echo "wallabag is ready!"
exec s6-svscan /etc/s6/
fi

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -5,20 +5,14 @@ parameters:
database_name: ${SYMFONY__ENV__DATABASE_NAME:-symfony}
database_user: ${SYMFONY__ENV__DATABASE_USER:-root}
database_password: ${SYMFONY__ENV__DATABASE_PASSWORD:-~}
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
database_path: "%kernel.project_dir%/data/db/wallabag.sqlite"
database_table_prefix: ${SYMFONY__ENV__DATABASE_TABLE_PREFIX:-wallabag_}
database_socket: null
database_charset: ${SYMFONY__ENV__DATABASE_CHARSET:-utf8}
domain_name: ${SYMFONY__ENV__DOMAIN_NAME:-https://your-wallabag-url-instance.com}
domain_name: ${SYMFONY__ENV__DOMAIN_NAME:-https://your-wallabag-instance.wallabag.org}
mailer_transport: ${SYMFONY__ENV__MAILER_TRANSPORT:-smtp}
mailer_user: ${SYMFONY__ENV__MAILER_USER:-~}
mailer_password: ${SYMFONY__ENV__MAILER_PASSWORD:-~}
mailer_host: ${SYMFONY__ENV__MAILER_HOST:-127.0.0.1}
mailer_port: ${SYMFONY__ENV__MAILER_PORT:-25}
mailer_encryption: ${SYMFONY__ENV__MAILER_ENCRYPTION:-~}
mailer_auth_mode: ${SYMFONY__ENV__MAILER_AUTH_MODE:-~}
mailer_dsn: ${SYMFONY__ENV__MAILER_DSN:-smtp://127.0.0.1}
locale: ${SYMFONY__ENV__LOCALE:-en}
@@ -26,11 +20,10 @@ parameters:
secret: ${SYMFONY__ENV__SECRET:-ovmpmAWXRCabNlMgzlzFXDYmCFfzGv}
# two factor stuff
twofactor_auth: ${SYMFONY__ENV__TWOFACTOR_AUTH:-true}
twofactor_sender: ${SYMFONY__ENV__TWOFACTOR_SENDER:-no-reply@wallabag.org}
# fosuser stuff
fosuser_registration: ${SYMFONY__ENV__FOSUSER_REGISTRATION:-true}
fosuser_registration: ${SYMFONY__ENV__FOSUSER_REGISTRATION:-false}
fosuser_confirmation: ${SYMFONY__ENV__FOSUSER_CONFIRMATION:-true}
# 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

@@ -18,6 +18,6 @@ services:
- "127.0.0.1:80:80"
db:
image: mariadb
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --character-set-client-handshake=FALSE
command: mariadbd --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --character-set-client-handshake=FALSE
environment:
- MYSQL_ROOT_PASSWORD=wallaroot

View File

@@ -11,7 +11,7 @@ services:
- SYMFONY__ENV__DATABASE_PORT=~
- SYMFONY__ENV__DATABASE_NAME=symfony
- SYMFONY__ENV__DATABASE_USER=root
- SYMFONY__ENV_DATABASE_PASSWORD=~
- SYMFONY__ENV__DATABASE_PASSWORD=~
- SYMFONY__ENV__SECRET=F00B4R
ports:
- "127.0.0.1:80:80"

View File

@@ -1,24 +1,63 @@
import pytest
import re
import requests
import os
from requests.exceptions import ConnectionError
URL = 'http://127.0.0.1:80'
@pytest.fixture(scope="session")
def database(pytestconfig):
return pytestconfig.getoption("database")
def is_responsive(url):
try:
response = requests.get(url)
if response.status_code == 200:
return True
except ConnectionError:
return False
def test_accessing_login_page():
r = requests.get(URL, allow_redirects=True)
@pytest.fixture(scope="session")
def docker_compose_project_name(database):
return "wallabag_{}".format(database)
@pytest.fixture(scope="session")
def docker_cleanup():
"""Disable docker cleanup at the end of tests to get logs outside of pytest"""
return False
@pytest.fixture(scope="session")
def docker_compose_command() -> str:
return "docker-compose"
@pytest.fixture(scope="session")
def docker_compose_file(pytestconfig, database):
return os.path.join(str(pytestconfig.rootdir), "tests/", "docker-compose.{}.yml".format(database))
@pytest.fixture(scope="session")
def wallabag_service(docker_ip, docker_services):
"""Ensure that wallabag service is up and responsive"""
# `port_for` takes a container port and returns the corresponding host port
port = docker_services.port_for("wallabag", 80)
url = "http://{}:{}".format(docker_ip, port)
docker_services.wait_until_responsive(
timeout=60.0, pause=0.5, check=lambda: is_responsive(url)
)
return url
def test_accessing_login_page(wallabag_service):
r = requests.get(wallabag_service, allow_redirects=True)
assert r.status_code == 200
assert 'Log in' in r.text
assert 'Password' in r.text
assert 'Register' in r.text
assert 'Username' in r.text
def test_logging_in():
def test_logging_in(wallabag_service):
client = requests.session()
r = client.get(URL, allow_redirects=True)
r = client.get(wallabag_service, allow_redirects=True)
jar = r.cookies
# get csrf token
@@ -39,7 +78,7 @@ def test_logging_in():
'_csrf_token': csrf
}
r = client.post(URL + '/login_check', cookies=jar, data=data)
r = client.post(wallabag_service + '/login_check', cookies=jar, data=data)
assert r.status_code == 200
assert '/unread/list' in r.text
assert '/starred/list' in r.text