Compare commits

...

24 Commits

Author SHA1 Message Date
1d42727517 Merge pull request #287 from wallabag/release/2.5.0
2.5.0
2022-05-21 21:36:55 +02:00
939b644424 Update alpine image to 3.15
Also use latest Composer 2.2
2022-05-21 21:27:30 +02:00
3f62284368 2.5.0 2022-05-21 21:11:57 +02:00
7a99f1ef73 Merge pull request #284 from pgrunm/master 2022-05-20 21:08:56 +02:00
537b502424 Update build.yml to build ARM docker images.
This commit allows Github actions to automatically create and publish Docker images for armv7 and arm64 architecture (e. g. Raspberry Pi).
2022-04-29 13:58:21 +02:00
bfd3fe3d55 Merge pull request #282 from wallabag/fix/composer-2.3 2022-04-04 07:15:20 +02:00
ed49d39db4 wallabag isn't compatible with Composer 2.3
Install the latest known 2.2 version instead.
2022-04-01 16:20:35 +02:00
983bfe094b Remove forced composer v1 2022-02-15 09:29:16 +01:00
37216dfd69 Publish Docker images 2022-02-14 19:52:08 +01:00
13862eca8f Merge pull request #280 from wallabag/2.4.3
2.4.3
2022-02-14 17:04:37 +01:00
55b4290605 2.4.3 2022-02-14 17:00:55 +01:00
7873719099 Merge pull request #254 from sethsimmons/patch-1
Add healthcheck and dependencies to docker-compose example
2021-07-02 17:30:24 +02:00
05d9d45a54 Add healthcheck and dependencies to docker-compose example
This PR adds in a health check that can used for reporting, monitoring, or autohealing, as well as a `depends_on` statement that ensures wallabag comes up only once the DB and Redis are up.

Update timeout/retries to be more sane
2021-07-02 11:14:24 -04:00
13818bd90e 2.4.2 2021-03-16 12:17:19 +01:00
1b5fe1a934 Add missing parameter server_name for 2.4.1 2021-01-05 15:09:39 +01:00
9d44149e4d 2.4.1 2021-01-05 15:00:15 +01:00
2b99017b25 Merge pull request #239 from wallabag/otp-issuer 2021-01-04 06:47:50 +01:00
a85e592e6e Merge pull request #240 from wallabag/update-readme 2021-01-04 06:47:18 +01:00
f4a8e5eadc Update README to include SYMFONY__ENV__DOMAIN_NAME in the quickstart
The default value of this variable leads to a lot of issues with assets
when new comers try wallabag. This change should reduce the occurrence of
this kind of issue.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2020-12-31 18:53:26 +01:00
f460f40b8c Add new parameter server_name for 2FA issuer
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2020-12-31 18:44:50 +01:00
58c3977a3c Merge pull request #238 from hoh/patch-1 2020-12-29 06:15:45 +01:00
aede9b9c98 Fix upgrading to 2.4 requires make and bash
Running `make update` requires make and bash to be installed.

Closes #237
2020-12-29 00:20:52 +01:00
749587fb4f Merge pull request #228 from wallabag/fix/env-prod-cli-parameter
Fix `-e=prod` parameter
2020-12-10 20:11:20 +01:00
6839862b04 Fix -e=prod parameter 2020-12-10 17:31:31 +01:00
7 changed files with 95 additions and 12 deletions

57
.github/workflows/publish.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: Publish Docker image
on:
release:
types: [published]
jobs:
push_to_registries:
name: Push Docker image to multiple registries
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# Documentation: https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
# Documentation: https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v3
with:
images: |
wallabag/wallabag
ghcr.io/${{ github.repository }}
- name: Build and push Docker images
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# Support for different platforms, see here:
# https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#-set-the-target-platforms-for-the-build---platform
platforms: linux/amd64,linux/arm64,linux/arm/v7

View File

@ -1,8 +1,8 @@
FROM alpine:3.12
FROM alpine:3.15
LABEL maintainer "Marvin Steadfast <marvin@xsteadfastx.org>"
ARG WALLABAG_VERSION=2.4.0
ARG WALLABAG_VERSION=2.5.0
RUN apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
@ -51,12 +51,14 @@ RUN set -ex \
s6 \
tar \
tzdata \
make \
bash \
&& 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 --1 \
&& composer selfupdate 2.2.12 \
&& git clone --branch $WALLABAG_VERSION --depth 1 https://github.com/wallabag/wallabag.git /var/www/wallabag
COPY root /

View File

@ -42,19 +42,20 @@ Default login is `wallabag:wallabag`.
- `-e SYMFONY__ENV__REDIS_PASSWORD=...` (defaults to "~", this is the password defined in the Redis server configuration)
- `-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)
## SQLite
The easiest way to start wallabag is to use the SQLite backend. You can spin that up with
```
$ docker run -p 80:80 wallabag/wallabag
$ docker run -p 80:80 -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" wallabag/wallabag
```
and point your browser to `http://localhost:80`. For persistent storage you should start the container with a volume:
and point your browser to `http://localhost`. For persistent storage you should start the container with a volume:
```
$ docker run -v /opt/wallabag/data:/var/www/wallabag/data -v /opt/wallabag/images:/var/www/wallabag/web/assets/images -p 80:80 wallabag/wallabag
$ docker run -v /opt/wallabag/data:/var/www/wallabag/data -v /opt/wallabag/images:/var/www/wallabag/web/assets/images -p 80:80 -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" wallabag/wallabag
```
## MariaDB / MySQL
@ -63,7 +64,7 @@ For using MariaDB or MySQL you have to define some environment variables with th
```
$ docker run --name wallabag-db -e "MYSQL_ROOT_PASSWORD=my-secret-pw" -d mariadb
$ docker run --name wallabag --link wallabag-db:wallabag-db -e "MYSQL_ROOT_PASSWORD=my-secret-pw" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql" -e "SYMFONY__ENV__DATABASE_HOST=wallabag-db" -e "SYMFONY__ENV__DATABASE_PORT=3306" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -e "SYMFONY__ENV__DATABASE_CHARSET=utf8mb4" -p 80:80 wallabag/wallabag
$ docker run --name wallabag --link wallabag-db:wallabag-db -e "MYSQL_ROOT_PASSWORD=my-secret-pw" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql" -e "SYMFONY__ENV__DATABASE_HOST=wallabag-db" -e "SYMFONY__ENV__DATABASE_PORT=3306" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -e "SYMFONY__ENV__DATABASE_CHARSET=utf8mb4" -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" -p 80:80 wallabag/wallabag
```
## PostgreSQL
@ -72,7 +73,7 @@ For using PostgreSQL you have to define some environment variables with the cont
```
$ docker run --name wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -d postgres:9.6
$ docker run --name wallabag --link wallabag-db:wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql" -e "SYMFONY__ENV__DATABASE_HOST=wallabag-db" -e "SYMFONY__ENV__DATABASE_PORT=5432" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -p 80:80 wallabag/wallabag
$ docker run --name wallabag --link wallabag-db:wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql" -e "SYMFONY__ENV__DATABASE_HOST=wallabag-db" -e "SYMFONY__ENV__DATABASE_PORT=5432" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" -p 80:80 wallabag/wallabag
```
## Redis
@ -81,13 +82,13 @@ To use redis with a Docker link, a redis container with the name `redis` is need
```
$ docker run -p 6379:6379 --name redis redis:alpine
$ docker run -p 80:80 --link redis:redis wallabag/wallabag
$ docker run -p 80:80 -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" --link redis:redis wallabag/wallabag
```
To use redis with an external redis host, set the appropriate environmental variables. Example:
```
$ docker run -p 80:80 -e "SYMFONY__ENV__REDIS_HOST=my.server.hostname" -e "SYMFONY__ENV__REDIS_PASSWORD=my-secret-pw" wallabag/wallabag
$ docker run -p 80:80 -e "SYMFONY__ENV__REDIS_HOST=my.server.hostname" -e "SYMFONY__ENV__REDIS_PASSWORD=my-secret-pw" -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" wallabag/wallabag
```
## Upgrading
@ -106,7 +107,7 @@ $ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/con
## docker-compose
It's a good way to use [docker-compose](https://docs.docker.com/compose/). Example:
An example [docker-compose](https://docs.docker.com/compose/) file can be seen below:
```
version: '3'
@ -127,18 +128,34 @@ services:
- SYMFONY__ENV__MAILER_PASSWORD=~
- SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
- SYMFONY__ENV__DOMAIN_NAME=https://your-wallabag-url-instance.com
- 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"]
interval: 1m
timeout: 3s
depends_on:
- db
- redis
db:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
volumes:
- /opt/wallabag/data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
interval: 20s
timeout: 3s
redis:
image: redis:alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 20s
timeout: 3s
```
Note that you must fill out the mail related variables according to your mail config.

View File

@ -16,7 +16,7 @@ fi
if [ "$1" = "import" ];then
provisioner --skip-tags=firstrun
cd /var/www/wallabag/
exec su -c "bin/console wallabag:import:redis-worker -e=prod $2 -vv" -s /bin/sh nobody
exec su -c "bin/console wallabag:import:redis-worker --env=prod $2 -vv" -s /bin/sh nobody
fi
if [ "$1" = "migrate" ];then

View File

@ -36,6 +36,7 @@
redis_path: "{{ lookup('env', 'SYMFONY__ENV__REDIS_PATH')|default('~', true) }}"
redis_password: "{{ lookup('env', 'SYMFONY__ENV__REDIS_PASSWORD')|default('~', true) }}"
sentry_dsn: "{{ lookup('env', 'SYMFONY__ENV__SENTRY_DSN')|default('~', true) }}"
server_name: "{{ lookup('env', 'SYMFONY__ENV__SERVER_NAME')|default('Your wallabag instance', true) }}"
tasks:

View File

@ -58,3 +58,6 @@ parameters:
# sentry logging
sentry_dsn: {{ sentry_dsn }}
# User-friendly name of your instance for 2FA issuer
server_name: {{ server_name }}

View File

@ -58,3 +58,6 @@ parameters:
# sentry logging
sentry_dsn: ~
# User-friendly name of your instance for 2FA issuer
server_name: Your wallabag instance