Git Product home page Git Product logo

docker-piwigo's Introduction

linuxserver.io

Blog Discord Discourse Fleet GitHub Open Collective

The LinuxServer.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • Blog - all the things you can do with our containers including How-To guides, opinions and much more!
  • Discord - realtime support / chat with the community and the team.
  • Discourse - post on our community forum.
  • Fleet - an online web interface which displays all of our maintained images.
  • GitHub - view the source for all of our repositories.
  • Open Collective - please consider helping us by either donating or contributing to our budget

Scarf.io pulls GitHub Stars GitHub Release GitHub Package Repository GitLab Container Registry Quay.io Docker Pulls Docker Stars Jenkins Build LSIO CI

Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.

piwigo

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here.

Simply pulling lscr.io/linuxserver/piwigo:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

Architecture Available Tag
x86-64 amd64-<version tag>
arm64 arm64v8-<version tag>
armhf

Application Setup

  • You must create a user and database for piwigo to use in a mysql/mariadb server.

  • Self-signed keys are generated the first time you run the container and can be found in /config/keys, if needed, you can replace them with your own.

  • The easiest way to edit the configuration file is to enable local files editor from the plugins page and use it to configure email settings etc."

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

docker-compose (recommended, click here for more info)

---
services:
  piwigo:
    image: lscr.io/linuxserver/piwigo:latest
    container_name: piwigo
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/piwigo/config:/config
      - /path/to/appdata/gallery:/gallery
    ports:
      - 80:80
    restart: unless-stopped
docker run -d \
  --name=piwigo \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -p 80:80 \
  -v /path/to/piwigo/config:/config \
  -v /path/to/appdata/gallery:/gallery \
  --restart unless-stopped \
  lscr.io/linuxserver/piwigo:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 80 Application WebUI
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e TZ=Etc/UTC specify a timezone to use, see this list.
-v /config Persistent config files
-v /gallery Image storage for Piwigo

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

id your_user

Example output:

uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    docker exec -it piwigo /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f piwigo
  • Container version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' piwigo
  • Image version number:

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/piwigo:latest

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      docker-compose pull
    • Single image:

      docker-compose pull piwigo
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

      docker-compose up -d piwigo
  • You can also remove the old dangling images:

    docker image prune

Via Docker Run

  • Update the image:

    docker pull lscr.io/linuxserver/piwigo:latest
  • Stop the running container:

    docker stop piwigo
  • Delete the container:

    docker rm piwigo
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    docker image prune

Image Update Notifications - Diun (Docker Image Update Notifier)

tip: We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

git clone https://github.com/linuxserver/docker-piwigo.git
cd docker-piwigo
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/piwigo:latest .

The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static

docker run --rm --privileged multiarch/qemu-user-static:register --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 31.05.24: - Rebase to Alpine 3.20. Existing users should update their nginx confs to avoid http2 deprecation warnings.
  • 07.04.24: - Increase php workers to fix Android uploading in bulk
  • 02.03.24: - Fix HEIC file format support.
  • 23.12.23: - Rebase to Alpine 3.19 with php 8.3.
  • 12.12.23: - Rebase to Alpine 3.18.
  • 03.06.23: - Revert to Alpine 3.17 due to compatibility issues with php 8.2.
  • 25.05.23: - Rebase to Alpine 3.18, deprecate armhf.
  • 20.01.23: - Rebase to alpine 3.17 with php8.1.
  • 16.01.23: - Fix broken custom template persistence.
  • 08.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Move application install to /app/www/public, add migration for existing users. Container updates should now update the application correctly.
  • 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs (see changes announcement).
  • 29.06.21: - Rebase to 3.14, Add php7-zip package
  • 20.05.21: - Create separate volume for image data
  • 23.01.21: - Rebasing to alpine 3.13.
  • 12.12.20: - Increased upload_max_filesize in php.ini
  • 01.06.20: - Rebasing to alpine 3.12.
  • 19.12.19: - Rebasing to alpine 3.11.
  • 28.06.19: - Rebasing to alpine 3.10.
  • 12.06.19: - Add ffmpeg and other deps as needed by popular plugins.
  • 23.03.19: - Switching to new Base images, shift to arm32v7 tag.
  • 01.03.19: - Add php-ctype & php-curl.
  • 22.02.19: - Rebasing to alpine 3.9, add php-ldap.
  • 28.01.19: - Rebase to alpine linux 3.8 , add pipeline logic and multi arch.
  • 25.01.18: - Rebase to alpine linux 3.7.
  • 25.05.17: - Rebase to alpine linux 3.6.
  • 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick.
  • 20.04.17: - Add php7-exif package, thanks iiska
  • 23.02.17: - Rebase to alpine linux 3.5 and nginx.
  • 14.10.16: - Add version layer information.
  • 10.09.16: - Add layer badges to README.
  • 29.08.15: - Initial Release.

docker-piwigo's People

Contributors

alex-phillips avatar aptalca avatar blastrock avatar chbmb avatar danielhoherd avatar homerr avatar iiska avatar ironicbadger avatar j0nnymoe avatar julienhoarau avatar linuxserver-ci avatar lonix avatar nemchik avatar roxedus avatar sparklyballs avatar thelamer avatar thespad 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

docker-piwigo's Issues

[BUG] PHP message: PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc()

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

After a fresh install, I am receiving the following error PHP message: PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc() in the NGINX PHP FPM logs.

Expected Behavior

No response

Steps To Reproduce

  1. Install the app from Docker
  2. Load the page - blank page
  3. View the logs

Environment

- OS: Unraid
- How docker service was installed: Unraid App Center

CPU architecture

x86-64

Docker creation

Default run command.

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 

   Brought to you by linuxserver.io
───────────────────────────────────────

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    99
User GID:    100
───────────────────────────────────────

using keys found in /config/keys
**** The following active confs have different version dates than the samples that are shipped. ****
**** This may be due to user customization or an update to the samples. ****
**** You should compare the following files to the samples in the same folder and update them. ****
**** Use the link at the top of the file to view the changelog. ****
┌────────────┬────────────┬────────────────────────────────────────────────────────────────────────┐
│  old date  │  new date  │ path                                                                   │
├────────────┼────────────┼────────────────────────────────────────────────────────────────────────┤
│            │ 2023-04-13 │ /config/nginx/nginx.conf                                               │
│            │ 2023-04-13 │ /config/nginx/site-confs/default.conf                                  │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
[custom-init] No custom files found, skipping...
[ls.io-init] done.

Can't connect to site.

docker Standalone 19.03.4

version: "2"
services:
piwigo:
image: linuxserver/piwigo
container_name: piwigo
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /srv/dev-disk-by-label-4T/piwigo:/config
ports:
- 8080:8080
restart: unless-stopped


User uid: 1000

User gid: 1000


[cont-init.d] 10-adduser: exited 0.

[cont-init.d] 20-config: executing...

[cont-init.d] 20-config: exited 0.

[cont-init.d] 30-keygen: executing...

using keys found in /config/keys

[cont-init.d] 30-keygen: exited 0.

[cont-init.d] 40-install: executing...

[cont-init.d] 40-install: exited 0.

[cont-init.d] 99-custom-files: executing...

[custom-init] no custom files found exiting...

[cont-init.d] 99-custom-files: exited 0.

[cont-init.d] done.

[services.d] starting services

[services.d] done.

[BUG] Loads of PHP warnings after install and upload of photos

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Similar to existing closed issues, eg on the main album page, see below. Is there something missing in the instructions or a workaround.

Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 203
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 92
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 93
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 203
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 92
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 93
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 203
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 206
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 207
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 211
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 211
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 211
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 92
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 93
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 203
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 92
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 93
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 318
Warning: Trying to access array offset on value of type null in /config/www/themes/modus/themeconf.inc.php on line 203
Warning: Trying to access array offset on value of type null in /app/www/public/include/derivative_params.inc.php on line 92

Expected Behavior

No errors!

Steps To Reproduce

Go to main album page as an example. Admin page is messed up too which may be related

Environment

- OS:Ubuntu Server22.04
- How docker service was installed: apt get

CPU architecture

x86-64

Docker creation

Done via portainer

Container logs

There is no container called linuxserver.io

Error loading certificate "/config/keys/cert.crt" at docker run time

linuxserver.io


Expected Behavior

Run the docker image and then go to port mapped to port 80 on a browser and see the piwigo app

Current Behavior

Error with nginx certificate does not allow to start the container

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing... 
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing... 
usermod: no changes

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    911
User gid:    911
-------------------------------------


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Your DockerHost is most likely running an outdated version of libseccomp

To fix this, please visit https://docs.linuxserver.io/faq#libseccomp

Some apps might not behave correctly without this

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing... 
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing... 
generating self-signed keys in /config/keys, you can replace these with your own keys if required
Generating a RSA private key
..................................+++++
..............................................................................................+++++
writing new private key to '/config/keys/cert.key'
-----
1995617168:error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time:crypto/asn1/a_time.c:330:
[cont-init.d] 30-keygen: exited 1.
[cont-init.d] 40-install: executing... 
[cont-init.d] 40-install: exited 0.
[cont-init.d] 99-custom-files: executing... 
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)

Steps to Reproduce

  1. Run the container docker run --rm -p 1089:80 linuxserver/piwigo:version-11.5.0

Environment

Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
Docker installed from official docker repo (docker.com)

Command used to create docker container (run/create/compose/screenshot)

Docker logs

Mobile app does not work with this implementation

Site works perfectly in browser, no complaints at all, and I love it!

But the mobile apps (both andriod and ios) dont work. They log in without issue, but all photos and album thumbnails etc are a white square, and no content is visible. Any hints welcome!

[BUG] Piwigo jumps in and out of logged in user when using reverse proxy (SWAG)

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I run Piwigo as a docker in Unraid.
I also run the SWAG reverse proxy in Unraid
Since they both use the same custom bridge based network, SWAG connects to Piwigo by hostname.
I simply copied the piwigo.subdomain.conf.sample to piwigo.subdomain.conf
I suppose this is fairly standard setup, and has worked well for me on lots of other containers.

But with Piwigo it does not work properly.
The site opens just fine, and I can log in.
When when I start flickering through albums, I am sometimes logged in and sometimes not.
Sometimes I'm able to get into the Administration page, sometimes not.

If I open Piwigo directly without going through the reverse proxy, it works fine

Anyone else experiencing problems when going through SWAG?

Thanks

Expected Behavior

No response

Steps To Reproduce

It is reproduced simply by accessing the application through SWAG

Environment

- OS: Unraid 6.12.4
- How docker service was installed: Through UNRAID

CPU architecture

x86-64

Docker creation

docker run
  -d
  --name='piwigo'
  --net='frontend'
  -e TZ="Europe/Berlin"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Unraid"
  -e HOST_CONTAINERNAME="piwigo"
  -e 'PUID'='99'
  -e 'PGID'='100'
  -e 'UMASK'='022'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:80]'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/piwigo-logo.png'
  -p '8084:80/tcp'
  -v '/mnt/user/felles/bilder/':'/gallery/galleries':'ro,slave'
  -v '/mnt/user/appdata/docker-containers/piwigo':'/config':'rw' 'lscr.io/linuxserver/piwigo'

Container logs

..

Cannot connect to server

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.


Expected Behavior

Continue the installation process

Current Behavior

Error message: Cannot connect to server

Environment

OS: Elementay OS
CPU architecture: x86_64
How docker service was installed: Snap

Command used to create docker container (run/create/compose/screenshot)

version: "2"
services:
MySQL:
image: mysql:latest
restart: always
container_name: piwi_MySQL
environment:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test
volumes:
- ./piwigo/db:/var/lib/mysql

piwigo:
image: linuxserver/piwigo
container_name: piwigo
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./piwigo/config
ports:
- 80:80
restart: unless-stopped

Docker logs

mazza@MacBookPro:~/Documents/Docker$ sudo docker-compose up
WARNING: Found orphan containers (piwi_db) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
piwigo is up-to-date
Creating piwi_MySQL ... done
Attaching to piwigo, piwi_MySQL
piwi_MySQL | 2020-02-26 09:33:25+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
piwigo    | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
piwigo    | [s6-init] ensuring user provided files have correct perms...exited 0.
piwigo    | [fix-attrs.d] applying ownership & permissions fixes...
piwigo    | [fix-attrs.d] done.
piwigo    | [cont-init.d] executing container initialization scripts...
piwigo    | [cont-init.d] 01-envfile: executing... 
piwigo    | [cont-init.d] 01-envfile: exited 0.
piwigo    | [cont-init.d] 10-adduser: executing... 
piwigo    | 
piwigo    | -------------------------------------
piwigo    |           _         ()
piwigo    |          | |  ___   _    __
piwigo    |          | | / __| | |  /  \ 
piwigo    |          | | \__ \ | | | () |
piwigo    |          |_| |___/ |_|  \__/
piwigo    | 
piwigo    | 
piwigo    | Brought to you by linuxserver.io
piwigo    | We gratefully accept donations at:
piwigo    | https://www.linuxserver.io/donate/
piwigo    | -------------------------------------
piwigo    | GID/UID
piwigo    | -------------------------------------
piwigo    | 
piwigo    | User uid:    1000
piwigo    | User gid:    1000
piwigo    | -------------------------------------
piwigo    | 
piwigo    | [cont-init.d] 10-adduser: exited 0.
piwigo    | [cont-init.d] 20-config: executing... 
piwigo    | [cont-init.d] 20-config: exited 0.
piwigo    | [cont-init.d] 30-keygen: executing... 
piwigo    | using keys found in /config/keys
piwigo    | [cont-init.d] 30-keygen: exited 0.
piwigo    | [cont-init.d] 40-install: executing... 
piwigo    | [cont-init.d] 40-install: exited 0.
piwigo    | [cont-init.d] 99-custom-files: executing... 
piwigo    | [custom-init] no custom files found exiting...
piwigo    | [cont-init.d] 99-custom-files: exited 0.
piwigo    | [cont-init.d] done.
piwigo    | [services.d] starting services
piwigo    | [services.d] done.
piwi_MySQL | 2020-02-26 09:33:25+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
piwi_MySQL | 2020-02-26 09:33:25+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian9 started.
piwi_MySQL | 2020-02-26 09:33:25+00:00 [Note] [Entrypoint]: Initializing database files
piwi_MySQL | 2020-02-26T09:33:25.826498Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
piwi_MySQL | 2020-02-26T09:33:25.826505Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
piwi_MySQL | 2020-02-26T09:33:25.826808Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
piwi_MySQL | 2020-02-26T09:33:25.826905Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 46
piwi_MySQL | 2020-02-26T09:33:28.191767Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
piwi_MySQL | 2020-02-26 09:33:31+00:00 [Note] [Entrypoint]: Database files initialized
piwi_MySQL | 2020-02-26 09:33:31+00:00 [Note] [Entrypoint]: Starting temporary server
piwi_MySQL | 2020-02-26T09:33:31.643138Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
piwi_MySQL | 2020-02-26T09:33:31.643144Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
piwi_MySQL | 2020-02-26T09:33:31.864660Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
piwi_MySQL | 2020-02-26T09:33:31.864761Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 96
piwi_MySQL | 2020-02-26T09:33:32.353207Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
piwi_MySQL | 2020-02-26T09:33:32.356940Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
piwi_MySQL | 2020-02-26T09:33:32.378935Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.19'  socket: '/var/run/mysqld/mysqld.sock'  port: 0  MySQL Community Server - GPL.
piwi_MySQL | 2020-02-26 09:33:32+00:00 [Note] [Entrypoint]: Temporary server started.
piwi_MySQL | 2020-02-26T09:33:32.472006Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock'
piwi_MySQL | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
piwi_MySQL | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
piwi_MySQL | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
piwi_MySQL | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it.
piwi_MySQL | 2020-02-26 09:33:35+00:00 [Note] [Entrypoint]: Creating database test
piwi_MySQL | 2020-02-26 09:33:35+00:00 [Note] [Entrypoint]: Creating user test
piwi_MySQL | 2020-02-26 09:33:35+00:00 [Note] [Entrypoint]: Giving user test access to schema test
piwi_MySQL | 
piwi_MySQL | 2020-02-26 09:33:35+00:00 [Note] [Entrypoint]: Stopping temporary server
piwi_MySQL | 2020-02-26T09:33:35.438958Z 14 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.19).
piwi_MySQL | 2020-02-26T09:33:36.549353Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19)  MySQL Community Server - GPL.
piwi_MySQL | 2020-02-26 09:33:37+00:00 [Note] [Entrypoint]: Temporary server stopped
piwi_MySQL | 
piwi_MySQL | 2020-02-26 09:33:37+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up.
piwi_MySQL | 
piwi_MySQL | 2020-02-26T09:33:37.460242Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
piwi_MySQL | 2020-02-26T09:33:37.460254Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
piwi_MySQL | 2020-02-26T09:33:37.682410Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
piwi_MySQL | 2020-02-26T09:33:37.682510Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 1
piwi_MySQL | 2020-02-26T09:33:38.107549Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
piwi_MySQL | 2020-02-26T09:33:38.111037Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
piwi_MySQL | 2020-02-26T09:33:38.131422Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.19'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
piwi_MySQL | 2020-02-26T09:33:38.267637Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060

Getting error - Deprecated: Invalid characters passed for attempted conversion, these have been ignored in /gallery/include/template.class.php on line 215

linuxserver.io

Steps to Reproduce

  1. Install template or Arm32 OS
  2. Connect to mysql system and run the installer
  3. Get error on the page.

Environment

OS:
Pi OS bullseye 32
CPU architecture: x86_64/arm32/arm64
arm32
How docker service was installed:
Pi-Hosted - https://github.com/novaspirit/pi-hosted

Docker logs

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 01-envfile: executing...
[cont-init.d] 01-envfile: exited 0.
[cont-init.d] 10-adduser: executing...


      _         ()
     | |  ___   _    __
     | | / __| | |  /  \
     | | \__ \ | | | () |
     |_| |___/ |_|  \__/

Brought to you by linuxserver.io

To support LSIO projects visit:
https://www.linuxserver.io/donate/

GID/UID

User uid: 1000
User gid: 1000

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing...
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing...
generating self-signed keys in /config/keys, you can replace these with your own keys if required
Generating a RSA private key
.............................................................................................+++++
.....+++++
writing new private key to '/config/keys/cert.key'

[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 40-install: executing...
[cont-init.d] 40-install: exited 0.
[cont-init.d] 90-custom-folders: executing...
[cont-init.d] 90-custom-folders: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

================================

Looks like there is an issue for it on the Piwigo issue queue with a fix.

Piwigo/Piwigo#1363

[BUG] Upgrade php8.2 broke piwigo

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Since i update my docker image to 13.7.0, my piwigo website is borken with a lot of this messages :

Deprecated
: Creation of dynamic property Smarty_Internal_Extension_Handler::$unregisterFilter is deprecated in
/config/www/gallery/include/smarty/libs/sysplugins/smarty_internal_extension_handler.php
on line
182

Deprecated
: Creation of dynamic property CssAtMediaStartToken::$MediaTypes is deprecated in
/config/www/gallery/include/cssmin.class.php
on line
34

Expected Behavior

I think it's the same problem here : https://piwigo.org/forum/viewtopic.php?id=32728

Steps To Reproduce

Just open login webpage

Environment

- OS: Synology
- How docker service was installed: package

CPU architecture

x86-64

Docker creation

basic docker run

Container logs

nothings in logs

[BUG] Some plugins do not work due to the use of symlinks for plugin directory

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hello,

I'm trying to use this docker image with the plugin OpenID Connect.
It works with the image lscr.io/linuxserver/piwigo:13.1.0, but starting with lscr.io/linuxserver/piwigo:13.2.0 the plugin does not work :
When I open http://localhost:8080/plugins/OpenIdConnect/auth.php I get an internal error (code 500) instead of being redirected to the auth provider.

The image 13.2.0 correspond, I think, to the addition of the symbolic link /app/www/public/plugins -> /config/www/plugins. I believe this is because some modules define relative path, like here auth.php#L18 which doesn't points to the right directory when symbolic links are used.

There is also an issue in Piwigo repository which does not seem up-to-date but which mention incompatibility between symbolic links and some plugins: Piwigo#907

When I remove the symlink, be deleting the line init-piwigo-config/run#L50, the module works perfectly.

Expected Behavior

http://localhost:8080/plugins/OpenIdConnect/auth.php shouldn't raise an internal error.

Steps To Reproduce

  1. In Piwigo administration panel, install and enable the plugin OpenID Connect
  2. Edit the plugin configuration and add an Issuer URL, Client ID and Client secret. Check Enable Authorization Code Flow and save settings
  3. Logout
  4. Try to log in, the server respond with an internal error.

Environment

- OS: macOS 13.6.1
- How docker service was installed: I installed Docker Desktop using [Docker Desktop](https://docs.docker.com/desktop/install/mac-install/) installer

CPU architecture

arm64

Docker creation

I use the following Docker compose file:

version: "3"
services:
  piwigo-app:
    image: lscr.io/linuxserver/piwigo:13.8.0
    container_name: piwigo-app
    restart: unless-stopped
    volumes:
      - ./piwigo-app/config:/config
      - ./piwigo-app/gallery:/gallery
    env_file: .env
    networks:
      - piwigo-backend
    ports:
      - 8080:80

  piwigo-db:
    image: mariadb:10.11.2
    container_name: piwigo-db
    restart: unless-stopped
    volumes:
      - ./piwigo-db:/var/lib/mysql
    env_file: .env
    networks:
      - piwigo-backend

networks:
  piwigo-backend:
    name: piwigo-backend

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 

   Brought to you by linuxserver.io
───────────────────────────────────────

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1000
User GID:    1000
───────────────────────────────────────

using keys found in /config/keys
[custom-init] No custom files found, skipping...
[ls.io-init] done.

In /config/log/nginx/error.log there is also an error:

2023/11/11 14:52:29 [error] 262#262: *3 FastCGI sent in stderr: "PHP message: PHP Warning:  require_once(../../include/common.inc.php): Failed to open stream: No such file or directory in /config/www/plugins/OpenIdConnect/auth.php on line 26PHP message: PHP Fatal error:  Uncaught Error: Failed opening required '../../include/common.inc.php' (include_path='.:/usr/share/php81') in /config/www/plugins/OpenIdConnect/auth.php:26
Stack trace:
#0 {main}
  thrown in /config/www/plugins/OpenIdConnect/auth.php on line 26" while reading response header from upstream, client: 192.168.65.1, server: _, request: "GET /plugins/OpenIdConnect/auth.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8080", referrer: "http://localhost:8080/"

How to increase max file size correctly.

Good morning.

I just increased those values on php.ini:
post_max_size => 10240M => 10240M
upload_max_filesize => 2048M => 2048M
post_max_size => 10240M => 10240M

From the default 100MB limit just to allow upload my DSLR pics (which are too big) and upload some videos vía videojs plugin but those seems to have no effect:

That's a 1,4GB vídeo:

image

¿Where are those vars ignored? Using nginx with max_body_size on 0; (unlimited)

Thanks in advance.

Piwigo with an Apache reverse proxy -> links broken

I'm trying to use this docker image with an Apache reverse proxy and a subpath, e.g. https://xyz.net/piwigo.
It works but not all of it. A lot of icons are broken and some links too. E.g. when I log in I'm getting redirected to the wrong url. Start page -> log in -> redirection to https://xyz.net instead of https://xyz.net/piwigo

docker compose file:

piwigo:
  depends_on:
   - sql
  image: linuxserver/piwigo:latest
  container_name: piwigo
  restart: always
  ports:
   - "127.0.0.1:20008:80"
  volumes:
   - /etc/timezone:/etc/timezone:ro
   - /etc/localtime:/etc/localtime:ro
   - /opt/piwigo:/config
  networks:
   - sql

relevant apache config:

RewriteRule ^/piwigo$ /piwigo/ [R,L]
ProxyPass "/piwigo" "http://localhost:20008"
ProxyPassReverse "/piwigo" "http://localhost:20008"

Any ideas how to get this config working?

After installation in unraid failed.

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

After installation in unraid, the webui immediately calls update.php and shows a blank screen. What's going wrong?

Expected Behavior

No response

Steps To Reproduce

  1. Start Unraid -> Apps -> Piwigo -> install
  2. Change WebGUI -> 7080
  3. Set Path: /gallery -> /mnt/user/piwigo.tmp/
  4. Apply

Environment

- OS:Unraid 6.12.8
- How docker service was installed: via Unraid
- Piwigo service installed: Apps -> Piwigo
- Path to gallery: New share piwigo.tmp

CPU architecture

x86-64

Docker creation

Unraid mechanism

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝

   Brought to you by linuxserver.io
───────────────────────────────────────

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    99
User GID:    100
───────────────────────────────────────

using keys found in /config/keys
[custom-init] No custom files found, skipping...
[ls.io-init] done.

[BUG] Site isn't working - error 500

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I've set up the piwigo container and a mariadb in docker. I open up the adress for piwigo in a browser and get the installation screen. After entering all the details and clicking on start installation, I just get an error site, saying the page isn't working with http error 500. I tried restarting the container but that didnt help. Theres also no error showing up in the log.

Expected Behavior

No response

Steps To Reproduce

Install docker container, open piwigo site and port. Enter details, click on install

Environment

- OS: Raspberry Pi OS(64bit)
- How docker service was installed: portainer stack

CPU architecture

arm64

Docker creation

---
version: "2.1"
services:
  piwigo:
    image: linuxserver/piwigo:latest
    container_name: piwigo
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - /home/pi/docker/piwigo/config:/config
      - /home/pi/docker/piwigo/gallery:/gallery
    ports:
      - 32180:80
    restart: unless-stopped

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: executing...
[migrations] 01-nginx-site-confs-default: succeeded
[migrations] done
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║      
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
Setting resolver to  127.0.0.11
Setting worker_processes to 4
generating self-signed keys in /config/keys, you can replace these with your own keys if required
.+.....+.+.....+...+.............+...+..+.........+..................+.+.....+.+...+...+...+............+..+......+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*....+..........+...+......+...+..+..........+...........+...+......+.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+..+.+..+.......+...+..............+.+.....+............+.......+.........+..+.......+..+...+.+..+.........+....+..+...+....+............+...............+......+.....+...............+.........+................+..+.+.........+...........+..........+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...+....+........+...+....+..............+.+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..........+..+.......+......+..............+......+.+......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+.+.....+....+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
[custom-init] No custom files found, skipping...
[ls.io-init] done.
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
usermod: no changes
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║      
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
using keys found in /config/keys
[custom-init] No custom files found, skipping...
[ls.io-init] done.
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
usermod: no changes
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║      
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    1000
User GID:    1000
───────────────────────────────────────
using keys found in /config/keys
[custom-init] No custom files found, skipping...
[ls.io-init] done.

HTTP error on photo upload (504 Gateway timeout)

Current Behavior

When uploading a bunch of photos with the Web upload form, each photo get stuck at 100% for some time before doing an HTTP error and going to the next photo.

This seems to be caused by a 504 Gateway timeout from Nginx:

2020-06-03-104604_740x290_scrot

2020-06-03-104637_995x144_scrot

At the end, all the uploaded photos are accessible, but this timeout means it takes approx. a minute per picture to upload.

I'm pretty sure this is not a performance issue of the server as I have plenty of RAM and CPU and never come close to maxing them out.

Maybe there could be some nginx configuration changes to improve this ?

Environment

Using the example docker-compose with mariadb:10.3.11 and a traefik reverse proxy.
However, I tried removing traefik and accessing directly the nginx from the container but the problem was still there.

Docker logs

photos_1         | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
photos_1         | [s6-init] ensuring user provided files have correct perms...exited 0.
photos_1         | [fix-attrs.d] applying ownership & permissions fixes...
photos_1         | [fix-attrs.d] done.
photos_1         | [cont-init.d] executing container initialization scripts...
photos_1         | [cont-init.d] 01-envfile: executing... 
photos_1         | [cont-init.d] 01-envfile: exited 0.
photos_1         | [cont-init.d] 10-adduser: executing... 
photos_1         | -------------------------------------
photos_1         |           _         ()
photos_1         |          | |  ___   _    __
photos_1         |          | | / __| | |  /  \ 
photos_1         |          | | \__ \ | | | () |
photos_1         |          |_| |___/ |_|  \__/
photos_1         | Brought to you by linuxserver.io
photos_1         | -------------------------------------
photos_1         | To support LSIO projects visit:
photos_1         | https://www.linuxserver.io/donate/
photos_1         | -------------------------------------
photos_1         | GID/UID
photos_1         | -------------------------------------
photos_1         | User uid:    1000
photos_1         | User gid:    1000
photos_1         | -------------------------------------
photos_1         | [cont-init.d] 10-adduser: exited 0.
photos_1         | [cont-init.d] 20-config: executing... 
photos_1         | [cont-init.d] 20-config: exited 0.
photos_1         | [cont-init.d] 30-keygen: executing... 
photos_1         | using keys found in /config/keys
photos_1         | [cont-init.d] 30-keygen: exited 0.
photos_1         | [cont-init.d] 40-install: executing... 
photos_1         | [cont-init.d] 40-install: exited 0.
photos_1         | [cont-init.d] 99-custom-files: executing... 
photos_1         | [custom-init] no custom files found exiting...
photos_1         | [cont-init.d] 99-custom-files: exited 0.
photos_1         | [cont-init.d] done.
photos_1         | [services.d] starting services
photos_1         | [services.d] done.

[BUG] < Operation not permitted>

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

1、
docker run -d
--name=piwigo
--privileged=true
-e PUID=1000
-e PGID=1000
-p 8082:8082
-v /mnt/sdcard/piwigo/config:/config
-v /mnt/sdcard/piwigo/gallery:/gallery
--restart unless-stopped
lscr.io/linuxserver/piwigo:latest

It reports:

�pchown: changing ownership of '/config/www/themes/smartpocket/language/tr_TR/index.php': Operation not permitted
�uchown: changing ownership of '/config/www/themes/smartpocket/language/tr_TR/theme.lang.php': Operation not permitted
�fchown: changing ownership of '/config/www/themes/smartpocket/language/tr_TR': Operation not permitted
�pchown: changing ownership of '/config/www/themes/smartpocket/language/uk_UA/index.php': Operation not permitted
�uchown: changing ownership of '/config/www/themes/smartpocket/language/uk_UA/theme.lang.php': Operation not permitted
�fchown: changing ownership of '/config/www/themes/smartpocket/language/uk_UA': Operation not permitted
�pchown: changing ownership of '/config/www/themes/smartpocket/language/vi_VN/index.php': Operation not permitted
�uchown: changing ownership of '/config/www/themes/smartpocket/language/vi_VN/theme.lang.php': Operation not permitted
�fchown: changing ownership of '/config/www/themes/smartpocket/language/vi_VN': Operation not permitted
�pchown: changing ownership of '/config/www/themes/smartpocket/language/zh_CN/index.php': Operation not permitted
�uchown: changing ownership of '/config/www/themes/smartpocket/language/zh_CN/theme.lang.php': Operation not permitted
�fchown: changing ownership of '/config/www/themes/smartpocket/language/zh_CN': Operation not permitted
�pchown: changing ownership of '/config/www/themes/smartpocket/language/zh_HK/index.php': Operation not permitted
�uchown: changing ownership of '/config/www/themes/smartpocket/language/zh_HK/theme.lang.php': Operation not permitted
�fchown: changing ownership of '/config/www/themes/smartpocket/language/zh_HK': Operation not permitted
�pchown: changing ownership of '/config/www/themes/smartpocket/language/zh_TW/index.php': Operation not permitted
�uchown: changing ownership of '/config/www/themes/smartpocket/language/zh_TW/theme.lang.php': Operation not permitted
�fchown: changing ownership of '/config/www/themes/smartpocket/language/zh_TW': Operation not permitted
chown: changing ownership of '/config/www/themes/smartpocket/language': Operation not permitted �hchown: changing ownership of '/config/www/themes/smartpocket/pem_metadata.txt': Operation not permitted �fchown: changing ownership of '/config/www/themes/smartpocket/photoswipe.css': Operation not permitted �fchown: changing ownership of '/config/www/themes/smartpocket/screenshot.png': Operation not permitted �jchown: changing ownership of '/config/www/themes/smartpocket/template/about.tpl': Operation not permitted �}chown: changing ownership of '/config/www/themes/smartpocket/template/add_menu_on_public_pages.tpl': Operation not permitted �qchown: changing ownership of '/config/www/themes/smartpocket/template/comment_list.tpl': Operation not permitted �mchown: changing ownership of '/config/www/themes/smartpocket/template/comments.tpl': Operation not permitted �kchown: changing ownership of '/config/www/themes/smartpocket/template/footer.tpl': Operation not permitted �kchown: changing ownership of '/config/www/themes/smartpocket/template/header.tpl': Operation not permitted �schown: changing ownership of '/config/www/themes/smartpocket/template/identification.tpl': Operation not permitted �jchown: changing ownership of '/config/www/themes/smartpocket/template/index.tpl': Operation not permitted �qchown: changing ownership of '/config/www/themes/smartpocket/template/infos_errors.tpl': Operation not permitted �xchown: changing ownership of '/config/www/themes/smartpocket/template/mainpage_categories.tpl': Operation not permitted �lchown: changing ownership of '/config/www/themes/smartpocket/template/menubar.tpl': Operation not permitted �wchown: changing ownership of '/config/www/themes/smartpocket/template/menubar_categories.tpl': Operation not permitted �{chown: changing ownership of '/config/www/themes/smartpocket/template/menubar_identification.tpl': Operation not permitted �rchown: changing ownership of '/config/www/themes/smartpocket/template/menubar_links.tpl': Operation not permitted �qchown: changing ownership of '/config/www/themes/smartpocket/template/menubar_menu.tpl': Operation not permitted ��chown: changing ownership of '/config/www/themes/smartpocket/template/menubar_related_categories.tpl': Operation not permitted �uchown: changing ownership of '/config/www/themes/smartpocket/template/menubar_specials.tpl': Operation not permitted �qchown: changing ownership of '/config/www/themes/smartpocket/template/menubar_tags.tpl': Operation not permitted �schown: changing ownership of '/config/www/themes/smartpocket/template/navigation_bar.tpl': Operation not permitted �qchown: changing ownership of '/config/www/themes/smartpocket/template/notification.tpl': Operation not permitted �mchown: changing ownership of '/config/www/themes/smartpocket/template/password.tpl': Operation not permitted �lchown: changing ownership of '/config/www/themes/smartpocket/template/picture.tpl': Operation not permitted �tchown: changing ownership of '/config/www/themes/smartpocket/template/picture_content.tpl': Operation not permitted �xchown: changing ownership of '/config/www/themes/smartpocket/template/picture_nav_buttons.tpl': Operation not permitted �lchown: changing ownership of '/config/www/themes/smartpocket/template/profile.tpl': Operation not permitted �tchown: changing ownership of '/config/www/themes/smartpocket/template/profile_content.tpl': Operation not permitted �mchown: changing ownership of '/config/www/themes/smartpocket/template/redirect.tpl': Operation not permitted �mchown: changing ownership of '/config/www/themes/smartpocket/template/register.tpl': Operation not permitted �kchown: changing ownership of '/config/www/themes/smartpocket/template/search.tpl': Operation not permitted �ichown: changing ownership of '/config/www/themes/smartpocket/template/tags.tpl': Operation not permitted �ochown: changing ownership of '/config/www/themes/smartpocket/template/thumbnails.tpl': Operation not permitted �chown: changing ownership of '/config/www/themes/smartpocket/template': Operation not permitted
�achown: changing ownership of '/config/www/themes/smartpocket/theme.css': Operation not permitted
�ichown: changing ownership of '/config/www/themes/smartpocket/themeconf.inc.php': Operation not permitted
�Wchown: changing ownership of '/config/www/themes/smartpocket': Operation not permitted
�Kchown: changing ownership of '/config/www/themes': Operation not permitted
�Tchown: changing ownership of '/config/www/_data/dummy.txt': Operation not permitted
�Jchown: changing ownership of '/config/www/_data': Operation not permitted
�achown: changing ownership of '/config/www/template-extension/index.php': Operation not permitted
�zchown: changing ownership of '/config/www/template-extension/distributed/samples/my-picture.tpl': Operation not permitted
�}chown: changing ownership of '/config/www/template-extension/distributed/samples/my-thumbnails.tpl': Operation not permitted
chown: changing ownership of '/config/www/template-extension/distributed/samples/my-thumbnails2.css': Operation not permitted
chown: changing ownership of '/config/www/template-extension/distributed/samples/my-thumbnails2.tpl': Operation not permitted
��chown: changing ownership of '/config/www/template-extension/distributed/samples/titling_categories.tpl': Operation not permitted
�kchown: changing ownership of '/config/www/template-extension/distributed/samples': Operation not permitted
�cchown: changing ownership of '/config/www/template-extension/distributed': Operation not permitted
�fchown: changing ownership of '/config/www/template-extension/yoga/index.php': Operation not permitted
�ichown: changing ownership of '/config/www/template-extension/yoga/local/README': Operation not permitted
�lchown: changing ownership of '/config/www/template-extension/yoga/local/index.php': Operation not permitted
�bchown: changing ownership of '/config/www/template-extension/yoga/local': Operation not permitted
�\chown: changing ownership of '/config/www/template-extension/yoga': Operation not permitted
�Wchown: changing ownership of '/config/www/template-extension': Operation not permitted
�Dchown: changing ownership of '/config/www': Operation not permitted
�Tchown: changing ownership of '/config/log/nginx/error.log': Operation not permitted
�Uchown: changing ownership of '/config/log/nginx/access.log': Operation not permitted
�Jchown: changing ownership of '/config/log/nginx': Operation not permitted
�Rchown: changing ownership of '/config/log/php/error.log': Operation not permitted
�Hchown: changing ownership of '/config/log/php': Operation not permitted
�Dchown: changing ownership of '/config/log': Operation not permitted
�echown: changing ownership of '/config/nginx/site-confs/default.conf.sample': Operation not permitted
�^chown: changing ownership of '/config/nginx/site-confs/default.conf': Operation not permitted
�Qchown: changing ownership of '/config/nginx/site-confs': Operation not permitted
�Vchown: changing ownership of '/config/nginx/ssl.conf.sample': Operation not permitted
�Xchown: changing ownership of '/config/nginx/nginx.conf.sample': Operation not permitted
�Qchown: changing ownership of '/config/nginx/nginx.conf': Operation not permitted
�Ochown: changing ownership of '/config/nginx/ssl.conf': Operation not permitted
�Schown: changing ownership of '/config/nginx/dhparams.pem': Operation not permitted
�Tchown: changing ownership of '/config/nginx/resolver.conf': Operation not permitted
�\chown: changing ownership of '/config/nginx/worker_processes.conf': Operation not permitted
�Fchown: changing ownership of '/config/nginx': Operation not permitted
@chown: changing ownership of '/config': Operation not permitted
�Hchown: changing ownership of '/gallery/upload': Operation not permitted
�Kchown: changing ownership of '/gallery/galleries': Operation not permitted
�Achown: changing ownership of '/gallery': Operation not permitted
�m**** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
�P**** The app may not work properly and we will not provide support for it. ****
�1[custom-init] No custom files found, skipping...
��[ls.io-init] done.

2、
-e PUID=0
-e PGID=0 \

It says:

��[migrations] started
�2[migrations] 01-nginx-site-confs-default: skipped
��[migrations] done
��
�&-------------------------------------
�� _ ()
�� | | ___ _ __
�� | | / | | | /
�� | | _
\ | | | () |
�� || |
/ || __/
��
��
�!Brought to you by linuxserver.io
�&-------------------------------------
��
� To support LSIO projects visit:
�#https://www.linuxserver.io/donate/
�&-------------------------------------
��GID/UID
�&-------------------------------------
��
��User uid: 0
��User gid: 0
�&-------------------------------------
��
�!using keys found in /config/keys
�1[custom-init] No custom files found, skipping...
��[ls.io-init] done.
�W[03-Mar-2023 12:55:08] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:08] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:09] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:09] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:10] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:10] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:11] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:11] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:12] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:12] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:13] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:13] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:14] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:14] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:15] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:15] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:16] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:16] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:17] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:17] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:18] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:18] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:19] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:19] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:20] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:20] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:21] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:21] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:22] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:22] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:23] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:23] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:24] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:24] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:25] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:25] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:26] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:26] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:27] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:27] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:28] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:28] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:29] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:29] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:30] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:30] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:31] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:31] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:32] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:32] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:33] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:33] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:34] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:34] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:35] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:35] ERROR: FPM initialization failed
�W[03-Mar-2023 12:55:36] ERROR: [pool www] please specify user and group other than root
�8[03-Mar-2023 12:55:36] ERROR: FPM initialization failed

Expected Behavior

No response

Steps To Reproduce

~~

Environment

- OS:
- How docker service was installed:

CPU architecture

armhf

Docker creation

~~

Container logs

~~

Many files in mode 666

linuxserver.io

If you are new to Docker or this application our issue tracker is ONLY used for reporting bugs or requesting features. Please use our discord server for general support.

Many directories and file modes are set to 777 or 666.
Main issue is the database configuration file showing a 666 mode. The index.html files perform recursive loading of files.
As these are mode 666 - an attacker could very easily just modify the index files to load external resources etc.

root@f13574290dcf:/config/www/gallery/local/config# ls -l total 44 -rw-r--r-- 1 abc users 35632 Aug 24 10:43 config.inc.php -rw-rw-rw- 1 abc users 312 Aug 24 10:48 database.inc.php -rw-rw-rw- 1 abc users 610 Mar 26 18:53 index.php
database us 666 mode.
index.php is 666 mode - however loads data/files recursively from another directory.


Expected Behavior

What needs to be done is:
Make these files immutable after installation. At least mode 644.

The following files are affected:
root@f13574290dcf:/config/www/gallery# find . -perm 666 ./local/language/index.php ./local/config/database.inc.php ./local/config/index.php ./local/index.php ./local/css/index.php

Current Behavior

Files are created with mode 666

Steps to Reproduce

  1. install docker-piwigo container.

Environment

OS: Alpine (Current build of piwigo/docker)
CPU architecture: x86_64
How docker service was installed: regular docker-compose + haproxy frontend for HTTPS termination

Regular installation of piwigo.

Command used to create docker container (run/create/compose/screenshot)

Docker logs

No relevant logs. Software runs.

web 403 Forbidden nginx/1.16.0

docker run --name=piwigo -e PUID=1000 -e PGID=1000 -e TZ=Europe/London -p 29080:80 --restart unless-stopped linuxserver/piwigo

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...


      _         ()
     | |  ___   _    __
     | | / __| | |  /  \
     | | \__ \ | | | () |
     |_| |___/ |_|  \__/

Brought to you by linuxserver.io
We gratefully accept donations at:
https://www.linuxserver.io/donate/

GID/UID

User uid: 1000
User gid: 1000

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing...
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing...
generating self-signed keys in /config/keys, you can replace these with your own keys if required
Generating a RSA private key
........................................................+++++
.+++++
writing new private key to '/config/keys/cert.key'

[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 40-install: executing...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 168 100 168 0 0 256 0 --:--:-- --:--:-- --:--:-- 256
[/tmp/piwigo.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of /tmp/piwigo.zip or
/tmp/piwigo.zip.zip, and cannot find /tmp/piwigo.zip.ZIP, period.
mv: cannot stat '/tmp/piwigo/*': No such file or directory
cp: cannot stat '/config/www/gallery/include/config_default.inc.php': No such file or directory
[cont-init.d] 40-install: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

php-curl and php-ctype

Hi,

Is it possible to include the php7-curl and php7-ctype extension in this Dockerfile ?

php7-curl is needed for Piwigo social extension
php7-ctype is needed to avoid an error if Send password by email option is checked during install.

[BUG] nginx misconfiguration

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When attempting to access non-existing URL nginx returns content of index.php file. Main issue is probably this part of nginx site configuration

try_files $uri $uri/ /index.html /index.php$is_args$args =404;

According to this, try_files probably find index.php but it won't pass it to the fastcgi server; instead it returns it's content.

Expected Behavior

HTTP 404 code or something similar.

Steps To Reproduce

  1. try GET request on running container with non-existent url, e.g. /nah

Environment

- OS:Gentoo Linux
- How docker service was installed:distro's package manager

CPU architecture

x86-64

Docker creation

version: "2.1"
services:
  piwigo_spm:
    image: lscr.io/linuxserver/piwigo:latest
    container_name: piwigo_spm
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Prague
    volumes:
      - /srv/piwigo_spm/config:/config
      - /srv/storage/piwigo_spm/gallery:/gallery
    ports:
      - 8087:80
    restart: unless-stopped
    logging:
      driver: "json-file"
      options:
        max-file: "5"
        max-size: "10m"
    networks:
     - mariadb-net

Container logs

piwigo_spm  | [migrations] started
piwigo_spm  | [migrations] 01-nginx-site-confs-default: skipped
piwigo_spm  | [migrations] done
piwigo_spm  | ───────────────────────────────────────
piwigo_spm  | 
piwigo_spm  |       ██╗     ███████╗██╗ ██████╗ 
piwigo_spm  |       ██║     ██╔════╝██║██╔═══██╗
piwigo_spm  |       ██║     ███████╗██║██║   ██║
piwigo_spm  |       ██║     ╚════██║██║██║   ██║
piwigo_spm  |       ███████╗███████║██║╚██████╔╝
piwigo_spm  |       ╚══════╝╚══════╝╚═╝ ╚═════╝ 
piwigo_spm  | 
piwigo_spm  |    Brought to you by linuxserver.io
piwigo_spm  | ───────────────────────────────────────
piwigo_spm  | 
piwigo_spm  | To support LSIO projects visit:
piwigo_spm  | https://www.linuxserver.io/donate/
piwigo_spm  | 
piwigo_spm  | ───────────────────────────────────────
piwigo_spm  | GID/UID
piwigo_spm  | ───────────────────────────────────────
piwigo_spm  | 
piwigo_spm  | User UID:    1000
piwigo_spm  | User GID:    1000
piwigo_spm  | ───────────────────────────────────────
piwigo_spm  | 
piwigo_spm  | using keys found in /config/keys
piwigo_spm  | [custom-init] No custom files found, skipping...
piwigo_spm  | [ls.io-init] done.

No Database setup in Docker Compose

linuxserver.io


Desired Behavior

Docker example script does not provide database setup or configuration. This is not explained in the documentation either.

Current Behavior

The database configuration cannot be set up.

Alternatives Considered

Docker compose with a database setup.

[FEAT] Allow configuring the locations of `/config` and `/gallery`

Is this a new feature request?

  • I have searched the existing issues

Wanted change

Support environment variables, that override the locations of the /config and /gallery directories. If Piwigo itself hardcodes them, it could make symlinks.

Reason for change

In my case it costs less two have two volumes instead of one, so if I can place both the config and gallery directories on the same volume it is beneficial, so for example I would have /data/config and /data/gallery instead.

Proposed code change

No response

[BUG] Does download arbitrary php files instead of giving a 404

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I tried getting piwigo to run, and it "sort of" works (I can initialize the database, get an empty gallery etc.).

However, what is bothering me, is that whenever a wrong/non-existent URL ist accessed it will just ask to download a .php file, I think it is the index.php it starts with

<?php
// +-----------------------------------------------------------------------+
// | This file is part of Piwigo.                                          |
// |                                                                       |
// | For copyright and license information, please view the COPYING.txt    |
// | file that was distributed with this source code.                      |
// +-----------------------------------------------------------------------+

//--------------------------------------------------------------------- include
define('PHPWG_ROOT_PATH','./');
include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
include(PHPWG_ROOT_PATH.'include/section_init.inc.php')

How to reproduce: I tried this directly by exposing the nginx port, no further reverse proxy involved, i.e. doing

    ports:
      - 2222:80

and accessing http://127.0.0.1:2222/notexisting

I have the feeling, this might be repaired in the nginx config, but not being an nginx user I could not figure it out

Expected Behavior

Accesing non-existing files or any other error condition should not trigger the download of a raw php file

Steps To Reproduce

  1. Take the example docker compose
  2. Set up DB (not sure this is needed)
  3. Access any file that does not exist

Environment

No response

CPU architecture

x86-64

Docker creation

version: "3"
services:
  piwigo:
    image: lscr.io/linuxserver/piwigo:13.2.0
    container_name: piwigo
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - xxx/config:/config
      - xxx/gallery:/gallery
    ports:
      - 2222:80
    restart: unless-stopped


  db:
    image: mariadb
    container_name: piwigo_maria
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=xxx
      - MARIADB_USER=xxx
      - MARIADB_PASSWORD=xxx
    volumes:
      - xxx/mariadb:/var/lib/mysql

  adminer:
    image: adminer
    restart: always
    ports:
      - 1111:8080

Container logs

.

The upload_max_filesize is too low

The value of upload_max_filesize defined in the php.ini file is very low (2M). This causes the upload of big pictures from the android app to fail with the error message: "Failed to move uploaded file".

Please see: Piwigo/Piwigo-Android#217

I suggest increasing it a bit. Currenly, as I workaround, I override the value by setting it in the php-local.ini file, which is persisted across restarts of the container

VOLUME /config/www/gallery/galleries instead of /pictures ?

Hi Sparkyballs and the rest of the LinuxServer teams;

Tell me if i'm wrong but I was trying to import/sync my photos
and the only way I succeed it is by pointing
all my photos inside /config/www/gallery/galleries/

So I wonder what it the purpose of the VOLUME /pictures
and why /config/www/gallery/galleries is not considered as a mounting point.

Change release download to https

linuxserver.io


Expected Behavior

The release download should use https.

Current Behavior

The release download uses http:

"http://piwigo.org/download/dlcounter.php?code=${PIWIGO_RELEASE}" && \

Steps to Reproduce

  1. Look at the Dockerfile
  2. See http being used

Environment

n/a

Command used to create docker container (run/create/compose/screenshot)

n/a

Docker logs

n/a

PHP Notices/Deprecated warnings when going to the Piwigo Home Page

linuxserver.io


Expected Behavior

No PHP warnings or notices

Current Behavior

The Notices Below are shown multiple times, I removed the duplicates
Deprecated: Array and string offset access syntax with curly braces is deprecated in /config/www/gallery/include/functions_cookie.inc.php on line 72
Notice: Trying to access array offset on value of type null in /config/www/gallery/include/functions_category.inc.php on line 140
Notice: Trying to access array offset on value of type null in /config/www/gallery/include/functions_category.inc.php on line 141
Warning: Cannot modify header information - headers already sent by (output started at /config/www/gallery/include/functions_category.inc.php:141) in /config/www/gallery/include/page_header.php on line 101

Steps to Reproduce

  1. Open Piwigo Home Page

Environment

OS: Docker
CPU architecture: x86_64
Docker Image: linuxserver/piwigo:11.4.0-ls108

FTP/Upload?

All of the sync and ftp tools don't work. How can I upload directory structure? What volume do I need to expose?

[BUG] Uploading more than a few photos from Piwigo android app causes container to crash

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When uploading more than ~5 photos at a time from a Pixel 7 Pro to my fresh installation using this container, the container goes unresponsive and has to be restarted.

Expected Behavior

Uploads should complete without issue.

Steps To Reproduce

  1. Setup Piwigo installation using this container
  2. Create album in Piwigo
  3. Install Piwigo Android App
  4. Select more than ~5 photos to the album

Environment

- OS:Fedora 38 for server, Android 14 for Android app
- How docker service was installed: Docker-compose, using portainer

CPU architecture

x86-64

Docker creation

---
version: "2.1"
services:
  piwigo:
    image: lscr.io/linuxserver/piwigo:latest
    container_name: piwigo
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Detroit
    volumes:
      - /path/to/data/piwigo/config:/config
      - /path/to/data/piwigo/gallery:/gallery
    ports:
      - 80:80
    restart: unless-stopped

  piwigo-db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /path/to/data/piwigo/mariadbdata:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
      - MYSQL_PASSWORD=$MYSQL_PASSWORD
      - MYSQL_DATABASE=piwigo
      - MYSQL_USER=piwigo

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝

   Brought to you by linuxserver.io
───────────────────────────────────────

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1000
User GID:    1000
───────────────────────────────────────

using keys found in /config/keys
[custom-init] No custom files found, skipping...
[ls.io-init] done.

[BUG] Update to piwigo 14 doesn't work

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When upgraded to the new 14.0 container, the login screen says that an update for the DB to 14 is mandatory. The update seems to be just stuck though, doesn't ever finish, and the application can't open without completing the upgrade.

Expected Behavior

No response

Steps To Reproduce

upgrade from 13.8 to 14.0
open piwigo
enter credentials and click upgrade

Environment

- OS: Debian 11 bullseye
- How docker service was installed: docker-compose

CPU architecture

x86-64

Docker creation

---
version: "2.1"
services:
  piwigo:
    image: lscr.io/linuxserver/piwigo:latest
    container_name: piwigo
    depends_on:
      - mariadb
    environment:
      - PUID=33
      - PGID=33
      - TZ=America/Montreal
      - HTTPS=on
    volumes:
      - ./gallery:/gallery
    ports:
      - 8093:80
    restart: unless-stopped


  mariadb:
    container_name: Piwigo_mariadb
    restart: unless-stopped
    image: arm64v8/mariadb:10.8 # ARM64 IMAGE ONLY, DOES NOT WORK ON ARMv7, AMD or Intel
    command: mysqld --innodb-buffer-pool-size=256M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
    ## Never store database files on an unreliable device such as a USB flash drive, an SD card, or a shared network folder:
    volumes:
      - "./database:/var/lib/mysql" # DO NOT REMOVE
    environment:
      TZ: "America/Montreal"
      MARIADB_AUTO_UPGRADE: "1"
      MARIADB_INITDB_SKIP_TZINFO: "1"
      MARIADB_DATABASE: "piwigo"
      MARIADB_USER: "piwigo"
      MARIADB_PASSWORD: "xxx"
      MARIADB_ROOT_PASSWORD: "xxx"

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗ 
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝ 
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    33
User GID:    33
───────────────────────────────────────
using keys found in /config/keys
**** The following active confs have different version dates than the samples that are shipped. ****
**** This may be due to user customization or an update to the samples. ****
**** You should compare the following files to the samples in the same folder and update them. ****
**** Use the link at the top of the file to view the changelog. ****
┌────────────┬────────────┬────────────────────────────────────────────────────────────────────────┐
│  old date  │  new date  │ path                                                                   │
├────────────┼────────────┼────────────────────────────────────────────────────────────────────────┤
│ 2022-08-16 │ 2023-04-13 │ /config/nginx/nginx.conf                                               │
│ 2022-10-04 │ 2023-04-13 │ /config/nginx/site-confs/default.conf                                  │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
[custom-init] No custom files found, skipping...
[ls.io-init] done.

nginx in container cannot find ssl key file?

i tried to docker cp config folder , or not.
tried docker cli and compose

here is logs:

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-config: executing...
[cont-init.d] 20-config: exited 0.
[cont-init.d] 30-keygen: executing...
generating self-signed keys in /config/keys, you can replace these with your own keys if required
Generating a RSA private key
..........+++++
..............................................................................................................................+++++
writing new private key to '/config/keys/cert.key'
-----
4158120848:error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time:crypto/asn1/a_time.c:330:
[cont-init.d] 30-keygen: exited 1.
[cont-init.d] 40-install: executing...
[cont-init.d] 40-install: exited 0.
[cont-init.d] 99-custom-files: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-files: exited 0.
[cont-init.d] done.
[services.d] starting services

[services.d] done.
nginx: [emerg] cannot load certificate "/config/keys/cert.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/config/keys/cert.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
..........<repeat this error>

[BUG] Missing Perl Module LWP::UserAgent

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

The developer of piwigo placed a remote_sync.pl script in the /app/www/public/tools directory to be able to run a cron job to update the database of all new pictures added.

https://piwigo.org/forum/viewtopic.php?id=31297

When trying to run the script it gives the error

root@piwigo-97b848694-2fq8c:/app/www/public/tools# ./remote_sync.pl
Can't locate LWP/UserAgent.pm in @inc (you may need to install the LWP::UserAgent module) (@inc contains: /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at ./remote_sync.pl line 8.
BEGIN failed--compilation aborted at ./remote_sync.pl line 8.
root@piwigo-97b848694-2fq8c:/app/www/public/tools#

Referencing Line 8
use LWP::UserAgent;

Expected Behavior

Should run the script and update the database with new files

Steps To Reproduce

Navigate to /app/www/public/tools Directory
Run Script ./remote_sync.pl
See Errors

Environment

- OS: TrueNAS Scale 23.10
- How docker service was installed: TrueChart Piwigo which uses LSIO Container

CPU architecture

x86-64

Docker creation

TrueCharts Dev use your docker image:
https://github.com/linuxserver/docker-piwigo/pkgs/container/piwigo

Container logs

the following command is run from inside the docker container with the following error output:

root@piwigo-97b848694-2fq8c:/app/www/public/tools# ./remote_sync.pl
Can't locate LWP/UserAgent.pm in @inc (you may need to install the LWP::UserAgent module) (@inc contains: /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at ./remote_sync.pl line 8.
BEGIN failed--compilation aborted at ./remote_sync.pl line 8.
root@piwigo-97b848694-2fq8c:/app/www/public/tools#

50_update_apps.sh fails on start

I tried to install this container and I am seeing this in the logs:

*** Running /etc/my_init.d/50_update_apps.sh...
E: Command line option --only-upgrade is not understood
*** /etc/my_init.d/50_update_apps.sh failed with status 100

*** Killing all processes...

php version issue? offset on value of type null

linuxserver.io


Current Behavior

On all pages of piwigo, I now get the following issue displayed on top of every single page:

Notice
: trying to access array offset on value of type null in 
/config/www/gallery/plugins/meta/main.inc.php
on line
183


Notice
: trying to access array offset on value of type null in 
/config/www/gallery/plugins/meta/main.inc.php
on line
187

seems like this could be related to a php issue?
Piwigo/Piwigo#1130

Environment

OS: debian
CPU architecture: x86_64
How docker service was installed:
via docker-compose, using latest tag https://github.com/linuxserver/docker-piwigo/releases/tag/11.3.0-ls101
and updated piwigo to 11.3.0

Docker logs

nothing special in the docker logs:

piwigo              | [custom-init] no custom files found exiting...
piwigo              | [cont-init.d] 99-custom-files: exited 0.
piwigo              | [cont-init.d] done.
piwigo              | [services.d] starting services
piwigo              | [services.d] done.


request: adding ZipArchive PHP extension

Using the batch download plugin in piwigo, the following message appears

Unable to find ZipArchive PHP extension, Batch Downloader will use PclZip instead, but with degraded performance.

Adding this php extension to the docker image would be great

[BUG] After last migration, the /etc/s6-overlay/s6-rc.d/init-piwigo-config/run fails and piwigo is broken

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

The init-piwigo-config/run script tries to customize the paths at start-up but spits several fails:

rm: cannot remove '/app/www/public/plugins/language_switch/language/ru_RU': Directory not empty                                                                          
rm: cannot remove '/app/www/public/plugins/TakeATour/language/ja_JP': Directory not empty                                                                                rm: cannot remove '/app/www/public/plugins/AdminTools/language/ru_RU': Directory not empty                                                                               rm: cannot remove '/app/www/public/plugins/LocalFilesEditor/language/cs_CZ': Directory not empty                                                                         
rm: cannot remove '/app/www/public/themes/smartpocket/language/br_FR': Directory not empty                                                                               
rm: cannot remove '/app/www/public/themes/default/js/plugins/plupload': Directory not empty                                                                              rm: cannot remove '/app/www/public/themes/modus/language/ja_JP': Directory not empty                                                                                     rm: cannot remove '/app/www/public/themes/elegant/language/eu_ES': Directory not empty 

Due to this, the links are not create to the real plugins and themes and the served piwigo is just broken.

If I get into the container I can successfully run by hand the lines at:

symlinks=( \                                                                                            
/app/www/public/language \
/app/www/public/plugins \
/app/www/public/local \                                                                                 
/app/www/public/themes \
/app/www/public/_data \                                                                                 
)              
                            
for i in "${symlinks[@]}"; do
if [[ -d /config/www/"$(basename "$i")" && ! -L "$i"  ]]; then                                          
    rm -rf "$i"
fi

The only explanation I can make is that, while the rm -rf command is running, some other active process is creating files or locking them.

I use rootless podman and socket proxy activation for the container. In other words, the container is only brought up when trying to access it. I don't know if the problem is that the nginx is up and running, serving piwigo even before this configuration script has succeed (?)

Expected Behavior

The script will properly delete the directories in the piwigo embedded in the container and the links would be created to the custom ones correctly.

Steps To Reproduce

  1. Bring up the composed file.
  2. Access the service.

Environment

- OS: Debian Bullseye
- How docker service was installed: rootless podman from distro's packagemanager with systemd activation through proxy socket.

CPU architecture

x86-64

Docker creation

---
version: "2.1"
services:
  mariadb:
    image: lscr.io/linuxserver/mariadb
    container_name: gallery-mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Helsinki
      - DOCKER_MODS=linuxserver/mods:universal-cron
    volumes:
      - /home/tanty/apps/gallery/mariadb/config:/config
    restart: unless-stopped
  piwigo:
    image: lscr.io/linuxserver/piwigo
    container_name: gallery-piwigo
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Helsinki
    volumes:
      - /home/tanty/apps/gallery/piwigo/config:/config
      - /home/podman-data/gallery:/gallery
    ports:
      - 127.0.0.1:20080:80
    depends_on:
      - mariadb
    restart: unless-stopped

Container logs

$ podman logs gallery-piwigo
[custom-init] No custom services found, skipping...
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] done

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/


Brought to you by linuxserver.io
-------------------------------------

To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------

User uid:    1000
User gid:    1000
-------------------------------------

using keys found in /config/keys
rm: cannot remove '/app/www/public/language/nn_NO': Directory not empty
rm: cannot remove '/app/www/public/plugins/language_switch/language/ru_RU': Directory not empty
rm: cannot remove '/app/www/public/plugins/TakeATour/language/ja_JP': Directory not empty
rm: cannot remove '/app/www/public/plugins/AdminTools/language/ru_RU': Directory not empty
rm: cannot remove '/app/www/public/plugins/LocalFilesEditor/language/cs_CZ': Directory not empty
rm: cannot remove '/app/www/public/themes/smartpocket/language/br_FR': Directory not empty
rm: cannot remove '/app/www/public/themes/default/js/plugins/plupload': Directory not empty
rm: cannot remove '/app/www/public/themes/modus/language/ja_JP': Directory not empty
rm: cannot remove '/app/www/public/themes/elegant/language/eu_ES': Directory not empty
**** The following site-confs have extensions other than .conf ****
**** This may be due to user customization. ****
**** You should review the files and rename them to use the .conf extension or remove them. ****
**** nginx.conf will only include site-confs with the .conf extension. ****
/config/nginx/site-confs/default.conf.old
[custom-init] No custom files found, skipping...
[ls.io-init] done.

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.