mirror of
https://github.com/wallabag/docker
synced 2025-12-14 02:06:41 +00:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7bd58c73a | ||
|
|
ba8f6ec5d3 | ||
|
|
68db53e09c | ||
|
|
530e59329a | ||
|
|
2ae7dee8af | ||
|
|
c2052c2681 | ||
|
|
310d55bdea | ||
|
|
76f5ecb61e | ||
|
|
92f5db7ba9 | ||
|
|
ee4a7e4a46 | ||
|
|
e0bc4e895d | ||
|
|
ed6b4437b8 | ||
|
|
af2fb30389 | ||
|
|
af6c68a312 | ||
|
|
1f4d9af316 | ||
|
|
6a5ab7c126 | ||
|
|
f66d2aeab0 | ||
|
|
0d2bf2999a | ||
|
|
8bd298316a | ||
|
|
d9f9efcf13 |
@@ -7,6 +7,7 @@ services:
|
|||||||
- docker
|
- docker
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
- DB_TYPE=default
|
||||||
- DB_TYPE=sqlite
|
- DB_TYPE=sqlite
|
||||||
- DB_TYPE=mariadb
|
- DB_TYPE=mariadb
|
||||||
- DB_TYPE=postgresql
|
- DB_TYPE=postgresql
|
||||||
|
|||||||
19
Dockerfile
19
Dockerfile
@@ -1,20 +1,8 @@
|
|||||||
FROM alpine:edge
|
FROM alpine:edge
|
||||||
MAINTAINER Marvin Steadfast <marvin@xsteadfastx.org>
|
MAINTAINER Marvin Steadfast <marvin@xsteadfastx.org>
|
||||||
|
|
||||||
ENV WALLABAG_VERSION=2.0.8 \
|
ENV WALLABAG_VERSION=2.1.3 \
|
||||||
SYMFONY__ENV__DATABASE_DRIVER=pdo_sqlite \
|
POSTGRES_USER=postgres
|
||||||
SYMFONY__ENV__DATABASE_HOST=127.0.0.1 \
|
|
||||||
SYMFONY__ENV__DATABASE_PORT=~ \
|
|
||||||
SYMFONY__ENV__DATABASE_NAME=symfony \
|
|
||||||
SYMFONY__ENV__DATABASE_USER=root \
|
|
||||||
SYMFONY__ENV__DATABASE_PASSWORD=~ \
|
|
||||||
POSTGRES_USER=postgres \
|
|
||||||
SYMFONY__ENV__SECRET=ovmpmAWXRCabNlMgzlzFXDYmCFfzGv \
|
|
||||||
SYMFONY__ENV__MAILER_HOST=127.0.0.1 \
|
|
||||||
SYMFONY__ENV__MAILER_USER=~ \
|
|
||||||
SYMFONY__ENV__MAILER_PASSWORD=~ \
|
|
||||||
SYMFONY__ENV__FROM_EMAIL=wallabag@example.com
|
|
||||||
|
|
||||||
|
|
||||||
RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
|
RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
|
||||||
&& apk add --update \
|
&& apk add --update \
|
||||||
@@ -26,6 +14,8 @@ RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/
|
|||||||
nginx \
|
nginx \
|
||||||
pcre \
|
pcre \
|
||||||
php7 \
|
php7 \
|
||||||
|
php7-amqp@testing \
|
||||||
|
php7-bcmath \
|
||||||
php7-ctype@testing \
|
php7-ctype@testing \
|
||||||
php7-curl@testing \
|
php7-curl@testing \
|
||||||
php7-dom@testing \
|
php7-dom@testing \
|
||||||
@@ -47,6 +37,7 @@ RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/
|
|||||||
py-psycopg2 \
|
py-psycopg2 \
|
||||||
py-simplejson \
|
py-simplejson \
|
||||||
s6 \
|
s6 \
|
||||||
|
tar \
|
||||||
&& rm -rf /var/cache/apk/*
|
&& rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
RUN ln -s /usr/bin/php7 /usr/bin/php \
|
RUN ln -s /usr/bin/php7 /usr/bin/php \
|
||||||
|
|||||||
26
README.md
26
README.md
@@ -28,6 +28,7 @@ Default login is `wallabag:wallabag`.
|
|||||||
- `-e SYMFONY__ENV__MAILER_USER=...` (defaults to "~", the SMTP user)
|
- `-e SYMFONY__ENV__MAILER_USER=...` (defaults to "~", the SMTP user)
|
||||||
- `-e SYMFONY__ENV__MAILER_PASSWORD=...`(defaults to "~", the SMTP password)
|
- `-e SYMFONY__ENV__MAILER_PASSWORD=...`(defaults to "~", the SMTP password)
|
||||||
- `-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__FOSUSER_REGISTRATION=...`(defaults to "true", enable or disable public user registration)
|
||||||
|
|
||||||
## SQLite
|
## SQLite
|
||||||
|
|
||||||
@@ -37,7 +38,7 @@ The easiest way to start wallabag is to use the SQLite backend. You can spin tha
|
|||||||
$ docker run -p 80:80 wallabag/wallabag
|
$ docker run -p 80:80 wallabag/wallabag
|
||||||
```
|
```
|
||||||
|
|
||||||
and point your browser to `http://localhost:80`. For persistent storage you should start the container with the a volume:
|
and point your browser to `http://localhost:80`. For persistent storage you should start the container with a volume:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ docker run -v /opt/wallabag:/var/www/wallabag/data -p 80:80 wallabag/wallabag
|
$ docker run -v /opt/wallabag:/var/www/wallabag/data -p 80:80 wallabag/wallabag
|
||||||
@@ -48,7 +49,7 @@ $ docker run -v /opt/wallabag:/var/www/wallabag/data -p 80:80 wallabag/wallabag
|
|||||||
For using MariaDB or MySQL you have to define some environment variables with the container. Example:
|
For using MariaDB or MySQL you have to define some environment variables with the container. Example:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ docker run docker run --name wallabag-db -e "MYSQL_ROOT_PASSWORD=my-secret-pw" -d mariadb
|
$ 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" -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" -p 80:80 wallabag/wallabag
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -57,10 +58,27 @@ $ docker run --name wallabag --link wallabag-db:wallabag-db -e "MYSQL_ROOT_PASSW
|
|||||||
For using PostgreSQL you have to define some environment variables with the container. Example:
|
For using PostgreSQL you have to define some environment variables with the container. Example:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ docker run docker run --name wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -d postgres
|
$ docker run --name wallabag-db -e "POSTGRES_PASSWORD=my-secret-pw" -e "POSTGRES_USER=my-super-user" -d postgres
|
||||||
$ 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" -p 80:80 wallabag/wallabag
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Redis
|
||||||
|
|
||||||
|
To use redis support a linked redis container with the name `redis` is needed.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ docker run -p 6379:6379 --name redis redis:alpine
|
||||||
|
$ docker run -p 80:80 --link redis:redis wallabag/wallabag
|
||||||
|
```
|
||||||
|
|
||||||
|
## DB migration
|
||||||
|
|
||||||
|
If there is a version upgrade that needs a database migration, you should start the container with the new image and run the migration command.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ docker exec -t wallabag /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction
|
||||||
|
```
|
||||||
|
|
||||||
## docker-compose
|
## docker-compose
|
||||||
|
|
||||||
It's a good way to use [docker-compose](https://docs.docker.com/compose/). Example:
|
It's a good way to use [docker-compose](https://docs.docker.com/compose/). Example:
|
||||||
@@ -90,6 +108,8 @@ services:
|
|||||||
- MYSQL_ROOT_PASSWORD=wallaroot
|
- MYSQL_ROOT_PASSWORD=wallaroot
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/wallabag:/var/lib/mysql
|
- /opt/wallabag:/var/lib/mysql
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that you must fill out the mail related variables according to your mail config.
|
Note that you must fill out the mail related variables according to your mail config.
|
||||||
|
|||||||
@@ -4,15 +4,21 @@
|
|||||||
|
|
||||||
vars:
|
vars:
|
||||||
|
|
||||||
database_driver: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_DRIVER') }}"
|
database_driver: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_DRIVER')|default('pdo_sqlite', true) }}"
|
||||||
database_host: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_HOST') }}"
|
database_host: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_HOST')|default('127.0.0.1', true) }}"
|
||||||
database_name: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_NAME') }}"
|
database_name: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_NAME')|default('symfony', true) }}"
|
||||||
database_password: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_PASSWORD') }}"
|
database_password: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_PASSWORD')|default('~', true) }}"
|
||||||
database_port: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_PORT') }}"
|
database_port: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_PORT')|default('~', true) }}"
|
||||||
database_root_password_mariadb: "{{ lookup('env', 'MYSQL_ROOT_PASSWORD') }}"
|
database_root_password_mariadb: "{{ lookup('env', 'MYSQL_ROOT_PASSWORD') }}"
|
||||||
database_root_user_postgres: "{{ lookup('env', 'POSTGRES_USER') }}"
|
database_root_user_postgres: "{{ lookup('env', 'POSTGRES_USER') }}"
|
||||||
database_root_password_postgres: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
|
database_root_password_postgres: "{{ lookup('env', 'POSTGRES_PASSWORD') }}"
|
||||||
database_user: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_USER') }}"
|
database_user: "{{ lookup('env', 'SYMFONY__ENV__DATABASE_USER')|default('root', true) }}"
|
||||||
|
secret: "{{ lookup('env', 'SYMFONY__ENV__SECRET')|default('ovmpmAWXRCabNlMgzlzFXDYmCFfzGv', true) }}"
|
||||||
|
mailer_host: "{{ lookup('env', 'SYMFONY__ENV__MAILER_HOST')|default('127.0.0.1', true) }}"
|
||||||
|
mailer_user: "{{ lookup('env', 'SYMFONY__ENV__MAILER_USER')|default('~', true) }}"
|
||||||
|
mailer_password: "{{ lookup('env', 'SYMFONY__ENV__MAILER_PASSWORD')|default('~', true) }}"
|
||||||
|
from_email: "{{ lookup('env', 'SYMFONY__ENV__FROM_EMAIL')|default('wallabag@example.com', true) }}"
|
||||||
|
registration: "{{ lookup('env', 'SYMFONY__ENV__FOSUSER_REGISTRATION')|default('true', true) }}"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
@@ -21,10 +27,18 @@
|
|||||||
path={{ item }}
|
path={{ item }}
|
||||||
state=directory
|
state=directory
|
||||||
with_items:
|
with_items:
|
||||||
- /var/www/wallabag/data/db
|
- /var/www/wallabag/app
|
||||||
|
- /var/www/wallabag/app/config
|
||||||
|
- /var/www/wallabag/data
|
||||||
- /var/www/wallabag/data/assets
|
- /var/www/wallabag/data/assets
|
||||||
|
- /var/www/wallabag/data/db
|
||||||
notify: chown dir
|
notify: chown dir
|
||||||
|
|
||||||
|
- name: write parameters.yml
|
||||||
|
template:
|
||||||
|
src=templates/parameters.yml.j2
|
||||||
|
dest=/var/www/wallabag/app/config/parameters.yml
|
||||||
|
|
||||||
- stat:
|
- stat:
|
||||||
path=/var/www/wallabag/data/db/wallabag.sqlite
|
path=/var/www/wallabag/data/db/wallabag.sqlite
|
||||||
register: wallabag_sqlite_db
|
register: wallabag_sqlite_db
|
||||||
|
|||||||
44
root/etc/ansible/templates/parameters.yml.j2
Normal file
44
root/etc/ansible/templates/parameters.yml.j2
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
parameters:
|
||||||
|
database_driver: {{ database_driver }}
|
||||||
|
database_host: {{ database_host }}
|
||||||
|
database_port: {{ database_port }}
|
||||||
|
database_name: {{ database_name }}
|
||||||
|
database_user: {{ database_user }}
|
||||||
|
database_password: {{ database_password }}
|
||||||
|
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||||
|
database_table_prefix: wallabag_
|
||||||
|
database_socket: null
|
||||||
|
|
||||||
|
mailer_transport: smtp
|
||||||
|
mailer_host: {{ mailer_host }}
|
||||||
|
mailer_user: {{ mailer_user }}
|
||||||
|
mailer_password: {{ mailer_password }}
|
||||||
|
|
||||||
|
locale: en
|
||||||
|
|
||||||
|
# A secret key that's used to generate certain security-related tokens
|
||||||
|
secret: {{ secret }}
|
||||||
|
|
||||||
|
# two factor stuff
|
||||||
|
twofactor_auth: true
|
||||||
|
twofactor_sender: no-reply@wallabag.org
|
||||||
|
|
||||||
|
# fosuser stuff
|
||||||
|
fosuser_registration: {{ registration }}
|
||||||
|
fosuser_confirmation: true
|
||||||
|
|
||||||
|
from_email: {{ from_email }}
|
||||||
|
|
||||||
|
rss_limit: 50
|
||||||
|
|
||||||
|
# RabbitMQ processing
|
||||||
|
rabbitmq_host: localhost
|
||||||
|
rabbitmq_port: 5672
|
||||||
|
rabbitmq_user: guest
|
||||||
|
rabbitmq_password: guest
|
||||||
|
|
||||||
|
# Redis processing
|
||||||
|
redis_scheme: tcp
|
||||||
|
redis_host: redis
|
||||||
|
redis_port: 6379
|
||||||
|
redis_path: null
|
||||||
@@ -23,7 +23,7 @@ http {
|
|||||||
gzip on;
|
gzip on;
|
||||||
gzip_disable "msie6";
|
gzip_disable "msie6";
|
||||||
open_file_cache max=100;
|
open_file_cache max=100;
|
||||||
client_max_body_size 50M;
|
client_max_body_size 100M;
|
||||||
|
|
||||||
|
|
||||||
upstream php-upstream {
|
upstream php-upstream {
|
||||||
|
|||||||
@@ -670,7 +670,7 @@ auto_globals_jit = On
|
|||||||
; Its value may be 0 to disable the limit. It is ignored if POST data reading
|
; Its value may be 0 to disable the limit. It is ignored if POST data reading
|
||||||
; is disabled through enable_post_data_reading.
|
; is disabled through enable_post_data_reading.
|
||||||
; http://php.net/post-max-size
|
; http://php.net/post-max-size
|
||||||
post_max_size = 20G
|
post_max_size = 100M
|
||||||
|
|
||||||
; Automatically add files before PHP document.
|
; Automatically add files before PHP document.
|
||||||
; http://php.net/auto-prepend-file
|
; http://php.net/auto-prepend-file
|
||||||
@@ -802,7 +802,7 @@ upload_tmp_dir = /tmp/
|
|||||||
|
|
||||||
; Maximum allowed size for uploaded files.
|
; Maximum allowed size for uploaded files.
|
||||||
; http://php.net/upload-max-filesize
|
; http://php.net/upload-max-filesize
|
||||||
upload_max_filesize = 20G
|
upload_max_filesize = 100M
|
||||||
|
|
||||||
; Maximum number of files that can be uploaded via a single request
|
; Maximum number of files that can be uploaded via a single request
|
||||||
max_file_uploads = 20
|
max_file_uploads = 20
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
parameters:
|
parameters:
|
||||||
database_driver: %env.database_driver%
|
database_driver: pdo_sqlite
|
||||||
database_host: %env.database_host%
|
database_host: 127.0.0.1
|
||||||
database_port: %env.database_port%
|
database_port: ~
|
||||||
database_name: %env.database_name%
|
database_name: symfony
|
||||||
database_user: %env.database_user%
|
database_user: root
|
||||||
database_password: %env.database_password%
|
database_password: ~
|
||||||
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
database_path: "%kernel.root_dir%/../data/db/wallabag.sqlite"
|
||||||
database_table_prefix: wallabag_
|
database_table_prefix: wallabag_
|
||||||
|
database_socket: null
|
||||||
|
|
||||||
test_database_driver: pdo_sqlite
|
test_database_driver: pdo_sqlite
|
||||||
test_database_host: 127.0.0.1
|
test_database_host: 127.0.0.1
|
||||||
@@ -17,20 +18,35 @@ parameters:
|
|||||||
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
test_database_path: "%kernel.root_dir%/../data/db/wallabag_test.sqlite"
|
||||||
|
|
||||||
mailer_transport: smtp
|
mailer_transport: smtp
|
||||||
mailer_host: %env.mailer_host%
|
mailer_host: 127.0.0.1
|
||||||
mailer_user: %env.mailer_user%
|
mailer_user: ~
|
||||||
mailer_password: %env.mailer_password%
|
mailer_password: ~
|
||||||
|
|
||||||
locale: en
|
locale: en
|
||||||
|
|
||||||
# A secret key that's used to generate certain security-related tokens
|
# A secret key that's used to generate certain security-related tokens
|
||||||
secret: %env.secret%
|
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
|
||||||
|
|
||||||
# two factor stuff
|
# two factor stuff
|
||||||
twofactor_auth: true
|
twofactor_auth: true
|
||||||
twofactor_sender: %env.from_email%
|
twofactor_sender: no-reply@wallabag.org
|
||||||
|
|
||||||
# fosuser stuff
|
# fosuser stuff
|
||||||
|
fosuser_registration: true
|
||||||
fosuser_confirmation: true
|
fosuser_confirmation: true
|
||||||
|
|
||||||
from_email: %env.from_email%
|
from_email: no-reply@wallabag.org
|
||||||
|
|
||||||
|
rss_limit: 50
|
||||||
|
|
||||||
|
# RabbitMQ processing
|
||||||
|
rabbitmq_host: localhost
|
||||||
|
rabbitmq_port: 5672
|
||||||
|
rabbitmq_user: guest
|
||||||
|
rabbitmq_password: guest
|
||||||
|
|
||||||
|
# Redis processing
|
||||||
|
redis_scheme: tcp
|
||||||
|
redis_host: localhost
|
||||||
|
redis_port: 6379
|
||||||
|
redis_path: null
|
||||||
|
|||||||
9
tests/docker-compose.default.yml
Normal file
9
tests/docker-compose.default.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
version: '2'
|
||||||
|
services:
|
||||||
|
wallabag:
|
||||||
|
build:
|
||||||
|
context: ../
|
||||||
|
image: wallabag:default
|
||||||
|
container_name: wallabag
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:80:80"
|
||||||
Reference in New Issue
Block a user