Giter Club home page Giter Club logo

docker's Introduction

What is wallabag?

CI Docker Stars Docker Pulls

wallabag is a self hostable application for saving web pages. Unlike other services, wallabag is free (as in freedom) and open source.

With this application you will not miss content anymore. Click, save, read it when you want. It saves the content you select so that you can read it when you have time.

How to use this image

Default login is wallabag:wallabag.

Environment variables

  • -e MYSQL_ROOT_PASSWORD=... (needed for the mariadb container to initialise and for the entrypoint in the wallabag container to create a database and user if its not there)
  • -e POSTGRES_PASSWORD=... (needed for the postgres container to initialise and for the entrypoint in the wallabag container to create a database and user if not there)
  • -e POSTGRES_USER=... (needed for the posgres container to initialise and for the entrypoint in the wallabag container to create a database and user if not there)
  • -e SYMFONY__ENV__DATABASE_DRIVER=... (defaults to "pdo_sqlite", this sets the database driver to use)
  • -e SYMFONY__ENV__DATABASE_HOST=... (defaults to "127.0.0.1", if use mysql this should be the name of the mariadb container)
  • -e SYMFONY__ENV__DATABASE_PORT=... (port of the database host)
  • -e SYMFONY__ENV__DATABASE_NAME=...(defaults to "symfony", this is the name of the database to use)
  • -e SYMFONY__ENV__DATABASE_USER=... (defaults to "root", this is the name of the database user to use)
  • -e SYMFONY__ENV__DATABASE_PASSWORD=... (defaults to "~", this is the password of the database user to use)
  • -e SYMFONY__ENV__DATABASE_CHARSET=... (defaults to utf8, this is the database charset to use)
  • -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_DSN=... (defaults to "smtp://127.0.0.1")
  • -e SYMFONY__ENV__FROM_EMAIL=...(defaults to "[email protected]", the address wallabag uses for outgoing emails)
  • -e SYMFONY__ENV__TWOFACTOR_SENDER=... (defaults to "[email protected]", the address wallabag uses for two-factor emails)
  • -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-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)
  • -e SYMFONY__ENV__REDIS_PATH=...(defaults to "~", path of the unix socket file)
  • -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 -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" wallabag/wallabag

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 -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" wallabag/wallabag

MariaDB / MySQL

For using MariaDB or MySQL you have to define some environment variables with the container. Example:

$ 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" -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" -p 80:80 wallabag/wallabag

PostgreSQL

For using PostgreSQL you have to define some environment variables with the container. Example:

$ 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" -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" -p 80:80 wallabag/wallabag

Redis

To use redis with a Docker link, a redis container with the name redis is needed and none of the REDIS environmental variables are needed:

$ docker run -p 6379:6379 --name redis redis:alpine
$ 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" -e "SYMFONY__ENV__DOMAIN_NAME=http://localhost" wallabag/wallabag

Upgrading

If there is a version upgrade that needs a database migration. The most easy way to do is running the migrate command:

$ docker run --link wallabag-db:wallabag-db -e <... your config variables here ...>  wallabag/wallabag migrate

Or you can start the container with the new image and run the migration command manually:

$ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction

docker-compose

An example docker-compose file can be seen below:

version: '3'
services:
  wallabag:
    image: wallabag/wallabag
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
      - SYMFONY__ENV__DATABASE_HOST=db
      - SYMFONY__ENV__DATABASE_PORT=3306
      - SYMFONY__ENV__DATABASE_NAME=wallabag
      - SYMFONY__ENV__DATABASE_USER=wallabag
      - SYMFONY__ENV__DATABASE_PASSWORD=wallapass
      - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
      - SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
      - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
      - [email protected]
      - 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/api/info"]
      interval: 1m
      timeout: 3s
    depends_on:
      - db
      - redis
  db:
    image: mariadb
    restart: unless-stopped
    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
    restart: unless-stopped    
    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.

nginx

I use nginx to make wallabag public available. This is a example how to use it:

server {
        listen 443;
        server_name wallabag.foo.bar;

	ssl on;
        ssl_certificate /etc/letsencrypt/live/wallabag.foo.bar/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wallabag.foo.bar/privkey.pem;

	location / {
		proxy_pass http://wallabag;
		proxy_set_header X-Forwarded-Host $server_name;
                proxy_set_header X-Forwarded-Proto https;
                proxy_set_header X-Forwarded-For $remote_addr;
	}

}

Import worker

To run the async redis import worker use the following command:

$ docker run --name wallabag --link wallabag-db:wallabag-db --link redis:redis -e <... your config variables here ...>  wallabag/wallabag import <type>

Where <type> is one of pocket, readability, instapaper, wallabag_v1, wallabag_v2, firefox or chrome.

docker's People

Contributors

chostakovitch avatar dependabot-preview[bot] avatar glego avatar greenrd avatar hoh avatar hwiorn avatar ivzhh avatar j0k3r avatar janlo avatar jsshandle avatar kdecherf avatar kmlucy avatar neilbags avatar ngosang avatar nicosomb avatar nsteinmetz avatar pando85 avatar pgrunm avatar philwrenn avatar sethforprivacy avatar sheeprine avatar stardogg avatar strubbl avatar sviande avatar tcitworld avatar tomsquest avatar xsteadfastx avatar yguedidi avatar ywoly avatar zonorti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker's Issues

2.2.1+ Posgres (container) - can't run migration

Hi,

I read #48 but I have from outside or within container when migration from 2.1.6 to 2.2.1

My Postgres is also a container (postgres:9.6-alpine)

/var/www/wallabag # bin/console doctrine:migrations:migrate --env=prod --no-interaction
                                                              
                    Application Migrations                    
                                                              

Migrating up to 20170127093841 from 0

  ++ migrating 20160410190541

Migration 20160410190541 failed during Execution. Error There is no table with name '/var/www/wallabag/app/..wallabag_entry' in the schema.

                                                                                       
  [Doctrine\DBAL\Schema\SchemaException]                                               
  There is no table with name '/var/www/wallabag/app/..wallabag_entry' in the schema.  
                                                                                       

doctrine:migrations:migrate [--write-sql] [--dry-run] [--query-time] [--allow-no-migration] [--configuration [CONFIGURATION]] [--db-configuration [DB-CONFIGURATION]] [--db DB] [--em EM] [--shard SHARD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<version>]

/var/www/wallabag # find . -name wallabag_entry
/var/www/wallabag # 

I did not try yet the other command to manage migration.

Let me know if you need more details

Docker image version

I didn't find any info about version of the current Docker image. For example, with Redis we have detailed tags denoting version, which is not the case of Wallabag. How can I found out the version I am pulling?
Wallabag page on DockerHub should be updated.

Docker Hub Account

I think we should get a official wallabag docker hub account. Then we could work with the automated builds. Who should register it?

500 server error with nginx-proxy and docker-compose

Hi,

I'm trying to use wallabag with the jwilder/nginx-proxy. I can't figure out why the server is always responding with a 500 error.

The proxy seems to works well given that I got the connection logs using the docker-compose logs.

wallabag       | 2017/03/08 14:19:24 [error] 309#309: *3 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Exception: Could not gather sufficient random data in /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php:46
wallabag       | Stack trace:
wallabag       | #0 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php(46): random_bytes(32)
wallabag       | #1 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php(57): Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator->generateToken()
wallabag       | #2 /var/www/wallabag/vendor/friendsofsymfony/user-bundle/Controller/SecurityController.php(53): Symfony\Component\Security\Csrf\CsrfTokenManager->getToken('authenticate')
wallabag       | #3 [internal function]: FOS\UserBundle\Controller\SecurityController->loginAction(Object(Symfony\Component\HttpFoundation\Request))
wallabag       | #4 /var/www/wallabag/var/cache/prod/classes.php(4651): call_user_func_array(Array, Array)
wallabag       | #5 /var/www/wallabag/var/cache/prod/classes.php(4606): Symfony\C" while reading response header from upstream, client: ::ffff:172.19.0.7, server: _, request: "GET /login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "wallabag.mysite.tld"

Here is my docker-compose :

 
version: '2'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy:alpine
    container_name: nginx-proxy
    ports:
      - "443:443"
    volumes:
      - /srv/seedbox/htpasswd:/etc/nginx/htpasswd
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - /srv/certs:/etc/nginx/certs

  wallabag:
    image: wallabag/wallabag:latest
    container_name: "wallabag"
    links:
      - mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=myrootpass
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
      - SYMFONY__ENV__DATABASE_HOST=mariadb
      - SYMFONY__ENV__DATABASE_PORT=3306
      - SYMFONY__ENV__SECRET=mysecret
      - SYMFONY__ENV__DATABASE_NAME=wallabag
      - SYMFONY__ENV__DATABASE_USER=wallabag
      - SYMFONY__ENV__DATABASE_PASSWORD=mypass
      - SYMFONY__ENV__MAILER_HOST=127.0.0.1
      - SYMFONY__ENV__MAILER_USER=~
      - SYMFONY__ENV__MAILER_PASSWORD=~
      - [email protected]
      - VIRTUAL_PORT=80
      - VIRTUAL_HOST=wallabag.mysite.tld
      - VIRTUAL_PROTO=https


  mariadb:
    image: linuxserver/mariadb:latest
    container_name: "mariadb"
    ports:
      - 3306:3306
    volumes:
      - /srv/mariadb:/config

Any clues about where the problem could come from ?

Error on TASK [run composer] using SQLite

When using the command docker run -p 9990:80 wallabag/wallabag to spin up wallabag using SQLite I get the attached error.
I'm using Docker version 1.11.2, build b9f10c9 on an Ubuntu 14.04.

Using mariaDB in a separate container as suggested in the documentation works.

I'm not sufficient in php or Docker to pin-point the issue any further. If you need more information please just let me know.

TASK [run composer] ************************************************************
fatal: [localhost]: FAILED! => {"changed": true, "cmd": "SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist", "delta": "0:00:05.105378", "end": "2016-10-20 18:03:38.780586", "failed": true, "rc": 1, "start": "2016-10-20 18:03:33.675208", "stderr": "Loading composer repositories with package information\nInstalling dependencies from lock file\nGenerating optimized autoload files\n> Incenteev\ParameterHandler\ScriptHandler::buildParameters\n> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap\n> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache\nScript Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-cmd event terminated with an exception\n\n \n [RuntimeException] \n An error occurred when executing the "'cache:clear --no-warmup'" command: \n \n [Doctrine\DBAL\DBALException] \n The options 'driver' or 'driverClass' are mandatory if no PDO instance is given to DriverManager::getConnection(). \n \n . \n \n\ninstall [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--] []...", "stdout": "Updating the "app/config/parameters.yml" file\n\n \n [Doctrine\DBAL\DBALException] \n The options 'driver' or 'driverClass' are mandatory if no PDO instance is given to DriverManager::getConnection(). \n ", "stdout_lines": ["Updating the "app/config/parameters.yml" file", "", " ", " [Doctrine\DBAL\DBALException] ", " The options 'driver' or 'driverClass' are mandatory if no PDO instance is given to DriverManager::getConnection(). ", " "], "warnings": []}
NO MORE HOSTS LEFT *************************************************************
to retry, use: --limit @/etc/ansible/entrypoint.retry
PLAY RECAP *********************************************************************
localhost : ok=4 changed=2 unreachable=0 failed=1

Storing config on a volume creates errors

I am trying to store the wallabag config outside the container by mounting a volume:

-v ./volumes/wallabag-server/config:/var/www/wallabag/app/config

As soon as I do, the server can not start up anymore. It errors out with the following:

wallabag-server    | 2016/11/28 19:45:02 [error] 255#255: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught InvalidArgumentException: The file "/var/www/wallabag/app/config/config_prod.yml" does not exist. in /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Config/FileLocator.php:44
wallabag-server    | Stack trace:
wallabag-server    | #0 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Config/FileLocator.php(54): Symfony\Component\Config\FileLocator->locate('/var/www/wallab...', NULL, true)
wallabag-server    | #1 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php(66): Symfony\Component\HttpKernel\Config\FileLocator->locate('/var/www/wallab...')
wallabag-server    | #2 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Config/Loader/DelegatingLoader.php(45): Symfony\Component\DependencyInjection\Loader\YamlFileLoader->load('/var/www/wallab...', NULL)
wallabag-server    | #3 /var/www/wallabag/app/AppKernel.php(72): Symfony\Component\Config\Loader\DelegatingLoader->load('/var/www/wallab...')
wallabag-server    | #4 /var/www/wallabag/var/bootstrap.php.cache(1673): AppKernel->registerContai" while reading response header from upstream, client: ::ffff:172.21.0.4, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "wallabag.cupreo.us"
wallabag-server    | ::ffff:172.21.0.4 - - [28/Nov/2016:19:45:02 +0000] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36"

The server is creating paramaters.yml correctly - no other files are being created...

Any ideas are much appreciated!

Fail to import large json file (13M) from wallabag V1 in wallabag/docker

Dear team,

I set up the wallabag/docker image on a synology NAS
It runs fine but I fail to import my json file from wallabag V1 because the exported file is too large = 13 MB

It seems problem is related to Nginx configuration "client_max_body_size" is set to a low value.

Is there a way to set client_max_body_size without rebuilding the image ?
Maybe client_max_body_size could be set as an environment variable ?

many thanks

Refuses non-localhost connections

I recently changed the setup for my self hosted stuff from shellscripts to a docker-compose setup.
Since I restarted everything today wallabag works at first (for some minutes) but then refuses every connection which doesn't come from localhost.
This ultimately results in a 502 on jwilder/nginx-proxy (but nothing arrives at wallabags nginx). By using telnet I can connect to the nginx on the wallabag but not from any other container on the same network. The wallabag container is still pingable.

The relvant parts of my docker compose:

 services:
  nginx_proxy:
    image: jwilder/nginx-proxy:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - certs:/etc/nginx/certs
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - web
      - nginx
  nginx_companion:
    depends_on:
      - nginx_proxy
    image: alastaircoote/docker-letsencrypt-nginx-proxy-companion:latest
    restart: always
    volumes:
      - certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    volumes_from:
      - nginx_proxy
    networks:
      - nginx
  wallabag_mariadb:
    image: mariadb:latest
    restart: always
    volumes:
      - wallabag_db_data:/var/lib/mysql
    networks:
      - wallabag
    environment:
      MYSQL_ROOT_PASSWORD: some_pw
      MYSQL_DATABASE: wallabag
      MYSQL_USER: wallabag
      MYSQL_PASSWORD: some_pw
  wallabag_redis:
    image: redis:alpine
    networks:
     - wallabag
  wallabag:
    depends_on:
      - nginx_companion
      - wallabag_mariadb
      - wallabag_redis
    image: wallabag/wallabag
    restart: always
    volumes:
      - wallabag_data:/var/www/wallabag/data
      - wallabag_config:/var/www/wallabag/app/config
    networks:
      - wallabag
      - web
    expose:
      - "80"
    environment:
      VIRTUAL_HOST: wallabag.some_domain
      LETSENCRYPT_HOST: wallabag.some_domain
      LETSENCRYPT_EMAIL: admin@some_domain
      MYSQL_ROOT_PASSWORD: some_pw
      SYMFONY__ENV__DATABASE_DRIVER: pdo_sqlite
      SYMFONY__ENV__FOSUSER_REGISTRATION: "false"

volumes:
  certs:
  vhost:
  html:

networks:
  web:
    driver: bridge
  nginx:
    driver: bridge
 

When I rebuild the containers wallabag works for some minutes and then randomly gets into this state, but sometimes it also reappears. I doubt that the nginx_proxy is at fault here, because my other services still work.
Might this be some kind of performance issue? The strange part about that would be the nginx already refusing connections, without having done anything else.

Recommended way for setting up multiple apps on the same server as wallabag

I have installed wallabag on my server using the "shared hosting" approach: wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package (I could not get either git setup or the docker image to work). I also have miniflux installed for RSS reading and I would like to access both these apps.

Miniflux has straightforward instructions, I basically clone the GitHub repo and then navigate to localhost/miniflux to login and access my feeds. With wallabag, I only get a directory listing when navigating to localhost/wallabag after cloning and running make install. In order to get the wallabag login interface, I can type make run which launches the PHP server, but since this is not recommend for production use, I tried setting up the apache virtual host. I ran into permission troubles in the beginning, but I got it working eventually. A new issue arose and I could not access the root server location localhost, since it redirected me to the wallabag login page. To fix this I changed the the DocumentRoot field to /var/www/html/ in /etc/apache2/sites-available/000-default.conf.

It is great that I can now access the wallabag login page at localhost/wallabag/web and other apps via localhost/<app_name>. But since I am completely new to self-hosting, and ran into multiple errors when setting up, I want to ask if my current solution is a good way of accessing several apps alongside wallbag, or if there is some specific reason that wallabag should redirect the base server url to its login page, and there another approach to achieve what I want.

I have all my app folders in /var/www/html/. My /etc/apache2/sites-available/000-default.conf looks like this

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/html
    <Directory /var/www/html/wallabag/web>
        Require all granted
        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeScript assets
    # <Directory /var/www/html/wallabag>
    #     Options FollowSymlinks
    # </Directory>

    # optionally disable the RewriteEngine for the asset directories
    # which will allow apache to simply reply with a 404 when files are
    # not found instead of passing the request into the full symfony stack
    <Directory /var/www/html/wallabag/web/bundles>
        <IfModule mod_rewrite.c>
            RewriteEngine Off
        </IfModule>
    </Directory>
    ErrorLog /var/log/apache2/wallabag_error.log
    CustomLog /var/log/apache2/wallabag_access.log combined
</VirtualHost>

Activation link is not sent

At the end of the account creation process, activation link is not sent by email. Even if it's not a blocking issue as you can authenticate with your login/password, it may be seen as "deceptive".

Maybe the workaround is just to inform people about this in the readme - as adding some smtp is not really expected (even some as basic as ssmtp)

Database creation when using Docker and Postgres

I have a postgres container with a database called wallabag, username wallabag and password wallabag.

I want to run the latest wallabag container via docker compose, which currently looks like this:

wallabag:
    container_name: wallabag
    image: wallabag/wallabag
    ports:
      - "4444:80"
    environment:
        POSTGRES_PASSWORD: wallabag
        POSTGRES_USER: wallabag
        POPULATE_DATABASE: 'False'
        SYMFONY__ENV__DATABASE_DRIVER: pdo_pgsql
        SYMFONY__ENV__DATABASE_HOST: postgres
        SYMFONY__ENV__DATABASE_PORT: 5432
        SYMFONY__ENV__DATABASE_NAME: wallabag
        SYMFONY__ENV__DATABASE_USER: wallabag
        SYMFONY__ENV__DATABASE_PASSWORD: wallabag
    volumes:
      - /tmp/wallabag-images:/var/www/wallabag/web/assets/images

This seems to not create the databases needed. I see HERE it mentions migrations, but when I run them it fails with "Error There is no table with name 'wallabag.wallabag_entry' in the schema.".

$ sudo docker exec -t c91 /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction
                                                              
                    Application Migrations                    
                                                              

Migrating up to 20170127093841 from 0

  ++ migrating 20160410190541

Migration 20160410190541 failed during Execution. Error There is no table with name 'wallabag.wallabag_entry' in the schema.

                                                                        
  [Doctrine\DBAL\Schema\SchemaException]                                
  There is no table with name 'wallabag.wallabag_entry' in the schema.  
                                                                        

doctrine:migrations:migrate [--write-sql] [--dry-run] [--query-time] [--allow-no-migration] [--configuration [CONFIGURATION]] [--db-configuration [DB-CONFIGURATION]] [--db DB] [--em EM] [--shard SHARD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<version>]

I see this exact issue seems to have come up before HERE but as above it looks like I need more than just the migration.

Am I missing an initial creation step?

Problems importing many articles from Pocket

I just cloned and built the wallabag image from the HEAD of this repository. I simply ran it with

docker run -ti -p 80:80 wallabag

then logged in an tried to import from a Pocket account with 600 articles. After 60 seconds the browser showed 504 Gateway Time-out coming from Nginx. I figured this should be due to FastCGI's timeout and added the following under http in /etc/nginx/nginx.conf

fastcgi_read_timeout 300;

I ran wallabag again. No more HTTP 504. But now, after about 2 minutes of clicking the import button there's an error coming from wallabag

500: Internal Server Error
Attempted to call function "gzuncompress" from the global namespace.

What does this error mean? I couldn't find information about it. Is there some other configuration in the container I should change for a somewhat big import like this?

Thank you.

PS: refreshing wallabag it shows a total of 80 articles.
PS2: I tried setting gzip to off in nginx.conf but it didn't help.

Migration error after updating

Hi there, I'm trying to update our installation to the latest image and trying to migrate the sqlite database I get:

$ docker exec -t wallabag_wallabag_1 /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction
                                                              
                    Application Migrations                    
                                                              

Migrating up to 20170127093841 from 20160410190541

  ++ migrating 20160812120952

     -> ALTER TABLE wallabag_oauth2_clients ADD COLUMN name BLOB NOT NULL
Migration 20160812120952 failed during Execution. Error An exception occurred while executing 'ALTER TABLE wallabag_oauth2_clients ADD COLUMN name BLOB NOT NULL':

SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL

                                                                                                              
  [Doctrine\DBAL\Exception\DriverException]                                                                   
  An exception occurred while executing 'ALTER TABLE wallabag_oauth2_clients ADD COLUMN name BLOB NOT NULL':  
  SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL                      
                                                                                                              

                                                                                          
  [Doctrine\DBAL\Driver\PDOException]                                                     
  SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL  
                                                                                          

                                                                                          
  [PDOException]                                                                          
  SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL  
                                                                                          

doctrine:migrations:migrate [--write-sql] [--dry-run] [--query-time] [--allow-no-migration] [--configuration [CONFIGURATION]] [--db-configuration [DB-CONFIGURATION]] [--db DB] [--em EM] [--shard SHARD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<version>]

any tip? Thanks

Option to disable IPv6

Problem

I am trying to run your docker container on my Unraid Server (which does not support IPv6).
Please add an option to disable IPv6/expose the nginx settings.

A workaround

I fixed it by adding listen 80 default_server; in nginx.conf and building the image myself.

Potential solution

It'd be great if you exposed a way to edit the nginx configuration files.

Thanks!

gzuncompress error while importing from Pocket API or Instapaper csv

From @itnAAnti on December 15, 2016 18:1

Issue details

When importing from Pocket via the API, or importing from an Instapaper csv file, I receive the error: 500: Internal Server Error Attempted to call function "gzuncompress" from the global namespace.

Environment

  • Official Docker image, version 2.1.5
  • Docker 1.11.2
  • Running on an x86_64 Synology NAS (Linux NAS 3.10.77 #8451)
  • PHP 5.6
  • PostgreSQL

Steps to reproduce/test case

  1. Download / run latest Docker image, currently version 2.1.5
  2. Download, link, run latest PostgreSQL Docker image, currently 9.6.1
  3. Start both, verify Wallabag configured the DB ok and is running correctly
  4. Get Pocket consumer key on your account and configure in Wallabag
  5. Import from Pocket

Copied from original issue: wallabag/wallabag#2705

Unable to import large files

Hi all,

I switch from v1 to v2 and I said why not switching to a docker instance. When migrating my old data I've got this:

capture d ecran 2016-11-04 16 30 04

So I started to investigate if the limit was set your end or on the reverse proxy I've put on top of this installation. Turn out that doing that I've found this in your php.ini:

post_max_size = 20G
upload_max_filesize = 20G

given that you also have max_file_uploads = 20 you could theoretically send 400GB to the server in a single request ! This will make you much more vulnerable to a DOS and there isn't really a use case for it... or is it ????

Installation failling with postgresql driver

Hello,
I created a wallabag container associated to a postgresql container and it's not working.
I have that output in my logs :

2017/08/03 17:04:18 [error] 407#407: *3 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught PDOException: SQLSTATE[42P01]: Undefined table: 7 ERROR:  relation "wallabag_craue_config_setting" does not exist
LINE 1: ...t0.value AS value_2, t0.section AS section_3 FROM wallabag_c...
                                                             ^ in /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:91
Stack trace:
#0 /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(91): PDOStatement->execute(NULL)
#1 /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(847): Doctrine\DBAL\Driver\PDOStatement->execute()
#2 /var/www/wallabag/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(712): Doctrine\DBAL\Connection->executeQuery('SELECT t0.name ...', Array, Array)
#3 /var/www/wallabag/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(196): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->load(Array, NULL, NULL, Array, NULL, 1, NULL)

Don't know if it's really related to postgresql or not, so I will try with mariadb driver and keep you informed.

My docker-compose.yml :

version: '3'
services:
  wallabag:
    container_name: wallabag
    image: wallabag/wallabag:latest
    restart: always
    volumes:
      - wallabag-images:/var/www/wallabag/web/assets/images
    networks:
      - nginx-proxy
      - postgres
    environment:
      # L'utilisateur postgres super-utilisateur
      - POSTGRES_USER=postgres
      # Le mot de passe de l'utilisateur postgres super-utilisateur
      - POSTGRES_PASSWORD=<MDP_PGSQL_POSTGRES>
      # Le pilote utilisé par symfony
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql
      # L'hôte du conteneur postgresql
      - SYMFONY__ENV__DATABASE_HOST=postgres
      # Le port
      - SYMFONY__ENV__DATABASE_PORT=5432
      # Le nom de la base qui sera créée
      - SYMFONY__ENV__DATABASE_NAME=wallabag
      # L'utilisateur de la base qui sera créé
      - SYMFONY__ENV__DATABASE_USER=wallabag" 
      # Le mot de passe de l'utilisateur qui sera créé
      - SYMFONY__ENV__DATABASE_PASSWORD=<MDP_BASE_PGSQL>
      - VIRTUAL_HOST=<SOUS-DOMAINE>.<DOMAINE>.<EXT>
      - VIRTUAL_NETWORK=nginx-proxy
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=<SOUS-DOMAINE>.<DOMAINE>.<EXT>
      - LETSENCRYPT_EMAIL=<EMAIL>
      # Autoriser l'enregistrement des utilisateurs
      - SYMFONY__ENV__FOSUSER_REGISTRATION=false
volumes:
    wallabag-images:
      external: true
networks:
    nginx-proxy:
      external: true
    postgres:
      external: true

Isn't ansible overkill ?

Hi,

I wanted to use your docker image and I saw you used ansible to configure the container in the first run.
I love ansible and all, but embedding it in a container just for that is, IMHO, quite overkill since, form what I understand from it, it is only used to render templates and initialize databases.
This results in an image which is several 100s of MB large (this is huge when talking about docker).

Couldn't a couple of seds and ifs in a shell script do the work while making the image much tinier ?

composer install quirks

the composer install is missing a -d memory_limit=-1 argument (for php) and a --no-interaction argument to be able to finish.

Randomization unsufficient

At first run, I'm having :
PHP message: PHP Fatal error: Uncaught Exception: Could not gather sufficient random data in /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php

maybe setup haveged ?

504 Gateway Time-out on pocket import

Hello,

I get a 504 Gateway Time-out when trying to import from pocket:

  1. launched wallabag docker: docker run -p 80:80 wallabag/wallabag
  2. logged in using wallabag:wallabag
  3. Config -> Consumer key for Pocket to import contents
  4. Import -> Pocket: Import Contents
  5. Dies during http://localhost/import/pocket/callback with error 504
  6. After that the container does not respond anymore
  7. Restart container: 380 entries added
::ffff:172.17.0.1 - - [19/Mar/2017:15:18:58 +0000] "POST /import/pocket/auth HTTP/1.1" 301 289 "http://localhost/import/pocket" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0"
2017/03/19 15:20:01 [error] 322#322: *58 upstream timed out (110: Operation timed out) while reading response header from upstream, client: ::ffff:172.17.0.1, server: _, request: "GET /import/pocket/callback HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"
::ffff:172.17.0.1 - - [19/Mar/2017:15:20:01 +0000] "GET /import/pocket/callback HTTP/1.1" 504 176 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0"

I have used pocket more as a bookmarks + content archive than actual read it (very much) later so over several years I added > 13k entries in pocket. I would like to extract them into wallabag and then from there sift through what's still valid or needs proper tagging.

Also tried but wallabag won't properly launch (obviously)

docker run -p 6379:6379 --name redis redis:alpine
docker run -p 80:80 --link redis:redis wallabag/wallabag import pocket
  • Recreated the wallabag docker image without "import pocket"
  • Enabled Redis async import within Internal Settings (pocket import configure in 3 different submenus?)
  • again 504 error
  • actually got no clue if and where I should provide the "import pocket" command.

The import never works/worked properly always dying of timeouts. The integration with redis also doesn't appear very stable enough.

Has anybody gotten the pocket import to work with more then 5 entries?
The instructions on how to import using Redis seem to be broken as instructions state:

Import worker

To run the async redis import worker use the following command:
$ docker run --name wallabag --link wallabag-db:wallabag-db --link redis:redis -e <... your config variables here ...> wallabag/wallabag import

As clearly at this point the container is already running or using that command only, the container won't launch. During first time setup nothing is set up for pocket import obviously.

Can anybody please enlighten me where I am going wrong?

Allow changing the database encoding

Hi! See wallabag/wallabag#2877 for context.

An article cannot be imported because the mysql encoding doesn't fit; I assume one needs to recreate the full database to change the encoding, so it might not be just a matter of changing the parameters at runtime, after all the containers have started.

Could we either allow changing the database encoding with an env variable, or set it to utf8mb4 from the ground?

Cheers!

Wallabag Docker image/container update

From @Suncatcher on March 30, 2017 11:22

Issue details

I have several questions regarding this:

  1. Does Wallabag image/container updated automatically?
  2. If not, how can one update it manually without stopping container?
  3. If it's not possible without stopping, what is the general procedure?

Having my (very limited) knowledge of Docker, I treat it following way:
when creating container, Docker pulls the latest image from the Hub, but without recreating container it won't update it by default? Am I right?
As it appears, procedure is quite complicated, and to provide consistent updates some changes should be made to application prior to publishing the image.

Environment

  • wallabag version that exhibits the issue: 2.2.2
  • How did you install wallabag?: Docker
  • Last wallabag version that did not exhibit the issue (if applicable): dunno
  • php version: dunno
  • OS: AWS AMI Linux 2016.e
  • type of hosting (shared or dedicated): AWS EC2 T2 Micro
  • which storage system you choose at install (SQLite, MySQL/MariaDB or PostgreSQL): Postgre 9.6.2

Steps to reproduce/test case

Trying to update Wallabag container

Copied from original issue: wallabag/wallabag#3018

External Access via NGINX 404

If I try to access the site externally I get this logged:

172.x.x.x - user [17/May/2017:13:34:32 +0000] "GET /wallabag HTTP/1.1" 404 300 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36"

Which then gives a "The server returned a "404 Not Found" in chrome

If I access via the internal 192.168.10.60:8083 it works great

Line in NGINX:

location ^~ /wallabag {
include /config/nginx/proxy.conf;
proxy_pass http://192.168.10.60:8083/;

I use lots of other sites via nginx and they all work great using the above template.
wallabag works great, I have set it up in MYSQL...but while troubleshooting tried a simple 8083:80 config with no other variables and still had the same issue - which points at nginx.

Any ideas?

Enable HTTPS in dockerized Wallabag

From @Suncatcher on July 11, 2017 15:49

Issue details

How can I enable HTTPS on Docker installation on Wallabag? Didn't find any decent documentation on that. I see that Docker container uses nginx for Wallabag. Should I enable HTTPS in nginx config inside container?

Environment

  • wallabag version that exhibits the issue: 2.2.2
  • How did you install wallabag: Docker
  • Last wallabag version that did not exhibit the issue: None
  • php version: 7.0.16
  • OS: AWS AMI Linux 2017.03
  • type of hosting (shared or dedicated): AWS EC2 T2 Micro
  • which storage system you choose at install (SQLite, MySQL/MariaDB or PostgreSQL): Postgre 9.6.2

Steps to reproduce/test case

Trying to enable HTTPS on Docker Wallabag

Copied from original issue: wallabag/wallabag#3275

Symfony: Could not gather sufficient random data

Getting this on a fresh Debian jessie docker CE install. Other containers work fine.
uname -a: Linux Debian-87-jessie-64-minimal 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux

sudo docker run -v /opt/wallabag:/var/www/wallabag/data -p 80:80 wallabag/wallabag
Unable to find image 'wallabag/wallabag:latest' locally
latest: Pulling from wallabag/wallabag
627beaf3eaaf: Pull complete
b04957b0e1ca: Pull complete
f8a4b6141f4a: Pull complete
76a85e86b34a: Pull complete
Digest: sha256:a6589cf54db8b2c0f6dff80bce5e9177cf0a05cbc826b1b9d586b33a4d3e89da
Status: Downloaded newer image for wallabag/wallabag:latest
Starting provisioner...
Provisioner finished.
::ffff:217.228.111.230 - - [08/May/2017:07:11:12 +0000] "GET / HTTP/1.1" 302 208 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
::ffff:217.228.111.230 - - [08/May/2017:07:11:12 +0000] "GET /login HTTP/1.1" 500 31 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
2017/05/08 07:11:12 [error] 308#308: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Exception: Could not gather sufficient random data in /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php:46
Stack trace:
#0 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php(46): random_bytes(32)
#1 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php(57): Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator->generateToken()
#2 /var/www/wallabag/vendor/friendsofsymfony/user-bundle/Controller/SecurityController.php(53): Symfony\Component\Security\Csrf\CsrfTokenManager->getToken('authenticate')
#3 [internal function]: FOS\UserBundle\Controller\SecurityController->loginAction(Object(Symfony\Component\HttpFoundation\Request))
#4 /var/www/wallabag/var/cache/prod/classes.php(4651): call_user_func_array(Array, Array)
#5 /var/www/wallabag/var/cache/prod/classes.php(4606): Symfony\C" while reading response header from upstream, client: ::ffff:217.228.111.230, server: _, request: "GET /login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "176.9.47.51"sudo docker run -v /opt/wallabag:/var/www/wallabag/data -p 80:80 wallabag/wallabag
Unable to find image 'wallabag/wallabag:latest' locally
latest: Pulling from wallabag/wallabag
627beaf3eaaf: Pull complete
b04957b0e1ca: Pull complete
f8a4b6141f4a: Pull complete
76a85e86b34a: Pull complete
Digest: sha256:a6589cf54db8b2c0f6dff80bce5e9177cf0a05cbc826b1b9d586b33a4d3e89da
Status: Downloaded newer image for wallabag/wallabag:latest
Starting provisioner...
Provisioner finished.
--REDACTED-- - - [08/May/2017:07:11:12 +0000] "GET / HTTP/1.1" 302 208 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
--REDACTED-- - - [08/May/2017:07:11:12 +0000] "GET /login HTTP/1.1" 500 31 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36"
2017/05/08 07:11:12 [error] 308#308: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Exception: Could not gather sufficient random data in /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php:46
Stack trace:
#0 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/TokenGenerator/UriSafeTokenGenerator.php(46): random_bytes(32)
#1 /var/www/wallabag/vendor/symfony/symfony/src/Symfony/Component/Security/Csrf/CsrfTokenManager.php(57): Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator->generateToken()
#2 /var/www/wallabag/vendor/friendsofsymfony/user-bundle/Controller/SecurityController.php(53): Symfony\Component\Security\Csrf\CsrfTokenManager->getToken('authenticate')
#3 [internal function]: FOS\UserBundle\Controller\SecurityController->loginAction(Object(Symfony\Component\HttpFoundation\Request))
#4 /var/www/wallabag/var/cache/prod/classes.php(4651): call_user_func_array(Array, Array)
#5 /var/www/wallabag/var/cache/prod/classes.php(4606): Symfony\C" while reading response header from upstream, client: --REDACTED--, server: _, request: "GET /login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "--REDACTED--"

Docker image

From @xsteadfastx on April 5, 2016 12:11

I use Docker containers for all my self hosting services and it would be great to have one for wallabag. i stepped into some problems with it. Mostly it was installation script related. The Script asks for a new admin user and that dialog breaks the build of the image because it doesnt support this interaction. what i did right now was, to provide a basic sqllite file that gets copied to the data/db directory if its not there already. and the container can start fresh. if the file is there it wont get copied and you have everything there like you left the container. i did this with a ansible entrypoint. with that we could easily add support for other databases too because the db init would get started on container starting and not on image creation. here is my first try:

https://github.com/xsteadfastx/dockerfiles/tree/master/wallabag

its not perfect at all. i see it as a first try.

Copied from original issue: wallabag/wallabag#1858

Tag 2.2.2 on Dockerhub

The latest release on hub.docker.com/wallabag/wallabag currently is the 2.2.2 but there is not 2.2.2 tag.

Are there plans to tag 2.2.2 or is that not ready yet?

Option to disable user registration

Hi,

I would like to be able to disable public users registration (the fosuser_registration var in the config) but I don't see this option available in the readme (same question about changing the secret btw)

Thanks

Upgrade from 2.2.X to 2.3.0

Hello,
I'm trying to update from Wallabag 2.2.X to 2.3.0.
So far what I did (I use wallabag/wallabag:latest image in my docker-compose.yml) :

$ docker-compose pull
$ docker-compose up -d

Then, when I'm going to my wallabag, I have the error :

500: Internal Server Error

An exception has been thrown during the rendering of a template ("An exception occurred while executing 'SELECT w0_.id AS id_0 FROM `wallabag_entry` w0_ WHERE w0_.user_id = ? AND w0_.is_starred = 1 GROUP BY w0_.id ORDER BY w0_.starred_at DESC' with params [2]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'w0_.starred_at' in 'order clause'").

So I say myself : you missed something. Right, I have to execute :

docker exec -ti wallabag /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction

And then I have the error (it's the first time I use the command) :

                                                              
                    Application Migrations                    
                                                              

Migrating up to 20171125164500 from 0

  ++ migrating 20160401000000

     -> CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (name), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
Migration 20160401000000 failed during Execution. Error An exception occurred while executing 'CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (name), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;':

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wallabag_craue_config_setting' already exists
12:10:59 ERROR     [console] Error thrown while running command "doctrine:migrations:migrate --env=prod --no-interaction". Message: "An exception occurred while executing 'CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (name), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;':

SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wallabag_craue_config_setting' already exists" ["error" => Doctrine\DBAL\Exception\TableExistsException { …},"command" => "doctrine:migrations:migrate --env=prod --no-interaction","message" => """  An exception occurred while executing 'CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (name), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;':\n  \n  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wallabag_craue_config_setting' already exists  """] []

                                                                                                                                                                                                                              
  [Doctrine\DBAL\Exception\TableExistsException]                                                                                                                                                                              
  An exception occurred while executing 'CREATE TABLE wallabag_craue_config_setting (name VARCHAR(255) NOT NULL, value VARCHAR(255) DEFAULT NULL, section VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_5D9649505E237E06 (nam  
  e), PRIMARY KEY(name)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;':                                                                                                                                
                                                                                                                                                                                                                              
  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wallabag_craue_config_setting' already exists                                                                                                               
                                                                                                                                                                                                                              

                                                                                                                 
  [Doctrine\DBAL\Driver\PDOException]                                                                            
  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wallabag_craue_config_setting' already exists  
                                                                                                                 

                                                                                                                 
  [PDOException]                                                                                                 
  SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'wallabag_craue_config_setting' already exists  
                                                                                                                 

doctrine:migrations:migrate [--write-sql] [--dry-run] [--query-time] [--allow-no-migration] [--configuration [CONFIGURATION]] [--db-configuration [DB-CONFIGURATION]] [--db DB] [--em EM] [--shard SHARD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<version>]

Thank you :-)

Images saved inside container instead of linked volume

Using 2.2.3, I enabled the option to save the images on the pages as well as the pages themselves.
I found that the images are saved to /var/www/wallabag/web/assets/... rather than /var/www/wallabag/data/assets. Since the instructions only mention the data dir, this leaves the saved images in the non-persisted container, rather than the desired storage location.

Docker on Synology not working

I have installed on Synology and i ve changed port, but not working... Other versions, like moritanosuke-wallabag works perfect. Any ideas please ?

Can't use my MariaDB DB

Hi,
First of all, I'm far from being a Docker expert, sorry if this is a newbie issue.

I'm trying to re-build the Docker image to fits my own needs, in particular, to run Wallabag on my Synology, through a Docker container.

  1. I checked the Dockerfile works "out of the box", it does indeed
  2. I checked on my laptop, I can connect my Synology MariaDB with the "wallabag" credentials I created, it works

Then, I changed the Dockerfile like this:

ENV WALLABAG_VERSION=2.0.4 \
    SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql \
    SYMFONY__ENV__DATABASE_HOST=<my synology IP address> \
    SYMFONY__ENV__DATABASE_PORT=3306 \
    SYMFONY__ENV__DATABASE_NAME=wallabag \
    SYMFONY__ENV__DATABASE_USER=wallabag \
    SYMFONY__ENV__DATABASE_PASSWORD=<the password I assigned to the wallabag user> \
    SYMFONY__ENV__SECRET=ovmpmAWXRCabNlMgzlzFXDYmCFfzGv

This is the only change I made to the Dockerfile, all the rest remained unchanged.

This way, docker run still works, but obviously, it still uses sqlite, because the MariaDB Wallabag DB on the Syno stays totally empty.

Any idea of what I did wrong? Thanks.

Found both group and host with same name

Hello :)
When I try to launch wallabag with this command : sudo docker run wallabag/wallabag, its return this :
Starting provisioner... [WARNING]: Found both group and host with same name: localhost
...
So how to fix it ? :D
Thanks

docker-compose setup + mysql doesn't support articles with emojis

i am using the wallabag docker-compose setup. I am receiving a 500: Internal Server Error when I try to bag this page:
https://blog.kentcdodds.com/how-getting-into-open-source-has-been-awesome-for-me-8480cd756a80

I get this error from the browser addon, web application, and android app.

here is the full error message from web application - error message as picture

android app error message:

Server error
Error: com.di72nn.stuff.wallabag.apiwrapper.exceptions.UnsuccessfulResponseException: HTTP response: 500 Internal Server Error

another user maybe had a similar issue and the article he tried to bag gets me also the error described above.

is this maybe a related issue?

posted about it yesterday, but with too little information and probably in the wrong repo

can you help me with this problem?

HTTP code 500 with new (and also existing) installation

Hi.

I run the last docker image available attached to an existing database, but it gave me error 500 with redirection to /login

So I tried to run it with a new database, with the same result.

Here is the logs from the new instance:

12/5/2017 12:39:45[12-May-2017 11:39:45] NOTICE: ready to handle connections
12/5/2017 12:44:2510.42.13.198 - - [12/May/2017:11:44:25 +0000] "GET / HTTP/1.1" 302 212 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0"
12/5/2017 12:44:262017/05/12 11:44:26 [error] 225#225: *3 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such table: wallabag_craue_config_setting in /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:77
12/5/2017 12:44:26Stack trace:
12/5/2017 12:44:26#0 /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(77): PDO->prepare('SELECT t0.name ...', Array)
12/5/2017 12:44:26#1 /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(844): Doctrine\DBAL\Driver\PDOConnection->prepare('SELECT t0.name ...')
12/5/2017 12:44:26#2 /var/www/wallabag/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(712): Doctrine\DBAL\Connection->executeQuery('SELECT t0.name ...', Array, Array)
12/5/2017 12:44:26#3 /var/www/wallabag/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(196): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->load(Array, NULL, NULL, Array, NULL, 1, NULL)
12/5/2017 12:44:26#4 /var/www/wallabag/vendor/craue/config-bundle/Util/Config.php(38): Doctrine\ORM\EntityRepository->findOneBy(Array)
12/5/2017 12:44:26#5 /var/www/wallabag/ven" while reading response header from upstream, client: 10.42.13.198, server: _, request: "GET /login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "wallabag.syshell.net"
12/5/2017 12:44:2610.42.13.198 - - [12/May/2017:11:44:26 +0000] "GET /login HTTP/1.1" 500 31 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0"
12/5/2017 12:44:262017/05/12 11:44:26 [error] 225#225: *5 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 1 no such table: wallabag_craue_config_setting in /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:77
12/5/2017 12:44:26Stack trace:
12/5/2017 12:44:26#0 /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(77): PDO->prepare('SELECT t0.name ...', Array)
12/5/2017 12:44:26#1 /var/www/wallabag/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(844): Doctrine\DBAL\Driver\PDOConnection->prepare('SELECT t0.name ...')
12/5/2017 12:44:26#2 /var/www/wallabag/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(712): Doctrine\DBAL\Connection->executeQuery('SELECT t0.name ...', Array, Array)
12/5/2017 12:44:26#3 /var/www/wallabag/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(196): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->load(Array, NULL, NULL, Array, NULL, 1, NULL)
12/5/2017 12:44:26#4 /var/www/wallabag/vendor/craue/config-bundle/Util/Config.php(38): Doctrine\ORM\EntityRepository->findOneBy(Array)
12/5/2017 12:44:26#5 /var/www/wallabag/ven" while reading response header from upstream, client: 10.42.13.198, server: _, request: "GET /login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "wallabag.syshell.net"
12/5/2017 12:44:2610.42.13.198 - - [12/May/2017:11:44:26 +0000] "GET /login HTTP/1.1" 500 31 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0"

Change docker hub repo to be managed by travis

So... we have a version for 2.1.1 now... but docker hub has some strange behavior building it. it throws a error... i tested it with a fork from this repo and added it too to the docker hub... it builds just fine. i guess its a problem with the cache or something. i had this error once and a docker engine restart "fixed" this for me.

so here is my idea: i read alot through bug reports from the docker hub and there is a tendency that they wont work on the hub no more to push the docker cloud. we use travis already to test the building. this works well. we also could push this image directly to the hub. or even better: to other registries too (like https://quay.io). We would have a little better control of the building process. Right now its an auto build on the docker hub and it checks for pushes on the repository and starts to build. if it fails... we cant do anything.

im experimenting right now with my own fork to see what needs to be done. the worst scenario would be... to delete the repo and readd it as a normal docker hub repo because there is no way right now migrate the repo type.

Migration script assumes quote table names are enabled for MySQL

I run Wallabag in docker and was trying to upgrade 2.0.8 to 2.1.6 but had the following problem:

-> ALTER TABLE "wallabag_entry" ADD uuid LONGTEXT DEFAULT NULL
Migration 20160410190541 failed during Execution. Error An exception occurred while executing 'ALTER TABLE "wallabag_entry" ADD uuid LONGTEXT DEFAULT NULL':

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"wallabag_entry" ADD uuid LONGTEXT DEFAULT NULL' at line 1

This was similar to the issue described in issue 2364 but with MySQL. Eventually I realised the issue was with double quotes around the table names. I resolved the upgrade by logging into MySQL and running SET GLOBAL SQL_MODE=ANSI_QUOTES before performing the production migration. Reverting the setting after migration doesn't seem to cause a problem (yet).

I have a common database server for several services so I don't want to globally change behaviour. Could the migration script do a session level SET SQL_MODE=ANSI_QUOTES before running its commands to ensure the migration works as designed?

Does not honor "is_starred"

On v2 import of fresh json export from 2.2.2, wallabag does not preserve stars.

Environment:
Docker image: latest (2.2.3)
DB: postgresql
Asynchronous: none
Import: json, v2
Errors: none reported from client
Host: arch x64, docker 1:17.05-01

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.