Code Monkey home page Code Monkey logo

docker-grocy'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

Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility.

Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool

For more information on grocy visit their website and check it out: https://grocy.info

grocy

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/grocy: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

Grocy is simple to get running. Configure the container with instructions below, start it, and you can then access it by visiting http://your.ip:9283 - once the page loads, you can log in with the default username and password of admin / admin

Upgrading

Following a container upgrade ensure that you visit the root (/) route (click on the logo in the left upper edge) in order to run any necessary database migrations. See https://github.com/grocy/grocy#how-to-update for more details.

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:
  grocy:
    image: lscr.io/linuxserver/grocy:latest
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/grocy/config:/config
    ports:
      - 9283:80
    restart: unless-stopped
docker run -d \
  --name=grocy \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -p 9283:80 \
  -v /path/to/grocy/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/grocy: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 will map the container's port 80 to port 9283 on the host
-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

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 grocy /bin/bash
  • To monitor the logs of the container in realtime:

    docker logs -f grocy
  • Container version number:

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

    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/grocy: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 grocy
  • Update containers:

    • All containers:

      docker-compose up -d
    • Single container:

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

    docker image prune

Via Docker Run

  • Update the image:

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

    docker stop grocy
  • Delete the container:

    docker rm grocy
  • 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-grocy.git
cd docker-grocy
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/grocy: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

  • 29.03.24: - Add clear_env = no to php-fpm to pass on environment variables to workers threads
  • 06.03.24: - Existing users should update: site-confs/default.conf - Cleanup default site conf.
  • 06.03.24: - Rebase to Alpine 3.19 with php 8.3.
  • 25.05.23: - Rebase to Alpine 3.18, deprecate armhf.
  • 13.04.23: - Move ssl.conf include to default.conf.
  • 19.01.23: - Rebase to alpine 3.17 with php8.1.
  • 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs (see changes announcement).
  • 22.08.21: - Rebase to Alpine 3.14 and PHP 8.
  • 25.07.21: - Add 'int','json' and 'zlib' PHP extensions.
  • 10.05.21: - Reduce image size.
  • 08.04.21: - Update docs to reflect jenkins builder changes.
  • 17.02.21: - Rebasing to alpine 3.13.
  • 26.01.21: - Add 'ldap' PHP extension.
  • 22.12.20: - Add 'ctype' PHP extension.
  • 01.06.20: - Rebasing to alpine 3.12.
  • 19.12.19: - Rebasing to alpine 3.11.
  • 22.09.19: - Add 'gd' PHP extension.
  • 28.06.19: - Rebasing to alpine 3.10.
  • 23.03.19: - Switching to new Base images, shift to arm32v7 tag.
  • 22.02.19: - Rebasing to alpine 3.9.
  • 27.12.18: - Initial Release.

docker-grocy's People

Contributors

alex-phillips avatar aptalca avatar benedicteb avatar chbmb avatar forceu avatar gersilex avatar homerr avatar j0nnymoe avatar linuxserver-ci avatar mountainsandcode avatar nemchik avatar reed-jones avatar roxedus avatar thelamer avatar thespad avatar tobbenb 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

docker-grocy's Issues

Version 3.0.0 missing php7-ctype package

linuxserver.io

The latest version needs a dependency that is not present (php7-ctype). Otherwise errors pop up during normal operations.

Expected Behavior

Should work with no errors displayed.

Current Behavior

Complains with a red error popup on screen when browsing. Logs on the browser js console too.

Steps to Reproduce

  1. This is a straightforward error. Just using the application normally will trigger the error in /stockoverview

The fix is to simply add php7-ctype to the Dockerfiles
It can be fixed in a running container by opening a terminal session inside an running apk update; apk add php7-ctype.

Environment

OS: Linux
CPU architecture: x86_64
How docker service was installed: Synology launch

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

Standard docker run command from latest.

Docker logs

Nothing shown on docker logs regarding this error.

docker-grocy won't serve UI when running on a Raspberry Pi

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

After installing the latest Rasbpian release, updating, installing docker & required dependencies, pulling the image & running it, Grocy should be viewable on port 9283

Current Behavior

After installing the latest Rasbpian release, updating, installing docker & required dependencies, pulling the image & running it, nothing is served on any exposed port (even after selecting different ones)

> curl localhost:9283
curl: (52) Empty reply from server

I pulled and ran a couple of webserver "hello world" images, and they served correctly, so it is not a networking issue.

Steps to Reproduce

  1. Install latest Raspbian on a raspberry pi
  2. sudo apt update && sudo apt upgrade
  3. curl -sSL https://get.docker.com | sh
  4. sudo usermod -aG docker pi
  5. reboot the raspberry pi
  6. run the docker container:
docker create \
  --name=grocy \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=London \
  -p 9283:80 \
  -v ./data:/config \
  --restart unless-stopped \
  linuxserver/grocy

Environment

OS: Raspbian Buster Lite
CPU architecture: arm64
How docker service was installed: See "steps to reproduce" above

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

See "steps to reproduce" above

Docker logs

Creating network "grocy-linux-docker_default" with the default driver
Creating grocy ... done                                                                                                 Attaching to grocy
grocy    | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
grocy    | [s6-init] ensuring user provided files have correct perms...exited 0.
grocy    | [fix-attrs.d] applying ownership & permissions fixes...
grocy    | [fix-attrs.d] done.
grocy    | [cont-init.d] executing container initialization scripts...
grocy    | [cont-init.d] 01-envfile: executing...
grocy    | [cont-init.d] 01-envfile: exited 267.
grocy    | [cont-init.d] 10-adduser: executing...
grocy    | [cont-init.d] 10-adduser: exited 267.
grocy    | [cont-init.d] 20-config: executing...
grocy    | [cont-init.d] 20-config: exited 267.
grocy    | [cont-init.d] 30-keygen: executing...
grocy    | [cont-init.d] 30-keygen: exited 267.
grocy    | [cont-init.d] 50-config: executing...
grocy    | [cont-init.d] 50-config: exited 267.
grocy    | [cont-init.d] 99-custom-files: executing...
grocy    | [cont-init.d] 99-custom-files: exited 267.
grocy    | [cont-init.d] done.
grocy    | [services.d] starting services
grocy    | [services.d] done.

Update to grocy 3.1.0

Hi,

it would be great if this image would get an upgrade to the newly released grocy 3.1.0.

mkdir and cp fail when using PID 1000

linuxserver.io


Expected Behavior

mkdir and cp do not fail.

Current Behavior

mkdir and cp do fail.

As seen in

cp: cannot create regular file '/config/data/config.php': No such file or directory

After the container initialization finished, the web application shows
Unable to run grocy: config.php in data directory (/app/grocy/public/../data) not found. Have you copied config-dist.php to the data directory and renamed it to config.php?

Steps to Reproduce

  1. Clear the /config volume beforehand
  2. Pull the image
  3. docker-compose up -d
  4. see errors

Environment

OS: Alpine Linux v3.11 x86_64 Kernel: 5.4.34-0-virt
CPU architecture: x86_64/arm32/arm64
How docker service was installed: Using apk add docker

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

Docker-compose file:

# grocy
  grocy:
    container_name: grocy
    hostname: grocy
    image: linuxserver/grocy:latest
    ports:
      - "443:443"
    networks:
      networkconfig:
        ipv4_address: 192.168.x.x
    environment:
      TZ: 'Europe/Berlin'
      PUID: 1000
      PGID: 1000
    volumes:
      - './grocy/config/:/config'
    restart: unless-stopped

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...
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
-------------------------------------

[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
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing...
mkdir: cannot create directory ‘/app/grocy/data’: File exists
cp: cannot create regular file '/config/data/config.php': No such file or directory
[cont-init.d] 50-config: 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.

Login page no longer works (most likely after the latest upgrade)

linuxserver.io


Expected Behavior

When i want to access my instance of Grocy on a new machine, i should be presented with a login form.

Current Behavior

Right now when im trying to access Grocy on a new machine, im presented with a completely blank page. But on the machines where i have already been signed in, Grocy works perfectly fine, so the problem is only with the login page.

Grocy's nginx log file shows:
FastCGI sent in stderr: "Unable to open primary script: /app/www/public/login.php (No such file or directory)" while reading the response header from upstream, client: 172.17.0.1, server: _, request: "GET /login.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "https://grocery.xxxx.xx"

But the only file in /app/www/public/ is index.htm

Steps to Reproduce

I am not 100% sure what is the main cause of the problem

Environment

OS: Debian 11.5, Docker 20.10.17
CPU architecture: x86_64
How docker service was installed: distro repo

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

{
    "AppArmorProfile": "docker-default",
    "Args": [],
    "Config": {
        "AttachStderr": false,
        "AttachStdin": false,
        "AttachStdout": false,
        "Cmd": null,
        "Domainname": "",
        "Entrypoint": [
            "/init"
        ],
        "Env": [
            "HOME=/root",
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "PS1=$(whoami)@$(hostname):$(pwd)\\$ ",
            "S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0",
            "TERM=xterm"
        ],
        "ExposedPorts": {
            "443/tcp": {},
            "80/tcp": {},
            "9283/tcp": {}
        },
        "Hostname": "6a9403d6f49f",
        "Image": "linuxserver/grocy:amd64-latest",
        "Labels": {
            "build_version": "Linuxserver.io version:- v2.7.1-ls58 Build-date:- 2020-05-02T20:24:41+00:00",
            "com.centurylinklabs.watchtower.enable": "true",
            "maintainer": "alex-phillips, homerr",
            "org.opencontainers.image.authors": "linuxserver.io",
            "org.opencontainers.image.created": "2022-11-12T19:34:48+01:00",
            "org.opencontainers.image.description": "[Grocy](https://github.com/grocy/grocy) is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility.    Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool    For more information on grocy visit their website and check it out: https://grocy.info  ",
            "org.opencontainers.image.documentation": "https://docs.linuxserver.io/images/docker-grocy",
            "org.opencontainers.image.licenses": "GPL-3.0-only",
            "org.opencontainers.image.ref.name": "5377ceccce75198de70d8cffecec2e6f7209ac84",
            "org.opencontainers.image.revision": "5377ceccce75198de70d8cffecec2e6f7209ac84",
            "org.opencontainers.image.source": "https://github.com/linuxserver/docker-grocy",
            "org.opencontainers.image.title": "Grocy",
            "org.opencontainers.image.url": "https://github.com/linuxserver/docker-grocy/packages",
            "org.opencontainers.image.vendor": "linuxserver.io",
            "org.opencontainers.image.version": "v3.3.2-ls173"
        },
        "OnBuild": null,
        "OpenStdin": false,
        "StdinOnce": false,
        "Tty": false,
        "User": "",
        "Volumes": {
            "/config": {}
        },
        "WorkingDir": ""
    },
    "Created": "2022-11-30T10:33:15.890157921Z",
    "Driver": "overlay2",
    "ExecIDs": null,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/323c7062624c2017d05e4df0b37fc4cfdb5e3a71f53bea2275d7eb2b1ad4b12b-init/diff:/var/lib/docker/overlay2/9764620c761583a9458305ceeb97c8b3c7673624a026aa490304b886c8011c64/diff:/var/lib/docker/overlay2/f85e93e24397c0dbe0b577d6edf77c895e9bbf71b35341c65127956d62695fd7/diff:/var/lib/docker/overlay2/d36a95d77726e9dfbbd4e13be6c56ff26a66ecf18a9288765c30b98fcb077ec2/diff:/var/lib/docker/overlay2/5172597c49e1dc5b17c1dc7be9cbbb2753c5af740b35067c5e71504e1f2cf5da/diff:/var/lib/docker/overlay2/ca643f139ddcd5a3842fe02a3f3dfc265c894f59af289301d22251e20dab1e29/diff:/var/lib/docker/overlay2/6aba96ffda401eba568ef0e66cbf555976377877e7efdd619fa82b746c37fc01/diff:/var/lib/docker/overlay2/6bef34b8748e5a85655403e831cc194f4685cf67cd4877f71b9f79cfda2aa982/diff",
            "MergedDir": "/var/lib/docker/overlay2/323c7062624c2017d05e4df0b37fc4cfdb5e3a71f53bea2275d7eb2b1ad4b12b/merged",
            "UpperDir": "/var/lib/docker/overlay2/323c7062624c2017d05e4df0b37fc4cfdb5e3a71f53bea2275d7eb2b1ad4b12b/diff",
            "WorkDir": "/var/lib/docker/overlay2/323c7062624c2017d05e4df0b37fc4cfdb5e3a71f53bea2275d7eb2b1ad4b12b/work"
        },
        "Name": "overlay2"
    },
    "HostConfig": {
        "AutoRemove": false,
        "Binds": [
            "grocy:/config"
        ],
        "BlkioDeviceReadBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceWriteIOps": null,
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "CapAdd": [
            "AUDIT_WRITE",
            "CHOWN",
            "DAC_OVERRIDE",
            "FOWNER",
            "FSETID",
            "KILL",
            "MKNOD",
            "NET_BIND_SERVICE",
            "NET_RAW",
            "SETFCAP",
            "SETGID",
            "SETPCAP",
            "SETUID",
            "SYS_CHROOT"
        ],
        "CapDrop": [
            "AUDIT_CONTROL",
            "BLOCK_SUSPEND",
            "DAC_READ_SEARCH",
            "IPC_LOCK",
            "IPC_OWNER",
            "LEASE",
            "LINUX_IMMUTABLE",
            "MAC_ADMIN",
            "MAC_OVERRIDE",
            "NET_ADMIN",
            "NET_BROADCAST",
            "SYSLOG",
            "SYS_ADMIN",
            "SYS_BOOT",
            "SYS_MODULE",
            "SYS_NICE",
            "SYS_PACCT",
            "SYS_PTRACE",
            "SYS_RAWIO",
            "SYS_RESOURCE",
            "SYS_TIME",
            "SYS_TTY_CONFIG",
            "WAKE_ALARM"
        ],
        "Cgroup": "",
        "CgroupParent": "",
        "CgroupnsMode": "host",
        "ConsoleSize": [
            0,
            0
        ],
        "ContainerIDFile": "",
        "CpuCount": 0,
        "CpuPercent": 0,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpuShares": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "Devices": [],
        "Dns": [],
        "DnsOptions": [],
        "DnsSearch": [],
        "ExtraHosts": [],
        "GroupAdd": null,
        "IOMaximumBandwidth": 0,
        "IOMaximumIOps": 0,
        "IpcMode": "private",
        "Isolation": "",
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "Links": null,
        "LogConfig": {
            "Config": {},
            "Type": "json-file"
        },
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "Memory": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "NanoCpus": 0,
        "NetworkMode": "bridge",
        "OomKillDisable": false,
        "OomScoreAdj": 0,
        "PidMode": "",
        "PidsLimit": null,
        "PortBindings": {
            "80/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "9283"
                }
            ]
        },
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ],
        "ReadonlyRootfs": false,
        "RestartPolicy": {
            "MaximumRetryCount": 0,
            "Name": "unless-stopped"
        },
        "Runtime": "runc",
        "SecurityOpt": null,
        "ShmSize": 67108864,
        "UTSMode": "",
        "Ulimits": null,
        "UsernsMode": "",
        "VolumeDriver": "",
        "VolumesFrom": null
    },
    "HostnamePath": "/var/lib/docker/containers/44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf/hostname",
    "HostsPath": "/var/lib/docker/containers/44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf/hosts",
    "Id": "44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf",
    "Image": "sha256:e6ef6095fb6aaf07812dcdb0f3fa4b4592bcbee065a969cdfc3682583d1a42a5",
    "LogPath": "/var/lib/docker/containers/44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf/44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf-json.log",
    "MountLabel": "",
    "Mounts": [
        {
            "Destination": "/config",
            "Driver": "local",
            "Mode": "z",
            "Name": "grocy",
            "Propagation": "",
            "RW": true,
            "Source": "/var/lib/docker/volumes/grocy/_data",
            "Type": "volume"
        }
    ],
    "Name": "/grocy",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "35f6f42f073bff9901169e608b642af7b50f3a686dc05830f55ffbcb78890164",
        "Gateway": "172.17.0.1",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "172.17.0.11",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "02:42:ac:11:00:0b",
        "Networks": {
            "bridge": {
                "Aliases": null,
                "DriverOpts": null,
                "EndpointID": "35f6f42f073bff9901169e608b642af7b50f3a686dc05830f55ffbcb78890164",
                "Gateway": "172.17.0.1",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAMConfig": {},
                "IPAddress": "172.17.0.11",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "Links": null,
                "MacAddress": "02:42:ac:11:00:0b",
                "NetworkID": "09a61ec9b53a5e67325500be32a6490346c8c527326cfd7fd57a3f389538a61c"
            }
        },
        "Ports": {
            "443/tcp": null,
            "80/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "9283"
                }
            ],
            "9283/tcp": null
        },
        "SandboxID": "748191dda0da0a20704511295ae6fea75e90312f3b2da37dd08a9674d59e456f",
        "SandboxKey": "/var/run/docker/netns/748191dda0da",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "Path": "/init",
    "Platform": "linux",
    "Portainer": {
        "ResourceControl": {
            "Id": 289,
            "ResourceId": "44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf",
            "SubResourceIds": [],
            "Type": 1,
            "UserAccesses": [],
            "TeamAccesses": [],
            "Public": false,
            "AdministratorsOnly": true,
            "System": false
        }
    },
    "ProcessLabel": "",
    "ResolvConfPath": "/var/lib/docker/containers/44d01f902877b083291e335bd8caf0ad51f2ffbebb9b1ded09abc406a3ccceaf/resolv.conf",
    "RestartCount": 0,
    "State": {
        "Dead": false,
        "Error": "",
        "ExitCode": 0,
        "FinishedAt": "2022-11-30T10:48:04.512311428Z",
        "OOMKilled": false,
        "Paused": false,
        "Pid": 4047432,
        "Restarting": false,
        "Running": true,
        "StartedAt": "2022-11-30T10:48:05.352041263Z",
        "Status": "running"
    }
}

Docker logs

[custom-init] No custom services found, skipping...
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service 00-legacy: starting
s6-rc: info: service 00-legacy successfully started
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/01-envfile
cont-init: info: /etc/cont-init.d/01-envfile exited 0
cont-init: info: running /etc/cont-init.d/01-migrations
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: skipped
[migrations] done
cont-init: info: /etc/cont-init.d/01-migrations exited 0
cont-init: info: running /etc/cont-init.d/10-adduser
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
-------------------------------------
cont-init: info: /etc/cont-init.d/10-adduser exited 0
cont-init: info: running /etc/cont-init.d/11-folders
cont-init: info: /etc/cont-init.d/11-folders exited 0
cont-init: info: running /etc/cont-init.d/12-samples
cont-init: info: /etc/cont-init.d/12-samples exited 0
cont-init: info: running /etc/cont-init.d/13-nginx
cont-init: info: /etc/cont-init.d/13-nginx exited 0
cont-init: info: running /etc/cont-init.d/14-php
cont-init: info: /etc/cont-init.d/14-php exited 0
cont-init: info: running /etc/cont-init.d/15-keygen
using keys found in /config/keys
cont-init: info: /etc/cont-init.d/15-keygen exited 0
cont-init: info: running /etc/cont-init.d/20-permissions
cont-init: info: /etc/cont-init.d/20-permissions exited 0
cont-init: info: running /etc/cont-init.d/50-config
cont-init: info: /etc/cont-init.d/50-config exited 0
cont-init: info: running /etc/cont-init.d/85-version-checks
**** 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. ****
/config/nginx/nginx.conf
/config/nginx/site-confs/default.conf
cont-init: info: /etc/cont-init.d/85-version-checks exited 0
cont-init: info: running /etc/cont-init.d/99-custom-files
[custom-init] No custom files found, skipping...
cont-init: info: /etc/cont-init.d/99-custom-files exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-mods: starting
s6-rc: info: service init-mods successfully started
s6-rc: info: service init-mods-package-install: starting
s6-rc: info: service init-mods-package-install successfully started
s6-rc: info: service init-mods-end: starting
s6-rc: info: service init-mods-end successfully started
s6-rc: info: service init-services: starting
s6-rc: info: service init-services successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun cron (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
services-up: info: copying legacy longrun php-fpm (no readiness notification)
s6-rc: info: service legacy-services successfully started
s6-rc: info: service 99-ci-service-check: starting
[ls.io-init] done.
 s6-rc: info: service 99-ci-service-check successfully started

After generating the above, i have followed the advice and replaced nginx.conf and default.conf with the relevant sample files, but this havent changed anything.

Grocy erorr behind reverse proxy "Error While Saving"

linuxserver.io


I originally put this in https://github.com/grocy/grocy but was told to post it here instead

Expected Behavior

Reloading does not result in an error and the settings menu is able to change

Current Behavior

Changing anything in settings does not result in an actual change (I think changing users still works)
On reload error message Error while saving, probably this item already exists \n Click to show technical details. When clicking it for more details it responds with "\r\n\r\n\r\n 405 Not Allowed \r\n nginx/1.16.1 \r\n\r\n\r\n"

Using this nginx reverse proxy config:

# Grocy ReverseProxy Config
# @author <redacted> 03/25/20

upstream grocy_backend {
    server 10.0.0.122:9283;
}

server {
    listen       443;
    listen  [::]:443;
    server_name  grocy.<redacted>.me;

	#Include default parameters
	include /usr/local/etc/nginx/conf.d/template_configs/server.default.conf;
	include /usr/local/etc/nginx/conf.d/template_configs/server_ssl_cloudflare.default.conf;


	location / {
		proxy_pass http://grocy_backend;
	}
}

Steps to Reproduce

  1. Docker pull /linuxserver/grocy
  2. Access the web server from behind a reverse proxy using the configuration above
  3. Observe error message appear in top left corner on each reload
  4. Attempt to change any of the settings and observe nothing change

Environment

OS: RancherOS
CPU architecture: x86_64
How docker service was installed: Portainer with docker run (all env left to default)

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

(Through portainer) its a docker pull with 9283:80

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... 
usermod: no changes

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


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

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

[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] 50-config: executing... 
[cont-init.d] 50-config: 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] FPM initialization failed, fastcgi address in use

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Currently when running this docker file I will receive the following error in the webpage: File not found.

While when I look at the logs I see these errors.

FPM initialization failed
unable to bind listening socket for address '127.0.0.1:9000': Address in use (98)

This is related to a nginx configuration not being set correctly / not being able to change it with the current setup.
If I go to config/grocy/nginx/site-confs/default.conf
I see the following port set which is causing the issues.
image

Expected Behavior

I would expect grocy to launch when going to the webpage.

Steps To Reproduce

  1. Setup the docker file.
  2. Have a program running that is using the 9000 port. (Honestly nothing is running at that port for me but I'm still receiving the error.)
  3. ???
  4. Profit

Environment

- OS: Arch 6.4.12-arch
- How docker service was installed: Pacman

CPU architecture

x86-64

Docker creation

---
- vars:
    service: "grocy"
    labels:
    - key: "com.centurylinklabs.watchtower.enable"
      value: "true"
    - key: "traefik.enable"
      value: "true"
    - key: "traefik.http.routers.{{ service }}.rule"
      value: "Host(`{{ service }}.{{ DOMAIN }}`)"
    - key: "traefik.http.routers.{{ service }}.service"
      value: "{{ service }}"
    - key: "traefik.http.routers.{{ service }}.entrypoints"
      value: "https"
    - key: "traefik.http.routers.{{ service }}.tls"
      value: "true"
    - key: "traefik.http.routers.{{ service }}.tls.certresolver"
      value: "letsencrypt"
    - key: "traefik.http.services.{{ service }}.loadbalancer.server.port"
      value: "80"

  hosts: all
  vars_files: 
    - ../vars/vars.yml
    - ../vars/vault.yml

  tasks:
    - name: Start grocy
      docker_container:
        image: linuxserver/grocy
        name: "{{ service }}"
        env:
          PUID: "1000"
          PGID: "1000"
          TZ: Europe/Amsterdam
        volumes:
          - "{{ docker_config_dir }}/{{ service }}:/config"
        restart_policy: unless-stopped
        network_mode: container:vpn
        labels: "{{ labels | items2dict}}"

Container logs

[03-Nov-2023 20:25:58] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Add
ress in use (98)
[03-Nov-2023 20:25:58] ERROR: FPM initialization failed
[03-Nov-2023 20:25:59] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Add
ress in use (98)
[03-Nov-2023 20:25:59] ERROR: FPM initialization failed
[03-Nov-2023 20:26:00] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Add
ress in use (98)
[03-Nov-2023 20:26:00] ERROR: FPM initialization failed
[03-Nov-2023 20:26:01] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Add
ress in use (98)
[03-Nov-2023 20:26:01] ERROR: FPM initialization failed
[03-Nov-2023 20:26:02] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Add
ress in use (98)
[03-Nov-2023 20:26:02] ERROR: FPM initialization failed

issue in running on arm64 ubuntu

linuxserver.io


Expected Behavior

Using example docker file app should run

Current Behavior

App loading goes to waiting state and then timeout in browser

Steps to Reproduce

  1. Run the example docker-compose given in introduction
  2. wait untill app is started in docker logs
  3. open in broswer with ip and port
  4. broswer shows loading but after sometime timeout happens.

Environment

OS: ubuntu server arm64
CPU architecture: arm64
How docker service was installed: from distro repo

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

docker-compose up

Docker logs

docker-compose up
Creating network "grocy-docker_default" with the default driver
Creating grocy ... done
Attaching to grocy
grocy | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
grocy | [s6-init] ensuring user provided files have correct perms...exited 0.
grocy | [fix-attrs.d] applying ownership & permissions fixes...
grocy | [fix-attrs.d] done.
grocy | [cont-init.d] executing container initialization scripts...
grocy | [cont-init.d] 01-envfile: executing...
grocy | [cont-init.d] 01-envfile: exited 0.
grocy | [cont-init.d] 10-adduser: executing...
grocy |
grocy | -------------------------------------
grocy | _ ()
grocy | | | ___ _ __
grocy | | | / | | | / \
grocy | | | _
\ | | | () |
grocy | || |
/ || __/
grocy |
grocy |
grocy | Brought to you by linuxserver.io
grocy | -------------------------------------
grocy |
grocy | To support LSIO projects visit:
grocy | https://www.linuxserver.io/donate/
grocy | -------------------------------------
grocy | GID/UID
grocy | -------------------------------------
grocy |
grocy | User uid: 1001
grocy | User gid: 1001
grocy | -------------------------------------
grocy |
grocy | [cont-init.d] 10-adduser: exited 0.
grocy | [cont-init.d] 20-config: executing...
grocy | [cont-init.d] 20-config: exited 0.
grocy | [cont-init.d] 30-keygen: executing...
grocy | generating self-signed keys in /config/keys, you can replace these with your own keys if required
grocy | Generating a RSA private key
grocy | ....................................+++++
grocy | ...+++++
grocy | writing new private key to '/config/keys/cert.key'
grocy | -----
grocy | [cont-init.d] 30-keygen: exited 0.
grocy | [cont-init.d] 50-config: executing...
grocy | [cont-init.d] 50-config: exited 0.
grocy | [cont-init.d] 99-custom-files: executing...
grocy | [custom-init] no custom files found exiting...
grocy | [cont-init.d] 99-custom-files: exited 0.
grocy | [cont-init.d] done.
grocy | [services.d] starting services
grocy | [services.d] done.

Log from /config/log/nginx/error.log

[error] 348#348: *3 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 192.168.1.10, server: _, request: "GET /

Log from /config/log/php/error.log

fpm is running, pid 328
NOTICE: ready to handle connections
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it

Documentation (README) Error.

The README states:


Application Setup
Grocy is simple to get running. Configure the container with the above instructions, [...]


But there are no "above instructions".

4.0.0 not working

          One more thing, since i now have a copy of grocy database, i have tried upgrading the container to the latest (4.0.0)

Im not sure if that's relevant, but after login i am getting this error in the webbrowser:
Error source:

/app/www/packages/morris/lessql/src/LessQL/Database.php:108

Error message:

SQLSTATE[HY000]: General error: 1 no such column: active (View: /app/www/views/stockoverview.blade.php)

Stack trace:

#0 /app/www/packages/illuminate/view/Engines/PhpEngine.php(60): Illuminate\View\Engines\CompilerEngine->handleViewException()
#1 /app/www/packages/illuminate/view/Engines/CompilerEngine.php(61): Illuminate\View\Engines\PhpEngine->evaluatePath()
#2 /app/www/packages/illuminate/view/View.php(139): Illuminate\View\Engines\CompilerEngine->get()
#3 /app/www/packages/illuminate/view/View.php(122): Illuminate\View\View->getContents()
#4 /app/www/packages/illuminate/view/View.php(91): Illuminate\View\View->renderContents()
#5 /app/www/packages/berrnd/slim-blade-view/src/Blade.php(173): Illuminate\View\View->render()
#6 /app/www/packages/berrnd/slim-blade-view/src/Blade.php(65): Slim\Views\Blade->fetch()
#7 /app/www/controllers/BaseController.php(182): Slim\Views\Blade->render()
#8 /app/www/controllers/BaseController.php(205): Grocy\Controllers\BaseController->render()
#9 /app/www/controllers/StockController.php(123): Grocy\Controllers\BaseController->renderPage()
#10 /app/www/packages/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(38): Grocy\Controllers\StockController->Overview()
#11 /app/www/packages/slim/slim/Slim/Routing/Route.php(358): Slim\Handlers\Strategies\RequestResponse->__invoke()
#12 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\Routing\Route->handle()
#13 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\MiddlewareDispatcher->handle()
#14 /app/www/packages/slim/slim/Slim/Routing/Route.php(315): Slim\MiddlewareDispatcher->handle()
#15 /app/www/packages/slim/slim/Slim/Routing/RouteRunner.php(68): Slim\Routing\Route->run()
#16 /app/www/middleware/LocaleMiddleware.php(16): Slim\Routing\RouteRunner->handle()
#17 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\LocaleMiddleware->__invoke()
#18 /app/www/middleware/AuthMiddleware.php(77): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#19 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\AuthMiddleware->__invoke()
#20 /app/www/packages/slim/slim/Slim/Middleware/RoutingMiddleware.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#21 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\RoutingMiddleware->process()
#22 /app/www/packages/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#23 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#24 /app/www/middleware/CorsMiddleware.php(27): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#25 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\CorsMiddleware->__invoke()
#26 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#27 /app/www/packages/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#28 /app/www/packages/slim/slim/Slim/App.php(183): Slim\App->handle()
#29 /app/www/app.php(109): Slim\App->run()
#30 /app/www/public/index.php(45): require_once('...')
#31 {main}

System info:

null

Again, i can revert back to ls195 and everything goes back to normal

Originally posted by @Dinth in #67 (comment)

Reset password

I'm not quite sure what happend but I can no longer login to my system. Is there an easy method to reset my password? I'm using docker-compose for this. Thanks.

Unable to Upload Images of Reasonable File Size

linuxserver.io


Expected Behavior

Uploading images of varying sizes to recipes from 2KB to 4MB. All files should upload.

Current Behavior

On saving a recipe images should be uploaded and saved. Currently files above approx 100KB do not upload, this was not the intention of the app developers, resulting in the application hanging without understandable feedback.

Steps to Reproduce

  1. Deploy app
  2. Upload image below 10KB, upload works
  3. Upload image above 100KB, upload fails

Environment

OS: Kubernetes
CPU architecture: x86_64
How docker service was installed:
Kubernetes manifest.

Docker logs

No relevant logs

Backup Grocy Data

How do i backup grocy data? I just want to copy over my data from one server to another
Thanks

[BUG] Update to 4.0.1 completely breaks website, links lead to different pages

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When updating from 4.0.0 to 4.0.1, the website completely breaks. Links lead to other pages, chores are unable to be tracked, and half of the sidebar links lead to a barcode displayed on the screen. It also breaks API connections to the Grocy android app.

Expected Behavior

Functional website as in 4.0.0

Steps To Reproduce

  1. In unRAID, update to the latest image (4.0.1)
  2. Website no longer functions normally

Environment

- OS: unRAID
- How docker service was installed: Community Appstore

CPU architecture

x86-64

Docker creation

N/A

Container logs

`[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: 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                                               │
│ 2022-08-20 │ 2023-06-24 │ /config/nginx/ssl.conf                                                 │
│            │ 2023-04-13 │ /config/nginx/site-confs/default.conf                                  │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
[custom-init] No custom files found, skipping...
[ls.io-init] done.
`

Empty stock list after upgrade 3.0.1 - 3.1.1

linuxserver.io


Expected Behavior

Upgrading should go without issues.

Current Behavior

After upgrading from 3.0.1 to 3.1.1 the stockoverview page is empty, an error is shown in the JS console: _Cannot set property 'DT_CellIndex' of undefined but since the code is obfuscated it's hard to find exactly where - it's inside the datatable rendering code.

Diagnosis:

  • A migration needs to run but did not, resulting in stockoverview showing empty where it should show entries.
  • I found a workaround for anyone trying to figure this out too:
  • Connect to the docker container, remove all files and folders under viewcache.
  • Restart the container
  • Go to the root of the project, not to a subsection (ie not to /stockoverview but to /)

I believe this will happen to others so it should be mentioned as an upgrade note.

One guess: this may be a 'user error' because after the update one is meant to go to the root of the project but normally you'd have a page in the history or already loaded so it's easy to just reload that. Doing this seems to leave something in the viewcache that means the migration never runs after that.

Steps to Reproduce

  1. Have a 3.0.1 release populated with data
  2. Upgrade to 3.1.1
  3. Reload and try to access /stockoverview

Environment

OS: Linux
CPU architecture: x86_64
How docker service was installed:

Synology NAS

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

Not necessary, standard run with bridge networking and /config/data mounted to a shared folder with correct permissions.

Docker logs

There are no errors or warning on the logs, just normal startup

Phone Camera not working as Barcode reader

Hello there,

Is it just me or does the usage of the phone camera as Barcode scanner not working in this Docker version?

Tried it out on berrnds live demo and it worked out just fine but not on my locally hosted Docker one.

[FEAT] Setting Grocy settings via enviroment

Is this a new feature request?

  • I have searched the existing issues

Wanted change

Would be nice, if we could use the same kind of environment settings as Grocy uses for their own docker images.
https://github.com/grocy/grocy-docker/blob/main/grocy.env

Reason for change

The default settings uses USD for currency, but if you live outside the US, you'll have to edit the config file inside the docker container. It would be much easier, if we could set this setting with an environment, when we create the container.

Proposed code change

No response

Container will not operate using https.

I'm running an image of this container on one VM and I have a other VM running nginx as a reverse proxy. Nginx is configured to redirect to https using Let's Encrypt.

Grocy will operate normally if I connect directly to the VM running the container. If I connect to via the reverse proxy, I get the text but the page looks like CSS is disabled. The address bar lock has a warning the connection is not secure. When I disable the security, that allows the framework to be applied and the site looks mostly normal. However, there are no images.

linuxserver.io

Thanks, team linuxserver.io

[BUG] No data shown in UI after docker pull new images

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Not sure if related to #9 or #50 but there are no answers for those.

I have grocy in my docker-compose.yaml.

relevant docker-compose.yaml
version: '3.7'
services:
  grocy:
    image: lscr.io/linuxserver/grocy:latest
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Copenhagen
    volumes:
      - /mnt/data/docker/grocy:/var/www/data
    ports:
      - "10.0.30.21:9283:80"
    restart: unless-stopped

After doing:

docker kill $(docker ps -q)
docker-compose build
docker-compose pull
docker-compose up -d

Everything is gone after logging in. Password has reset to default admin/admin, and no products, product_groups, location, etc. were present.

Output of docker logs grocy
$ docker logs grocy
[migrations] started
[migrations] 01-nginx-site-confs-default: executing...
[migrations] 01-nginx-site-confs-default: succeeded
[migrations] 02-default-location: executing...
[migrations] 02-default-location: 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 16
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] 02-default-location: 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.

I did have the web UI open (in a background window) while I did the docker pull, and I saw this page when I navigated back:
Screenshot 2023-12-12 at 17 36 56

I've pasted the logs and stack trace from that page here:

A server error occured while processing your request

Error source

/app/www/packages/morris/lessql/src/LessQL/Database.php:110

Error message

SQLSTATE[HY000]: General error: 1 no such table: sessions

Stack trace

#0 /app/www/packages/morris/lessql/src/LessQL/Database.php(110): PDO->prepare()
#1 /app/www/packages/morris/lessql/src/LessQL/Database.php(493): LessQL\Database->prepare()
#2 /app/www/packages/morris/lessql/src/LessQL/Result.php(143): LessQL\Database->select()
#3 /app/www/packages/morris/lessql/src/LessQL/Result.php(322): LessQL\Result->execute()
#4 /app/www/services/SessionService.php(54): LessQL\Result->fetch()
#5 /app/www/middleware/SessionAuthMiddleware.php(21): Grocy\Services\SessionService->IsValidSession()
#6 /app/www/middleware/DefaultAuthMiddleware.php(24): Grocy\Middleware\SessionAuthMiddleware->authenticate()
#7 /app/www/middleware/AuthMiddleware.php(53): Grocy\Middleware\DefaultAuthMiddleware->authenticate()
#8 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\AuthMiddleware->__invoke()
#9 /app/www/packages/slim/slim/Slim/Middleware/RoutingMiddleware.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#10 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\RoutingMiddleware->process()
#11 /app/www/packages/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#12 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#13 /app/www/middleware/CorsMiddleware.php(27): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#14 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\CorsMiddleware->__invoke()
#15 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#16 /app/www/packages/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#17 /app/www/packages/slim/slim/Slim/App.php(183): Slim\App->handle()
#18 /app/www/app.php(112): Slim\App->run()
#19 /app/www/public/index.php(45): require_once('...')
#20 {main}

Easy error info copy & paste (for reporting)

Error source:

/app/www/packages/morris/lessql/src/LessQL/Database.php:110


Error message:

SQLSTATE[HY000]: General error: 1 no such table: sessions


Stack trace:

#0 /app/www/packages/morris/lessql/src/LessQL/Database.php(110): PDO->prepare()
#1 /app/www/packages/morris/lessql/src/LessQL/Database.php(493): LessQL\Database->prepare()
#2 /app/www/packages/morris/lessql/src/LessQL/Result.php(143): LessQL\Database->select()
#3 /app/www/packages/morris/lessql/src/LessQL/Result.php(322): LessQL\Result->execute()
#4 /app/www/services/SessionService.php(54): LessQL\Result->fetch()
#5 /app/www/middleware/SessionAuthMiddleware.php(21): Grocy\Services\SessionService->IsValidSession()
#6 /app/www/middleware/DefaultAuthMiddleware.php(24): Grocy\Middleware\SessionAuthMiddleware->authenticate()
#7 /app/www/middleware/AuthMiddleware.php(53): Grocy\Middleware\DefaultAuthMiddleware->authenticate()
#8 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\AuthMiddleware->__invoke()
#9 /app/www/packages/slim/slim/Slim/Middleware/RoutingMiddleware.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#10 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\RoutingMiddleware->process()
#11 /app/www/packages/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#12 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#13 /app/www/middleware/CorsMiddleware.php(27): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#14 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\CorsMiddleware->__invoke()
#15 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#16 /app/www/packages/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#17 /app/www/packages/slim/slim/Slim/App.php(183): Slim\App->handle()
#18 /app/www/app.php(112): Slim\App->run()
#19 /app/www/public/index.php(45): require_once('...')
#20 {main}


System info:

{
"grocy_version": {
"Version": "4.0.3",
"ReleaseDate": "2023-09-02"
},
"php_version": "8.2.13",
"sqlite_version": "3.41.2",
"os": "Linux 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64",
"client": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0"
}

Expected Behavior

All data should remain when I update the docker container without changing anything with the persistent_data.

Steps To Reproduce

  1. In Ubuntu Server LTS (22.04) with docker (Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1) and docker-compose (docker-compose version 1.28.5, build c4eb3a1f) with docker-compose.yaml as shown above, set up linuxserver/grocy and add items.
  2. Update container as described above.

Environment

- OS: Ubuntu Server 22.04
- How docker service was installed: Can't remember, I think it was snap, but this is the version `Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1`

CPU architecture

x86-64

Docker creation

See above.

Container logs

See above.

[BUG] Terrible performance on the latest version

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

After the yesterdays update (31st of May) of docker container, Grocy started working VERY slow and completely unworkable. PHP-FPM process takes 100% of CPU and individual pages take minutes to load - often loading just bare html without CSS and images, or not loading at all.
Reverting to the previous tag (amd64-v3.3.2-ls193) fixes the problem.

Expected Behavior

No response

Steps To Reproduce

  1. Be on amd64-v3.3.2-ls193
  2. Upgrade to amd64-latest
  3. Point the browser to Grocy address
  4. Log in (login window shows quickly)
  5. After providing credentials, you will most likely need to wait a couple of minutes to get a website without CSS

Environment

- OS:Debian 11
- How docker service was installed: Portainer

CPU architecture

x86-64

Docker creation

Container details
Image 	linuxserver/grocy:amd64-v3.3.2-ls193@sha256:70334fa58baefadc5ce5fdfae81532f487bf644f26dd492a1daf038b2f732c29
Port configuration 	
0.0.0.0:9283
80/tcp
CMD 	
ENTRYPOINT 	/init
ENV 	
HOME 	/root
LSIO_FIRST_PARTY 	true
PATH 	/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PS1 	$(whoami)@$(hostname):$(pwd)\$
S6_CMD_WAIT_FOR_SERVICES_MAXTIME 	0
S6_STAGE2_HOOK 	/docker-mods
S6_VERBOSITY 	1
TERM 	xterm
VIRTUAL_ENV 	/lsiopy
Labels 	
build_version 	Linuxserver.io version:- v2.7.1-ls58 Build-date:- 2020-05-02T20:24:41+00:00
com.centurylinklabs.watchtower.enable 	true
maintainer 	alex-phillips, homerr
org.opencontainers.image.authors 	linuxserver.io
org.opencontainers.image.created 	2023-05-31T12:27:20+00:00
org.opencontainers.image.description 	[Grocy](https://github.com/grocy/grocy) is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool For more information on grocy visit their website and check it out: https://grocy.info
org.opencontainers.image.documentation 	https://docs.linuxserver.io/images/docker-grocy
org.opencontainers.image.licenses 	GPL-3.0-only
org.opencontainers.image.ref.name 	095988d5f2a30d077e08cf9df104bc796842bb64
org.opencontainers.image.revision 	095988d5f2a30d077e08cf9df104bc796842bb64
org.opencontainers.image.source 	https://github.com/linuxserver/docker-grocy
org.opencontainers.image.title 	Grocy
org.opencontainers.image.url 	https://github.com/linuxserver/docker-grocy/packages
org.opencontainers.image.vendor 	linuxserver.io
org.opencontainers.image.version 	v3.3.2-ls196

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: 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:    911
User GID:    911
───────────────────────────────────────

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-08-20 │ 2023-04-13 │ /config/nginx/site-confs/default.conf                                  │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
[custom-init] No custom files found, skipping...
[ls.io-init] done.

Unable to update product from Stock Entries list.

linuxserver.io


I'm trying to update the price of the products purchased from the stock entry list and the price is not updating. In the journal is present the transaction however the field price still on 0. If i'm entering form the purchase function is working perfectly.

I've just noticed that all the fields are not working. I tried also quantity and I have the same result.

Expected Behavior

price updated correctly

Current Behavior

price not updated

Steps to Reproduce

  1. Open stock Entries list
  2. Edit one of the entries
  3. Set the correct price
  4. Press Ok
  5. Press Close
  6. price not updated

Environment

OS: Raspeberry Pi4 with Rasbian
CPU architecture: x86_64/arm32/arm64
How docker service was installed:

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

The same command that there is in the instruction.

Docker logs

[BUG] Chore Userfield breaks editing/adding Chores

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

If you add any userfield with the Entity=chores, it will break the ability to edit/add chores

The below error is what is produced:

Error source:

/config/data/viewcache/310b22a807da34b33289c5d843ec258f.php:37

Error message:

Undefined constant Grocy\Services\UserfieldsService::USERFIELD_TYPE_INTEGRAL_NUMBER (View: /app/www/views/components/userfieldsform.blade.php) (View: /app/www/views/components/userfieldsform.blade.php)

Stack trace:

#0 /app/www/packages/illuminate/view/Engines/PhpEngine.php(60): Illuminate\View\Engines\CompilerEngine->handleViewException()
#1 /app/www/packages/illuminate/view/Engines/CompilerEngine.php(72): Illuminate\View\Engines\PhpEngine->evaluatePath()
#2 /app/www/packages/illuminate/view/View.php(195): Illuminate\View\Engines\CompilerEngine->get()
#3 /app/www/packages/illuminate/view/View.php(178): Illuminate\View\View->getContents()
#4 /app/www/packages/illuminate/view/View.php(147): Illuminate\View\View->renderContents()
#5 /app/www/packages/berrnd/slim-blade-view/src/Blade.php(173): Illuminate\View\View->render()
#6 /app/www/packages/berrnd/slim-blade-view/src/Blade.php(65): Slim\Views\Blade->fetch()
#7 /app/www/controllers/BaseController.php(186): Slim\Views\Blade->render()
#8 /app/www/controllers/BaseController.php(209): Grocy\Controllers\BaseController->render()
#9 /app/www/controllers/ChoresController.php(31): Grocy\Controllers\BaseController->renderPage()
#10 /app/www/packages/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(38): Grocy\Controllers\ChoresController->ChoreEditForm()
#11 /app/www/packages/slim/slim/Slim/Routing/Route.php(358): Slim\Handlers\Strategies\RequestResponse->__invoke()
#12 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\Routing\Route->handle()
#13 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\MiddlewareDispatcher->handle()
#14 /app/www/packages/slim/slim/Slim/Routing/Route.php(315): Slim\MiddlewareDispatcher->handle()
#15 /app/www/packages/slim/slim/Slim/Routing/RouteRunner.php(68): Slim\Routing\Route->run()
#16 /app/www/middleware/LocaleMiddleware.php(16): Slim\Routing\RouteRunner->handle()
#17 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\LocaleMiddleware->__invoke()
#18 /app/www/middleware/AuthMiddleware.php(77): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#19 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\AuthMiddleware->__invoke()
#20 /app/www/packages/slim/slim/Slim/Middleware/RoutingMiddleware.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#21 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\RoutingMiddleware->process()
#22 /app/www/packages/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#23 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#24 /app/www/middleware/CorsMiddleware.php(27): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#25 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\CorsMiddleware->__invoke()
#26 /app/www/packages/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#27 /app/www/packages/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#28 /app/www/packages/slim/slim/Slim/App.php(183): Slim\App->handle()
#29 /app/www/app.php(112): Slim\App->run()
#30 /app/www/public/index.php(45): require_once('...')
#31 {main}

System info:

{
    "grocy_version": {
        "Version": "4.0.3",
        "ReleaseDate": "2023-09-02"
    },
    "php_version": "8.2.10",
    "sqlite_version": "3.41.2",
    "os": "Linux 6.1.49-Unraid #1 SMP PREEMPT_DYNAMIC Wed Aug 30 09:42:35 PDT 2023 x86_64",
    "client": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/117.0.0.0 Safari\/537.36"
}

Expected Behavior

The userfield would show up in the chores edit screens

Steps To Reproduce

  1. Navigate to Manage Master Data > Userfields or Manage Master Data > Chores and hit "Configure userfields"
  2. Add any type of userfield for the Entity of Chores
  3. Attempt to add or edit any chore to see the error

Environment

- OS: Unraid 6.12.4
- How docker service was installed: Built-in, Docker was installed from the Community Applications catalog.

CPU architecture

x86-64

Docker creation

docker run
  -d
  --name='grocy'
  --net='bestitpros'
  -e TZ="America/Los_Angeles"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Docile"
  -e HOST_CONTAINERNAME="grocy"
  -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/grocy-logo.png'
  -p '9283:80/tcp'
  -v '/mnt/user/appdata/grocy':'/config':'rw' 'lscr.io/linuxserver/grocy'
7f7a5efba8e2fcc332e8760f05b1dc21b1b107723cd37b76c2ddcfbaec2eb82f

Container logs

root@Docile:~# docker logs grocy
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: 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                                               │
│ 2022-08-20 │ 2023-08-13 │ /config/nginx/ssl.conf                                                 │
│            │ 2023-04-13 │ /config/nginx/site-confs/default.conf                                  │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
[custom-init] No custom files found, skipping...
[ls.io-init] done.

white page after container restart

linuxserver.io

Thanks, team linuxserver.io

When i setup this containers with the right values, ik works very well. I get it even working behind my proxy the fist time. But when i restart the container, i only get a white page. Nothing is working anymore.
When i reacreate the the container, i get the same issues the second time. Whats wrong with this container?

502 Bad Gateway using raspberry pi 3b+ 64bit

linuxserver.io


Expected Behavior

Grocy webpage loads and expected, so the user can access to its account.

Current Behavior

When the user tries to connect to Grocy, going to localhost:9283 the browser returns an error 502 Bad Gateway produced by nginx.
This error can also be related with hassio-addons/addon-grocy#224 and it seems that it is a problem with the alpine Linux image.

Steps to Reproduce

  1. Install docker and docker compose in the Raspberry Pi 3B+.
  2. Copy the example compose.yml from the README of this repo.
  3. Start the image using docker compose, docker-compose up -d.
  4. Access to Grocy webpage.

Environment

OS: Debian 11 Bullseye
CPU architecture: arm64
How docker service was installed:

Using the installation script available in the official docker webpage. Additionally, following this tutorial.

The docker compose was installed using your own tutorial following the recommended first method.

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

Using the following compose.yml

version: "2.1"
services:
  grocy:
    image: lscr.io/linuxserver/grocy
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
    volumes:
      - /home/adrigrillo/data/grocy-data-2:/config
    ports:
      - 9283:80
    restart: unless-stopped

and docker-compose up -d

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] 50-config: executing...
[cont-init.d] 50-config: 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. 

However in the NGINX logs we can found:

  • For the access.log
192.168.1.128 - - [18/Nov/2021:09:07:05 +0000] "GET / HTTP/1.1" 502 157 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0"
192.168.1.128 - - [18/Nov/2021:09:07:05 +0000] "GET /favicon.ico HTTP/1.1" 502 157 "http://192.168.1.191:9283/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0"
  • For the error.log1
2021/11/18 09:07:05 [error] 368#368: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.128, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.191:9283"
2021/11/18 09:07:05 [error] 368#368: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.128, server: _, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.191:9283", referrer: "http://192.168.1.191:9283/"

Grocy reverse proxy Traefik

linuxserver.io

Ubuntu 18.10

version: "2"
services:
grocy:
image: linuxserver/grocy
container_name: grocy
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- /disk2/grocy:/config
ports:
- 9283:80
restart: unless-stopped
networks:
- monitoring
labels:
- "traefik.enable=true"
- "traefik.backend=grocy"
- "traefik.frontend.rule=Host:EXAMPLE.com; PathPrefix: /grocy;"
- "traefik.port=80"
- "traefik.protocol=http"

networks:
monitoring:
external:
name: monitoring

[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...

using keys found in /config/keys

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

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

[cont-init.d] 50-config: 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.

NA

Essentially I am unable to get Grocy to work as a subdirectory. I got Ombi and Tautulli from you guys working as a subdirectory so I dont know what is causing this issue with same label setup.

iCal Calendar not working -> GET /calendar/ical returns error 500


Expected Behavior

Get ics calendar file in Grocy 3.1.0 when open ical link
Like in this example: https://en.demo.grocy.info/api/calendar/ical?secret=PziE4Yu17bq3vTgUfSZ8Qw4U3q0EalmX2Z4NW3kApqMfHkOQUL

Current Behavior

Since Update to grocy 3.1.0 : Error 500 Message

Steps to Reproduce

  1. Request iCal Link in Browser https://grocyhost/api/calendar/ical?secret=###SECRET###
  2. See Error 500 + JSON Error

Environment

OS: Debian 11
CPU architecture: x86_64
How docker service was installed: offical docker repo

Command used to create docker container (compose)

dockercompose:

 grocy:
    image: linuxserver/grocy
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - CULTURE=de
    networks:
       bridge:
    volumes:
      - grocy_config:/config
    ports:
      - 9283:80
    restart: unless-stopped

Docker logs

Error: Internal Server Error

{
  "error_message": "Argument 1 passed to Eluceo\\iCal\\Domain\\ValueObject\\PointInTime::__construct() must implement interface DateTimeInterface or be null, bool given, called in /app/grocy/controllers/CalendarApiController.php on line 33",
  "error_details": {
    "stack_trace": "#0 /app/grocy/controllers/CalendarApiController.php(33): Eluceo\\iCal\\Domain\\ValueObject\\PointInTime->__construct()\n#1 /app/grocy/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(43): Grocy\\Controllers\\CalendarApiController->Ical()\n#2 /app/grocy/vendor/slim/slim/Slim/Routing/Route.php(384): Slim\\Handlers\\Strategies\\RequestResponse->__invoke()\n#3 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): Slim\\Routing\\Route->handle()\n#4 /app/grocy/middleware/JsonMiddleware.php(13): Slim\\MiddlewareDispatcher->handle()\n#5 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(209): Grocy\\Middleware\\JsonMiddleware->__invoke()\n#6 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): class@anonymous->handle()\n#7 /app/grocy/vendor/slim/slim/Slim/Routing/Route.php(341): Slim\\MiddlewareDispatcher->handle()\n#8 /app/grocy/vendor/slim/slim/Slim/Routing/RouteRunner.php(84): Slim\\Routing\\Route->run()\n#9 /app/grocy/middleware/LocaleMiddleware.php(16): Slim\\Routing\\RouteRunner->handle()\n#10 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(313): Grocy\\Middleware\\LocaleMiddleware->__invoke()\n#11 /app/grocy/middleware/AuthMiddleware.php(76): class@anonymous->handle()\n#12 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(313): Grocy\\Middleware\\AuthMiddleware->__invoke()\n#13 /app/grocy/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php(59): class@anonymous->handle()\n#14 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(147): Slim\\Middleware\\RoutingMiddleware->process()\n#15 /app/grocy/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(107): class@anonymous->handle()\n#16 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(147): Slim\\Middleware\\ErrorMiddleware->process()\n#17 /app/grocy/middleware/CorsMiddleware.php(30): class@anonymous->handle()\n#18 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(313): Grocy\\Middleware\\CorsMiddleware->__invoke()\n#19 /app/grocy/vendor/slim/slim/Slim/MiddlewareDispatcher.php(81): class@anonymous->handle()\n#20 /app/grocy/vendor/slim/slim/Slim/App.php(215): Slim\\MiddlewareDispatcher->handle()\n#21 /app/grocy/vendor/slim/slim/Slim/App.php(199): Slim\\App->handle()\n#22 /app/grocy/app.php(106): Slim\\App->run()\n#23 /app/grocy/public/index.php(45): require_once('/app/grocy/app....')\n#24 {main}",
    "file": "/app/grocy/vendor/eluceo/ical/src/Domain/ValueObject/PointInTime.php",
    "line": 26
  }
}

Installing an SSL certificate

What's the best approach to installing an SSL certificate on this?

Not totally familiar with how to manipulate a docker image.

hello, how to install docker-grocy with traefik?

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

I want install docker-grocy with docker-traefik

Current Behavior

but I get error 502

Steps to Reproduce

  1. git clone
  2. docker-compose up -d

Environment

OS: Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux
**CPU architecture:**x68_64
How docker service was installed:

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

docker-compose.yml :

version: '2.1'

networks:
  web:
    external: true

services:
  grocy:
    image: linuxserver/grocy
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Jakarta
    volumes:
      - ./config:/config
    restart: unless-stopped
    labels:
      - traefik.backend=grocy
      - traefik.frontend.rule=Host:grocy.hertanto.com
      - traefik.docker.network=web
      - traefik.port=9283
    networks:
      - web
    ports:
      - 9283:80

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...
using keys found in /config/keys
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing...
[cont-init.d] 50-config: 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.

Multiple Errors: Call to undefined function ctype_space()

linuxserver.io


Expected Behavior

No error boxes.

Current Behavior

Error boxes on every page. Technical Details:

"{\"error_message\":\"Call to undefined function ctype_space()\",\"error_details\":{\"stack_trace\":\"#0 \\/app\\/grocy\\/vendor\\/ezyang\\/htmlpurifier\\/library\\/HTMLPurifier\\/Lexer\\/DirectLex.php(158): HTMLPurifier_Token_Text->__construct('{\\\"time\\\":1608648...')\\n#1 \\/app\\/grocy\\/vendor\\/ezyang\\/htmlpurifier\\/library\\/HTMLPurifier.php(213): HTMLPurifier_Lexer_DirectLex->tokenizeHTML('{\\\"time\\\":1608648...', Object(HTMLPurifier_Config), Object(HTMLPurifier_Context))\\n#2 \\/app\\/grocy\\/controllers\\/BaseController.php(205): HTMLPurifier->purify('{\\\"time\\\":1608648...')\\n#3 \\/app\\/grocy\\/controllers\\/UsersApiController.php(211): Grocy\\\\Controllers\\\\BaseController->GetParsedAndFilteredRequestBody(Object(Slim\\\\Http\\\\ServerRequest))\\n#4 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/Handlers\\/Strategies\\/RequestResponse.php(43): Grocy\\\\Controllers\\\\UsersApiController->SetUserSetting(Object(Slim\\\\Http\\\\ServerRequest), Object(Slim\\\\Http\\\\Response), Array)\\n#5 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/Routing\\/Route.php(384): Slim\\\\Handlers\\\\Strategies\\\\RequestResponse->__invoke(Array, Object(Slim\\\\Http\\\\ServerRequest), Object(Slim\\\\Http\\\\Response), Array)\\n#6 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(81): Slim\\\\Routing\\\\Route->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#7 \\/app\\/grocy\\/middleware\\/JsonMiddleware.php(13): Slim\\\\MiddlewareDispatcher->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#8 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(209): Grocy\\\\Middleware\\\\JsonMiddleware->__invoke(Object(Slim\\\\Http\\\\ServerRequest), Object(Slim\\\\MiddlewareDispatcher))\\n#9 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(81): class@anonymous->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#10 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/Routing\\/Route.php(341): Slim\\\\MiddlewareDispatcher->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#11 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/Routing\\/RouteRunner.php(84): Slim\\\\Routing\\\\Route->run(Object(Slim\\\\Http\\\\ServerRequest))\\n#12 \\/app\\/grocy\\/middleware\\/LocaleMiddleware.php(16): Slim\\\\Routing\\\\RouteRunner->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#13 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(313): Grocy\\\\Middleware\\\\LocaleMiddleware->__invoke(Object(Slim\\\\Http\\\\ServerRequest), Object(Slim\\\\Routing\\\\RouteRunner))\\n#14 \\/app\\/grocy\\/middleware\\/AuthMiddleware.php(76): class@anonymous->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#15 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(313): Grocy\\\\Middleware\\\\AuthMiddleware->__invoke(Object(Slim\\\\Http\\\\ServerRequest), Object(class@anonymous))\\n#16 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/Middleware\\/RoutingMiddleware.php(59): class@anonymous->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#17 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(147): Slim\\\\Middleware\\\\RoutingMiddleware->process(Object(Slim\\\\Http\\\\ServerRequest), Object(class@anonymous))\\n#18 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/Middleware\\/ErrorMiddleware.php(107): class@anonymous->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#19 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(147): Slim\\\\Middleware\\\\ErrorMiddleware->process(Object(Slim\\\\Http\\\\ServerRequest), Object(class@anonymous))\\n#20 \\/app\\/grocy\\/middleware\\/CorsMiddleware.php(30): class@anonymous->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#21 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(313): Grocy\\\\Middleware\\\\CorsMiddleware->__invoke(Object(Slim\\\\Http\\\\ServerRequest), Object(class@anonymous))\\n#22 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/MiddlewareDispatcher.php(81): class@anonymous->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#23 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/App.php(215): Slim\\\\MiddlewareDispatcher->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#24 \\/app\\/grocy\\/vendor\\/slim\\/slim\\/Slim\\/App.php(199): Slim\\\\App->handle(Object(Slim\\\\Http\\\\ServerRequest))\\n#25 \\/app\\/grocy\\/app.php(77): Slim\\\\App->run()\\n#26 \\/app\\/grocy\\/public\\/index.php(45): require_once('\\/app\\/grocy\\/app....')\\n#27 {main}\",\"file\":\"\\/app\\/grocy\\/vendor\\/ezyang\\/htmlpurifier\\/library\\/HTMLPurifier\\/Token\\/Text.php\",\"line\":43}}"

Steps to Reproduce

  1. pulled the latest linuxserver/grocy image, v3.0.0
  2. started the docker container
  3. loaded the default stock summary page
  4. observed multiple red error boxes, all with similar technical detail strings

Environment

OS: Ubuntu 20.04
CPU architecture: x86_64
How docker service was installed: docker repo, docker version 20.10.1, build 831ebea

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

sudo docker run -d --name=grocy -e PUID=1000 -e PGID=1000 -e TZ=US/Eastern -p 9283:80 -v ./config:/config --restart always linuxserver/grocy

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...
using keys found in /config/keys
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing...
[cont-init.d] 50-config: 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.

Migrations scripts logs errors but migration is successfully

linuxserver.io


Expected Behavior

I expect that the migrations completes without an error being logged.

Current Behavior

The migration is successful but there are still error messages in the logs.
My first reaction was to check manually, that the migration was completed successfully.

Steps to Reproduce

  1. Setup grocy with version v3.3.1-ls166 and older
  2. Upgrade to version v3.3.1-ls167
  3. During the migration the errors are logged (see docker log below)

Environment

OS: Ubuntu Server 20.04.5 LTS
CPU architecture: x86_64
How docker service was installed: from the distro repo

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

---
version: "3.6"

networks:
  traefik-with-internet:
    external: true

services:
  grocy:
    image: ghcr.io/linuxserver/grocy
    restart: unless-stopped
    networks:
      traefik-with-internet:
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Rome
    labels:
      traefik.enable: "true"
      traefik.docker.network: traefik-with-internet
      traefik.http.routers.grocy.entrypoints: internal,cloudflare
      traefik.http.routers.grocy.rule: Host(`[REMOVED]`)
      traefik.http.services.grocy.loadbalancer.server.port: 80
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /usr/share/zoneinfo/Europe/Rome:/usr/share/zoneinfo/Europe/Rome:ro

      - ./config:/config

Docker logs

I pasted here only the relevant logs:

grocy_1  | cont-init: info: running /etc/cont-init.d/01-migrations
grocy_1  | [migrations] started
grocy_1  | [migrations] 01-nginx-site-confs-default: executing...
grocy_1  | /etc/cont-init.d/01-migrations: line 22: [[: found /config/nginx/site-confs/default
grocy_1  | moving to /config/nginx/site-confs/default.conf
grocy_1  | 0: division by 0 (error token is "config/nginx/site-confs/default
grocy_1  | moving to /config/nginx/site-confs/default.conf
grocy_1  | 0")
grocy_1  | [migrations] 01-nginx-site-confs-default: succeeded
grocy_1  | [migrations] 02-default-location: executing...
grocy_1  | /etc/cont-init.d/01-migrations: line 22: [[: updating root in /config/nginx/site-confs/default.conf
grocy_1  | 0: syntax error in expression (error token is "root in /config/nginx/site-confs/default.conf
grocy_1  | 0")
grocy_1  | [migrations] 02-default-location: succeeded
grocy_1  | [migrations] done
grocy_1  | cont-init: info: /etc/cont-init.d/01-migrations exited 0

[BUG] config.php not found

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I have started the container mounted to a local directory. It has created a data subdirectory with a config.php present. However when I browse to the page I get:

Unable to run grocy: config.php in data directory (/app/www/public/../data) not found. Have you copied config-dist.php to the data directory and renamed it to config.php?

There are no error logs in log

Expected Behavior

No response

Steps To Reproduce

Configured in Docker on Synology with these settings:

image

Environment

- OS: Synology

CPU architecture

x86-64

Docker creation

![image](https://user-images.githubusercontent.com/1201644/210475061-9dd4db2a-32c5-4340-8897-c17b15c0e622.png)

Container logs

2023-01-04T02:43:59.668074105Z	stdout	[04-Jan-2023 03:43:59] NOTICE: ready to handle connections
2023-01-04T02:43:59.667178964Z	stdout	[04-Jan-2023 03:43:59] NOTICE: fpm is running, pid 177
2023-01-04T02:43:59.615628907Z	stdout	s6-rc: info: service 99-ci-service-check successfully started
2023-01-04T02:43:59.615018910Z	stdout	[ls.io-init] done.
2023-01-04T02:43:59.613579161Z	stdout	crond[174]: crond (busybox 1.34.1) started, log level 5
2023-01-04T02:43:59.608159837Z	stdout	s6-rc: info: service 99-ci-service-check: starting
2023-01-04T02:43:59.607801534Z	stdout	s6-rc: info: service legacy-services successfully started
2023-01-04T02:43:59.602218901Z	stdout	services-up: info: copying legacy longrun php-fpm (no readiness notification)
2023-01-04T02:43:59.601089609Z	stdout	services-up: info: copying legacy longrun nginx (no readiness notification)
2023-01-04T02:43:59.599482576Z	stdout	services-up: info: copying legacy longrun cron (no readiness notification)
2023-01-04T02:43:59.593753258Z	stdout	s6-rc: info: service legacy-services: starting
2023-01-04T02:43:59.593498648Z	stdout	s6-rc: info: service init-services successfully started
2023-01-04T02:43:59.591745431Z	stdout	s6-rc: info: service init-services: starting
2023-01-04T02:43:59.591484850Z	stdout	s6-rc: info: service init-mods-end successfully started
2023-01-04T02:43:59.589831194Z	stdout	s6-rc: info: service init-mods-end: starting
2023-01-04T02:43:59.589504842Z	stdout	s6-rc: info: service init-mods-package-install successfully started
2023-01-04T02:43:59.582296768Z	stdout	s6-rc: info: service init-mods-package-install: starting
2023-01-04T02:43:59.581969107Z	stdout	s6-rc: info: service init-mods successfully started
2023-01-04T02:43:59.579462234Z	stdout	s6-rc: info: service init-mods: starting
2023-01-04T02:43:59.579280139Z	stdout	s6-rc: info: service legacy-cont-init successfully started
2023-01-04T02:43:59.577046158Z	stdout	cont-init: info: /etc/cont-init.d/99-custom-files exited 0
2023-01-04T02:43:59.570693775Z	stdout	[custom-init] No custom files found, skipping...
2023-01-04T02:43:59.564840760Z	stdout	cont-init: info: running /etc/cont-init.d/99-custom-files
2023-01-04T02:43:59.564355854Z	stdout	cont-init: info: /etc/cont-init.d/85-version-checks exited 0
2023-01-04T02:43:59.547623625Z	stdout	cont-init: info: running /etc/cont-init.d/85-version-checks
2023-01-04T02:43:59.547474290Z	stdout	cont-init: info: /etc/cont-init.d/50-config exited 0
2023-01-04T02:43:59.268519835Z	stdout	cont-init: info: running /etc/cont-init.d/50-config
2023-01-04T02:43:59.268363511Z	stdout	cont-init: info: /etc/cont-init.d/20-permissions exited 0
2023-01-04T02:43:59.255590322Z	stdout	cont-init: info: running /etc/cont-init.d/20-permissions
2023-01-04T02:43:59.255530747Z	stdout	cont-init: info: /etc/cont-init.d/15-keygen exited 0
2023-01-04T02:43:59.255198831Z	stdout	using keys found in /config/keys
2023-01-04T02:43:59.248974700Z	stdout	cont-init: info: running /etc/cont-init.d/15-keygen
2023-01-04T02:43:59.248796661Z	stdout	cont-init: info: /etc/cont-init.d/14-php exited 0
2023-01-04T02:43:59.240062218Z	stdout	cont-init: info: running /etc/cont-init.d/14-php
2023-01-04T02:43:59.239875110Z	stdout	cont-init: info: /etc/cont-init.d/13-nginx exited 0
2023-01-04T02:43:59.227467672Z	stdout	cont-init: info: running /etc/cont-init.d/13-nginx
2023-01-04T02:43:59.227310767Z	stdout	cont-init: info: /etc/cont-init.d/12-samples exited 0
2023-01-04T02:43:59.215344609Z	stdout	cont-init: info: running /etc/cont-init.d/12-samples
2023-01-04T02:43:59.215191360Z	stdout	cont-init: info: /etc/cont-init.d/11-folders exited 0
2023-01-04T02:43:59.207332457Z	stdout	cont-init: info: running /etc/cont-init.d/11-folders
2023-01-04T02:43:59.207183153Z	stdout	cont-init: info: /etc/cont-init.d/10-adduser exited 0
2023-01-04T02:43:59.198872408Z	stdout	
2023-01-04T02:43:59.198831320Z	stdout	-------------------------------------
2023-01-04T02:43:59.198788104Z	stdout	User gid:    1000
2023-01-04T02:43:59.198724814Z	stdout	User uid:    1000
2023-01-04T02:43:59.198610262Z	stdout	
2023-01-04T02:43:59.195068748Z	stdout	-------------------------------------
2023-01-04T02:43:59.195026042Z	stdout	GID/UID
2023-01-04T02:43:59.194986044Z	stdout	-------------------------------------
2023-01-04T02:43:59.194937494Z	stdout	https://www.linuxserver.io/donate/
2023-01-04T02:43:59.194877282Z	stdout	To support LSIO projects visit:
2023-01-04T02:43:59.194820833Z	stdout	
2023-01-04T02:43:59.194622551Z	stdout	-------------------------------------
2023-01-04T02:43:59.194475839Z	stdout	Brought to you by linuxserver.io
2023-01-04T02:43:59.194423356Z	stdout	
2023-01-04T02:43:59.194384436Z	stdout	
2023-01-04T02:43:59.194343785Z	stdout	         |_| |___/ |_|  \__/
2023-01-04T02:43:59.194303356Z	stdout	         | | \__ \ | | | () |
2023-01-04T02:43:59.194261610Z	stdout	         | | / __| | |  /  \
2023-01-04T02:43:59.194215027Z	stdout	         | |  ___   _    __
2023-01-04T02:43:59.194167424Z	stdout	          _         ()
2023-01-04T02:43:59.194110667Z	stdout	-------------------------------------
2023-01-04T02:43:59.193979912Z	stdout	
2023-01-04T02:43:59.193666137Z	stdout	usermod: no changes
2023-01-04T02:43:59.165478792Z	stdout	cont-init: info: running /etc/cont-init.d/10-adduser
2023-01-04T02:43:59.165384849Z	stdout	cont-init: info: /etc/cont-init.d/01-migrations exited 0
2023-01-04T02:43:59.165227485Z	stdout	[migrations] done
2023-01-04T02:43:59.164949386Z	stdout	[migrations] 02-default-location: skipped
2023-01-04T02:43:59.160772958Z	stdout	[migrations] 01-nginx-site-confs-default: skipped
2023-01-04T02:43:59.148704925Z	stdout	[migrations] started
2023-01-04T02:43:59.142689696Z	stdout	cont-init: info: running /etc/cont-init.d/01-migrations
2023-01-04T02:43:59.141397943Z	stdout	cont-init: info: /etc/cont-init.d/01-envfile exited 0
2023-01-04T02:43:59.110747285Z	stdout	cont-init: info: running /etc/cont-init.d/01-envfile
2023-01-04T02:43:59.105640561Z	stdout	s6-rc: info: service legacy-cont-init: starting
2023-01-04T02:43:59.105302528Z	stdout	s6-rc: info: service fix-attrs successfully started
2023-01-04T02:43:59.104662562Z	stdout	s6-rc: info: service 00-legacy successfully started
2023-01-04T02:43:59.100870383Z	stdout	s6-rc: info: service 00-legacy: starting
2023-01-04T02:43:59.100244783Z	stdout	s6-rc: info: service fix-attrs: starting
2023-01-04T02:43:59.099959469Z	stdout	s6-rc: info: service s6rc-oneshot-runner successfully started
2023-01-04T02:43:59.091356583Z	stdout	s6-rc: info: service s6rc-oneshot-runner: starting
2023-01-04T02:43:59.050133426Z	stdout	[custom-init] No custom services found, skipping...

Image is not starting - can't find crt key

linuxserver.io


Expected Behavior

The image starts, webserver is reachable

Current Behavior

The image is executed, started, but nothing happens. Webserver not reachable.
Installed on a Raspberry Pi 3.

Steps to Reproduce

  1. Use pi 3
  2. Start image
  3. Wait
  4. Nothing happens on webport.

Environment

Raspbian
armv7
Pi 3

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

docker run -d --name=grocy -e PUID=1000 -e PGID=1000 -e TZ=Europe/Berlin -p 9283:80 -v /home/pi/grocy:/config --restart unless-stopped ghcr.io/linuxserver/grocy

Docker logs

https://pastebin.com/UNLKDm7N

Grocy not configurable with Environment Variables

linuxserver.io

UnRaid

Bildschirmfoto 2019-07-04 um 00 17 33

The grocy application can be configured by Environmetnt variables, seeconfig.php.

An environment variable with the same name as the setting and prefix "GROCY_"

so for example "GROCY_BASE_URL"

That doesn't work with this container, see screensot above.

Fresh pull blank webui

linuxserver.io

Unraid

docker run -d --name='grocy' \
--net='bridge' \
-e TZ="Europe/London" \
-e 'PUID'='99' \
-e 'PGID'='100' \
-p '9283:80/tcp' \
-v '/mnt/disks/virtualisation/appdata/grocy':'/config':'rw' \
'linuxserver/grocy'
-------------------------------------
GID/UID
-------------------------------------

User uid: 99
User gid: 100
-------------------------------------

[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] 50-config: executing...
[cont-init.d] 50-config: exited 0.
[cont-init.d] 99-custom-scripts: executing...
[custom-init] no custom scripts found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

Seems a few people are having this issue, and I was able to reproduce it locally on latest
& linuxserver/grocy:v2.4.0-ls17

Rolled back to linuxserver/grocy:v2.3.0-ls16 and a fresh pull of that was working.

To further complicate things, using the /config folder from v2.4.0-ls17 with the image from v2.3.0-ls16 also doesn't work with a blank webui.

Using the /config folder from v2.3.0-ls16 with the image from v2.4.0-ls17 results in the webui coming up with Slim Application Error and the following being displayed on the browser page.

Slim Application Error

The application could not run because of the following error:
Details
Type: ErrorException
Message: Function name must be a string (View: /app/grocy/views/login.blade.php)
File: /config/data/viewcache/280834de7e8f30ba6d5b5ffd2e411299adf3057f.php
Line: 1
Trace

#0 /app/grocy/vendor/illuminate/view/Engines/PhpEngine.php(47): Illuminate\View\Engines\CompilerEngine->handleViewException(Object(Symfony\Component\Debug\Exception\FatalThrowableError), 2)
#1 /app/grocy/vendor/illuminate/view/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/app/grocy/data...', Array)
#2 /app/grocy/vendor/illuminate/view/View.php(142): Illuminate\View\Engines\CompilerEngine->get('/app/grocy/view...', Array)
#3 /app/grocy/vendor/illuminate/view/View.php(125): Illuminate\View\View->getContents()
#4 /app/grocy/vendor/illuminate/view/View.php(90): Illuminate\View\View->renderContents()
#5 /app/grocy/vendor/rubellum/slim-blade-view/src/Blade.php(173): Illuminate\View\View->render()
#6 /app/grocy/vendor/rubellum/slim-blade-view/src/Blade.php(65): Slim\Views\Blade->fetch('login', Array)
#7 /app/grocy/controllers/LoginController.php(57): Slim\Views\Blade->render(Object(Slim\Http\Response), 'login')
#8 [internal function]: Grocy\Controllers\LoginController->LoginPage(Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#9 /app/grocy/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#10 /app/grocy/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#11 /app/grocy/middleware/SessionAuthMiddleware.php(57): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#12 [internal function]: Grocy\Middleware\SessionAuthMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#13 /app/grocy/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array(Object(Grocy\Middleware\SessionAuthMiddleware), Array)
#14 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#15 /app/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#16 /app/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#17 /app/grocy/vendor/slim/slim/Slim/Route.php(334): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#18 /app/grocy/vendor/slim/slim/Slim/App.php(515): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#19 /app/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#20 /app/grocy/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#21 /app/grocy/vendor/slim/slim/Slim/App.php(313): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#22 /app/grocy/app.php(71): Slim\App->run()
#23 /app/grocy/public/index.php(3): require_once('/app/grocy/app....')
#24 {main}

Previous exception
Type: Symfony\Component\Debug\Exception\FatalThrowableError
Message: Function name must be a string
File: /config/data/viewcache/280834de7e8f30ba6d5b5ffd2e411299adf3057f.php
Line: 1
Trace

#0 /app/grocy/vendor/illuminate/view/Engines/PhpEngine.php(43): include()
#1 /app/grocy/vendor/illuminate/view/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/app/grocy/data...', Array)
#2 /app/grocy/vendor/illuminate/view/View.php(142): Illuminate\View\Engines\CompilerEngine->get('/app/grocy/view...', Array)
#3 /app/grocy/vendor/illuminate/view/View.php(125): Illuminate\View\View->getContents()
#4 /app/grocy/vendor/illuminate/view/View.php(90): Illuminate\View\View->renderContents()
#5 /app/grocy/vendor/rubellum/slim-blade-view/src/Blade.php(173): Illuminate\View\View->render()
#6 /app/grocy/vendor/rubellum/slim-blade-view/src/Blade.php(65): Slim\Views\Blade->fetch('login', Array)
#7 /app/grocy/controllers/LoginController.php(57): Slim\Views\Blade->render(Object(Slim\Http\Response), 'login')
#8 [internal function]: Grocy\Controllers\LoginController->LoginPage(Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#9 /app/grocy/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#10 /app/grocy/vendor/slim/slim/Slim/Route.php(356): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#11 /app/grocy/middleware/SessionAuthMiddleware.php(57): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#12 [internal function]: Grocy\Middleware\SessionAuthMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#13 /app/grocy/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array(Object(Grocy\Middleware\SessionAuthMiddleware), Array)
#14 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#15 /app/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#16 /app/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#17 /app/grocy/vendor/slim/slim/Slim/Route.php(334): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#18 /app/grocy/vendor/slim/slim/Slim/App.php(515): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#19 /app/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#20 /app/grocy/vendor/slim/slim/Slim/App.php(405): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#21 /app/grocy/vendor/slim/slim/Slim/App.php(313): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#22 /app/grocy/app.php(71): Slim\App->run()
#23 /app/grocy/public/index.php(3): require_once('/app/grocy/app....')
#24 {main}

iCal Calendar not working - chore -> Dynamic regular

linuxserver.io


Expected Behavior

iCal Link is working -> https:///api/calendar/ical?secret=

Current Behavior

Error: "Eluceo\iCal\Domain\ValueObject\PointInTime::__construct(): Argument #1 ($dateTime) must be of type ?DateTimeInterface, bool given, called in /app/grocy/controllers/CalendarApiController.php on line 33"

Steps to Reproduce

  1. iCal Link is working (No error)
  2. Set new chore -> Period type = Dynamic regular or Weekly (if a Day of a Week is not selected) -> Save
  3. iCal Link is not working (see Current Behavior)
  4. Delete chore -> iCal Link is working

Environment

OS: Ubuntu 20.04
CPU architecture: x86_64
How docker service was installed:
Portainer 2.6.3 with https://github.com/linuxserver/docker-grocy#docker-compose-recommended-click-here-for-more-info

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

version: "2.1"
services:
  grocy:
    image: ghcr.io/linuxserver/grocy:amd64-latest
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - /mnt/vmDaten/Grocy:/config
    ports:
      - 9283:80
    restart: unless-stopped

Docker logs

Missing php7-ldap package

linuxserver.io

The image should provide the php7-ldap package (see https://github.com/grocy/grocy-docker/blob/master/Dockerfile-grocy#L43)


Desired Behavior

LDAP should work out of the box (provided the right configuration).

Current Behavior

Right now I get the following error Call to undefined function Grocy\Middleware\ldap_connect().

Setup LDAP according to https://github.com/grocy/grocy/blob/master/config-dist.php to reproduce the error.

Alternatives Considered

Installing the package manually myself.

[BUG] Update from latest 3 to latest 4 breaks sql statements

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

no such table: cache quantity unit conversions resolved (View: /app/www/views/shoppinglist.blade.php)

after updating the docker-image, i guess there are missing db migrations that should have been done?
a downgrade to 4.0.0 also does not help, i'm stuck at the latest 3.

log of container looks good, i guess

Expected Behavior

DB migrations and then a running 4.x

Steps To Reproduce

  1. install latest 3
  2. insert some data
  3. update to latest
  4. see browser

Environment

- OS: Ubuntu
- How docker service was installed: like it should (i'm working with this since years, earning my money)

CPU architecture

x86-64

Docker creation

grocy:
    image: lscr.io/linuxserver/grocy:3.3.2  # ^-- set latest here to fail
    container_name: grocy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - ./docker/grocy/config:/config
    restart: unless-stopped

Container logs

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

SQLSTATE[HY000]: General error: 1 no such table: users

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I get the following error after doing a fresh install and trying to log in:

A server error occured while processing your request

If you think this is a bug, please report it
https://github.com/grocy/grocy/issues

Error source
/app/www/vendor/morris/lessql/src/LessQL/Database.php:108

Error message
SQLSTATE[HY000]: General error: 1 no such table: users

Stack trace
#0 /app/www/vendor/morris/lessql/src/LessQL/Database.php(108): PDO->prepare()
#1 /app/www/vendor/morris/lessql/src/LessQL/Database.php(491): LessQL\Database->prepare()
#2 /app/www/vendor/morris/lessql/src/LessQL/Result.php(143): LessQL\Database->select()
#3 /app/www/vendor/morris/lessql/src/LessQL/Result.php(322): LessQL\Result->execute()
#4 /app/www/middleware/DefaultAuthMiddleware.php(34): LessQL\Result->fetch()
#5 /app/www/controllers/LoginController.php(23): Grocy\Middleware\DefaultAuthMiddleware::ProcessLogin()
#6 /app/www/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(38): Grocy\Controllers\LoginController->ProcessLogin()
#7 /app/www/vendor/slim/slim/Slim/Routing/Route.php(358): Slim\Handlers\Strategies\RequestResponse->__invoke()
#8 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\Routing\Route->handle()
#9 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\MiddlewareDispatcher->handle()
#10 /app/www/vendor/slim/slim/Slim/Routing/Route.php(315): Slim\MiddlewareDispatcher->handle()
#11 /app/www/vendor/slim/slim/Slim/Routing/RouteRunner.php(68): Slim\Routing\Route->run()
#12 /app/www/middleware/LocaleMiddleware.php(16): Slim\Routing\RouteRunner->handle()
#13 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\LocaleMiddleware->__invoke()
#14 /app/www/middleware/AuthMiddleware.php(36): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#15 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\AuthMiddleware->__invoke()
#16 /app/www/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#17 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\RoutingMiddleware->process()
#18 /app/www/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#19 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#20 /app/www/middleware/CorsMiddleware.php(30): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#21 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\CorsMiddleware->__invoke()
#22 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#23 /app/www/vendor/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#24 /app/www/vendor/slim/slim/Slim/App.php(183): Slim\App->handle()
#25 /app/www/app.php(106): Slim\App->run()
#26 /app/www/public/index.php(45): require_once('...')
#27 {main}

Easy error info copy & paste (for reporting)
Error source:

/app/www/vendor/morris/lessql/src/LessQL/Database.php:108

Error message:

SQLSTATE[HY000]: General error: 1 no such table: users

Stack trace:

#0 /app/www/vendor/morris/lessql/src/LessQL/Database.php(108): PDO->prepare()
#1 /app/www/vendor/morris/lessql/src/LessQL/Database.php(491): LessQL\Database->prepare()
#2 /app/www/vendor/morris/lessql/src/LessQL/Result.php(143): LessQL\Database->select()
#3 /app/www/vendor/morris/lessql/src/LessQL/Result.php(322): LessQL\Result->execute()
#4 /app/www/middleware/DefaultAuthMiddleware.php(34): LessQL\Result->fetch()
#5 /app/www/controllers/LoginController.php(23): Grocy\Middleware\DefaultAuthMiddleware::ProcessLogin()
#6 /app/www/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(38): Grocy\Controllers\LoginController->ProcessLogin()
#7 /app/www/vendor/slim/slim/Slim/Routing/Route.php(358): Slim\Handlers\Strategies\RequestResponse->__invoke()
#8 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\Routing\Route->handle()
#9 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Slim\MiddlewareDispatcher->handle()
#10 /app/www/vendor/slim/slim/Slim/Routing/Route.php(315): Slim\MiddlewareDispatcher->handle()
#11 /app/www/vendor/slim/slim/Slim/Routing/RouteRunner.php(68): Slim\Routing\Route->run()
#12 /app/www/middleware/LocaleMiddleware.php(16): Slim\Routing\RouteRunner->handle()
#13 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\LocaleMiddleware->__invoke()
#14 /app/www/middleware/AuthMiddleware.php(36): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#15 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\AuthMiddleware->__invoke()
#16 /app/www/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.php(45): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#17 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\RoutingMiddleware->process()
#18 /app/www/vendor/slim/slim/Slim/Middleware/ErrorMiddleware.php(76): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#19 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(121): Slim\Middleware\ErrorMiddleware->process()
#20 /app/www/middleware/CorsMiddleware.php(30): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#21 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(269): Grocy\Middleware\CorsMiddleware->__invoke()
#22 /app/www/vendor/slim/slim/Slim/MiddlewareDispatcher.php(65): Psr\Http\Server\RequestHandlerInterface@anonymous->handle()
#23 /app/www/vendor/slim/slim/Slim/App.php(199): Slim\MiddlewareDispatcher->handle()
#24 /app/www/vendor/slim/slim/Slim/App.php(183): Slim\App->handle()
#25 /app/www/app.php(106): Slim\App->run()
#26 /app/www/public/index.php(45): require_once('...')
#27 {main}

System info:

{
    "grocy_version": {
        "Version": "3.3.2",
        "ReleaseDate": "2022-11-12"
    },
    "php_version": "8.2.7",
    "sqlite_version": "3.41.2",
    "os": "Linux 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64",
    "client": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/114.0.0.0 Safari\/537.36"
}

Expected Behavior

For it to allow me to log in and start inputting data.

Steps To Reproduce

  1. Deleted Persisted folder
  2. Created a new Persisted folder
  3. Redeployed the Container with the latest tag

Environment

- OS: Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64)
- How docker service was installed: filling out the form in Portainer that is used as the GUI for my k3s cluster

CPU architecture

x86-64

Docker creation

Name: grocy
Namespace: household-management
Application Type: Deployment
Creation: scifijunkie 2022-02-17 23:57:36 Deployed from application form

Configuration

Container: grocy

Environment variable

PGID: 1000
PUID: 1000
TZ: America/Chicago

Persisted folder

/config: grocy-515cacb7-3432-43d7-a73b-6236e3c72d2c

Image

lscr.io/linuxserver/grocy:latest

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: executing...
[migrations] 01-nginx-site-confs-default: succeeded
[migrations] 02-default-location: executing...
grep: /config/nginx/site-confs/default.conf: No such file or directory
[migrations] 02-default-location: 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  10.43.0.10
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.

problems with PHP timezone settings

linuxserver.io


Expected Behavior

All should work as usual.

Current Behavior

After some time working with the incorrect timezone(1 month working perfectely), the whole thing just gave up, at first it manifested as 504 error, but after fixing that, it shows the same error in other places, as well as an anomaly on nginx logs, perhaps indicating an even deeper problem, so there seems to be 2 problems.

Steps to Reproduce

I could not get it to work, so basically, just download the container and run it, and you should already see errors relating to problem 1, that is the PHP timezone problem.

Environment

OS: Raspbian GNU/Linux 10 (buster) armv7l
CPU architecture: arm32
How docker service was installed:
Just followed the guide on the README using compose

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

image

Docker logs

`----------------------------------

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

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...
using keys found in /config/keys
[cont-init.d] 30-keygen: exited 0.
[cont-init.d] 50-config: executing...
[cont-init.d] 50-config: 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.
`

So now as to what happens, after 1 month of it working fine I am greeted with this:
image

After looking at the logs, first I realized that nginx log date is 2037???(no ideia if this is a cause of the problem, system date is correct, and I didn`t touch any setting relating to this, nor could I find out how to fix it, important detail, I'am a noob in PHP and nginx) but then I realize, that the timezone value for PHP is for some reason reading the <> as well, something that left me even more confused, because I just followed the docker compose example on the README, that seems to be wrong.
image

The operation timeout errors appeared afterwards, when the log date had gone crazy, after my first fix detailed bellow.

In any case, a proceeded to fix the timezone, changing this:
image

To this:
image

and after restarting the container, that fixed this problem, and now I could log into the grocy webpage, but to my dismay, my headache wasn't over yet.

because now I can see the stock, but if I try to do anything, I get this:
image
and this
image

And then everything seems to break, bug out and not work, So if anyone can help me out here, I will be ever so grateful , because after spending some good hours on this, I couldn't get any further.
nginx log now looks like this:
image

and PHP logs does not say a thing:
image

Now to end it all, I thing there is a bug with docker compose when declaring the timezone, that is the first problem, and that somehow broke my installation causing a secondary problem, I tried updated and recreating the container, but to no avail, I hope this can be fixed.

Grocy changed min PHP version to 7.4

linuxserver.io


Grocy changed their composer PHP requirement to 7.4, starting with the next release (grocy/grocy@f1efd08). Right now the PHP version for this docker image is 7.3.
7.4 is technically not required, the author did this, as he is testing with 7.4, but it might change in the future.

These are the options:

  • Updating to PHP 7.4
  • Replacing the 7.4 requirement with sed, which would be (currently) safe to do
  • Only downloading the release file and not running composer

[BUG] Container does not start up with "Grocy\Middleware\ReverseProxyAuthMiddleware"

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When setting "AUTH_CLASS" to "Grocy\Middleware\ReverseProxyAuthMiddleware" the container fails to start up. No error found in the log. Last line: "[ls.io-init] done." Container stays in state "deploying".

Kubernetes events:
2023-12-30 22:14:09 Readiness probe failed: Get "http://172.16.11.193:80/": dial tcp 172.16.11.193:80: connect: connection refused 2023-12-30 22:13:59 Container grocy failed liveness probe, will be restarted 2023-12-30 22:13:59 Readiness probe failed: Get "http://172.16.11.193:80/": EOF 2023-12-30 22:13:19 Liveness probe failed: HTTP probe failed with statuscode: 500 2023-12-30 22:13:14 Readiness probe failed: HTTP probe failed with statuscode: 500

Tried to set the setting in both env variables and in the config file. After changing the setting to "Grocy\Middleware\DefaultAuthMiddleware" all works fine.

Other Proxy settings:
`// Either "Grocy\Middleware\DefaultAuthMiddleware", "Grocy\Middleware\ReverseProxyAuthMiddleware"
// or any class that implements Grocy\Middleware\AuthMiddleware
Setting('AUTH_CLASS', 'Grocy\Middleware\ReverseProxyAuthMiddleware');

// Options when using ReverseProxyAuthMiddleware
Setting('REVERSE_PROXY_AUTH_HEADER', 'X-authentik-username'); // The name of the HTTP header which your reverse proxy uses to pass the username (on successful authentication)
Setting('REVERSE_PROXY_AUTH_USE_ENV', false); // Set to true if the username is passed as environment variable`

Expected Behavior

A working container using configured proxy setting.

Steps To Reproduce

Change config to:
`// Either "Grocy\Middleware\DefaultAuthMiddleware", "Grocy\Middleware\ReverseProxyAuthMiddleware"
// or any class that implements Grocy\Middleware\AuthMiddleware
Setting('AUTH_CLASS', 'Grocy\Middleware\ReverseProxyAuthMiddleware');

// Options when using ReverseProxyAuthMiddleware
Setting('REVERSE_PROXY_AUTH_HEADER', 'X-authentik-username'); // The name of the HTTP header which your reverse proxy uses to pass the username (on successful authentication)
Setting('REVERSE_PROXY_AUTH_USE_ENV', false); // Set to true if the username is passed as environment variable`

Start up container.

Environment

- OS: TrueNAS-SCALE-23.10.1
- How docker service was installed: TrueCharts

CPU architecture

x86-64

Docker creation

See screenshot

Container logs

2023-12-30 22:21:28.702531+01:00[migrations] started
2023-12-30 22:21:28.716091+01:00[migrations] 01-nginx-site-confs-default: skipped
2023-12-30 22:21:28.723434+01:00[migrations] 02-default-location: skipped
2023-12-30 22:21:28.723638+01:00[migrations] done
2023-12-30 22:21:29.255955+01:00───────────────────────────────────────
2023-12-30 22:21:29.256047+01:002023-12-30T22:21:29.256047563+01:00
2023-12-30 22:21:29.256097+01:00██╗     ███████╗██╗ ██████╗ 
2023-12-30 22:21:29.256117+01:00██║     ██╔════╝██║██╔═══██╗
2023-12-30 22:21:29.256134+01:00██║     ███████╗██║██║   ██║
2023-12-30 22:21:29.256151+01:00██║     ╚════██║██║██║   ██║
2023-12-30 22:21:29.256169+01:00███████╗███████║██║╚██████╔╝
2023-12-30 22:21:29.256198+01:00╚══════╝╚══════╝╚═╝ ╚═════╝ 
2023-12-30 22:21:29.256214+01:002023-12-30T22:21:29.256214967+01:00
2023-12-30 22:21:29.256233+01:00Brought to you by linuxserver.io
2023-12-30 22:21:29.256250+01:00───────────────────────────────────────
2023-12-30 22:21:29.256360+01:002023-12-30T22:21:29.256360739+01:00
2023-12-30 22:21:29.256420+01:00To support LSIO projects visit:
2023-12-30 22:21:29.256440+01:00https://www.linuxserver.io/donate/
2023-12-30 22:21:29.256457+01:002023-12-30T22:21:29.256457581+01:00
2023-12-30 22:21:29.256474+01:00───────────────────────────────────────
2023-12-30 22:21:29.256490+01:00GID/UID
2023-12-30 22:21:29.256506+01:00───────────────────────────────────────
2023-12-30 22:21:29.263774+01:002023-12-30T22:21:29.263774236+01:00
2023-12-30 22:21:29.263829+01:00User UID:    568
2023-12-30 22:21:29.263848+01:00User GID:    568
2023-12-30 22:21:29.263867+01:00───────────────────────────────────────
2023-12-30 22:21:29.263883+01:002023-12-30T22:21:29.263883748+01:00
2023-12-30 22:21:29.422408+01:00using keys found in /config/keys
2023-12-30 22:21:29.620284+01:00chown: cannot dereference '/var/lib/nginx/run': No such file or directory
2023-12-30 22:21:29.620853+01:00**** Permissions could not be set. This is probably because your volume mounts are remote or read-only. ****
2023-12-30 22:21:29.620905+01:00**** The app may not work properly and we will not provide support for it. ****
2023-12-30 22:21:30.106630+01:00[custom-init] No custom files found, skipping...
2023-12-30 22:21:30.126958+01:00[ls.io-init] done.

[BUG] Fresh install - Unable to run Grocy: config.php in data directory (/app/www/public/../data) not found.

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I am attempting a fresh, first time install with:

docker run -d \
  --name=grocy \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=America/New_York \
  -p 9283:80 \
  -v /container-data/grocy:/config \
  lscr.io/linuxserver/grocy:latest

And when I visit :9283, I get this error:

Unable to run Grocy: config.php in data directory (/app/www/public/../data) not found. Have you copied config-dist.php to the data directory and renamed it to config.php?

It appears there is an invalid relative path specified somewhere:

# docker exec -it grocy /bin/bash
root@64688d8158d8:/# ls -la /app/www/public/../data
total 50
drwxrwxr-x 1 root root  6 Dec 12 21:38 .
drwxr-xr-x 1 root root  3 Dec 10 02:44 ..
lrwxrwxrwx 1 root root 12 Dec 12 21:38 data -> /config/data
drwxrwxr-x 1 root root  4 Dec 12 21:38 plugins
root@64688d8158d8:/# ls -la /app/www/public/../data/data
lrwxrwxrwx 1 root root 12 Dec 12 21:38 /app/www/public/../data/data -> /config/data

Expected Behavior

According to the readme a fresh install should run without any customizations/modifications. I don't see anything in the readme or issues to resolve this.

Steps To Reproduce

Run the docker run command specified above and try to visit the :9283

Environment

- OS: Debian GNU/Linux 11 (bullseye)

- How docker service was installed: The official instructions for installing from the docker apt repo here were followed: https://docs.docker.com/engine/install/debian/#install-using-the-repository

CPU architecture

arm64

Docker creation

docker run -d \
  --name=grocy \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=America/New_York \
  -p 9283:80 \
  -v /container-data/grocy:/config \
  lscr.io/linuxserver/grocy:latest

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: executing...
[migrations] 01-nginx-site-confs-default: succeeded
[migrations] 02-default-location: executing...
[migrations] 02-default-location: 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  172.16.20.254
Setting worker_processes to 4
generating self-signed keys in /config/keys, you can replace these with your own keys if required
.+..+...+......+.+........+.+........+.+..+.........+.+.........+.....+.........+....+..+.+++++++++++++++++++++++++++++++++++++++*.....+++++++++++++++++++++++++++++++++++++++*.+............+.............+..+...+....+..+.............+......+......+..............+.+...+.....+......++++++
..........+...+................+......+++++++++++++++++++++++++++++++++++++++*......+........+......+.+...+..+++++++++++++++++++++++++++++++++++++++*.+..+...+...+............+.........+......+...+......+.............+...........+.+......+..+.+......+........+.++++++
-----
mv: cannot remove '/app/www/data/plugins': Invalid argument
[custom-init] No custom files found, skipping...
[ls.io-init] done.

unable to upload image for recipes

linuxserver.io


Expected Behavior

image should upload

Current Behavior

errors out, never uploads

Steps to Reproduce

  1. create/upload recipe (works)
  2. edit recipe (works)
  3. click image, upload image, (fails)

Environment

OS:
debian 10
CPU architecture: x86_64/arm32/arm64
x86_64
How docker service was installed:
via portainer, image deploys and runs

Docker logs

2021/07/01 23:09:56 [error] 368#368: *34 FastCGI sent in stderr: "PHP message: PHP Notice: Trying to get property 'picture_file_name' of non-object in /config/data/viewcache/80b12845534a6a50d9ab41bd668060c18bfd40ac.php on line 311" while reading response header from upstream, client: 192.168.2.26, server: _, request: "GET /recipe/new HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.3.5", referrer: "http://192.168.3.5/recipes"

Grocy not respecting Timezone selection

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.

No matter how I set the TZ environment variable, or set the timezone in php.ini, Grocy doesn't respect it for timestamps.


Expected Behavior

When I set TZ to Australia/Melbourne, and I adjust stock/consume stock, the journal timestamps should read accurate time.

Current Behavior

Timestamps in the stock journal for all products are being inserted as UTC time. For example, If I consume one stock item, the timestamp for that consumption says "10 hours ago".

Steps to Reproduce

  1. Set TZ to "Australia/Melbourne"
  2. Consume a stock item
  3. Check stock journal
  4. Note the timestamp is not accurate

Environment

OS: CentOS 7
CPU architecture: x86_64
How docker service was installed:
Installed with Portainer, pulled the latest image from this repo, and configured environment variables appropriately as per the README.md

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

image

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... ,
usermod: no changes,
,
-------------------------------------,
          _         (),
         | |  ___   _    __,
         | | / __| | |  /  \ ,
         | | \__ \ | | | () |,
         |_| |___/ |_|  \__/,
,
,
Brought to you by linuxserver.io,
We gratefully accept donations at:,
https://www.linuxserver.io/donate/,
-------------------------------------,
GID/UID,
-------------------------------------,
,
User uid:    911,
User gid:    911,
-------------------------------------,
,
[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] 50-config: executing... ,
[cont-init.d] 50-config: 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.,

Edit: I accidentally closed & reopened issue. Please disregard that.

Edit: I understand I should probably be using Discord to discuss this issue. I will close this issue now. My apologies for the inconvenience.

Docker tag 2.6.2 contains version 2.6.1 of the aplication

Expected Behavior

Docker image with tag latest or v2.6.2-ls53 should contain version 2.6.2 of the application.

Current Behavior

When doing docker pull the image starts version 2.6.1, and the digest doesn't match the one in dockerhub.

[
    {
        "Id": "sha256:def8f513ce05fac44f0a075d113848f28fb22ad2f079015cd8274200b5cb8081",
        "RepoTags": [
            "linuxserver/grocy:latest"
        ],
        "RepoDigests": [
            "linuxserver/grocy@sha256:b0ff777d57b1dd0b7c0689637f7f480624fcd1bef1e20145b3254d6480c28b8f"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2020-04-03T17:39:12.990233467Z",
        "Container": "79314721638d0ff6a628447d19e7f4881103e37396ca77929e1e8028130c2020",
        "ContainerConfig": {
            "Hostname": "79314721638d",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "443/tcp": {},
                "6781/tcp": {},
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "PS1=$(whoami)@$(hostname):$(pwd)\\$ ",
                "HOME=/root",
                "TERM=xterm"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "VOLUME [/config]"
            ],
            "Image": "sha256:0e20851e249600f5a7fef9e99c9b2e65e5adf661e5ef2445efdd37bd7e59da5d",
            "Volumes": {
                "/config": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "/init"
            ],
            "OnBuild": null,
            "Labels": {
                "build_version": "Linuxserver.io version:- v2.6.2-ls53 Build-date:- 2020-04-03T13:37:48-04:00",
                "maintainer": "alex-phillips, homerr"
            }
        },
        "DockerVersion": "19.03.8",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "443/tcp": {},
                "6781/tcp": {},
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "PS1=$(whoami)@$(hostname):$(pwd)\\$ ",
                "HOME=/root",
                "TERM=xterm"
            ],
            "Cmd": null,
            "Image": "sha256:0e20851e249600f5a7fef9e99c9b2e65e5adf661e5ef2445efdd37bd7e59da5d",
            "Volumes": {
                "/config": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "/init"
            ],
            "OnBuild": null,
            "Labels": {
                "build_version": "Linuxserver.io version:- v2.6.2-ls53 Build-date:- 2020-04-03T13:37:48-04:00",
                "maintainer": "alex-phillips, homerr"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 281830895,
        "VirtualSize": 281830895,
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/5e52f0164c72825e0214fd9b2f97a8eee51135f942a1090c49c4b53a7bc6a49d/diff:/var/lib/docker/overlay2/5514e3859adb7f323f2fa6be3977bd9e8231123cd103e1a6bc427aaf845286ec/diff:/var/lib/docker/overlay2/8b64777ac85b6b14b63b5486562b54528628d6803be55c6acfad6ee0104a847c/diff:/var/lib/docker/overlay2/96f6a4b38c771c91fab567f433f545c9b0a1236fc37a69d39af6b2610858961f/diff:/var/lib/docker/overlay2/7bfc74b665b00ed55336ca420ae5d62325d494a5469880f097a688e9db9cbc0b/diff:/var/lib/docker/overlay2/5755d0f948a92ff31262f1a9f8299ba80d8961888d96807af94734e808a48a9c/diff",
                "MergedDir": "/var/lib/docker/overlay2/fe6efb06363d07a368dc4a7cfa5a216e654fcbd646b4f22f3ce6d298a3c515df/merged",
                "UpperDir": "/var/lib/docker/overlay2/fe6efb06363d07a368dc4a7cfa5a216e654fcbd646b4f22f3ce6d298a3c515df/diff",
                "WorkDir": "/var/lib/docker/overlay2/fe6efb06363d07a368dc4a7cfa5a216e654fcbd646b4f22f3ce6d298a3c515df/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:b0898de3b154dff78706c00c322894fe9c6af3bc3d141a849d364ef87c5edf5a",
                "sha256:92c48e398ada792c311e267cfee79ff486b269d25b43d6c5e153e4decc58e0b9",
                "sha256:539cb3f6ed23739964f4b63da6c3c1fc59a85c0648fc42ad696916b450b2151e",
                "sha256:4694852e1701a103c7ae8f9a5f46c9598ae2e62b3e210c70daf7867c797f1382",
                "sha256:211c49c7f47529b19690a39f3285df910c37facf7b852b9020cef1826ccac723",
                "sha256:d951a976037a0bc854dce80ac109cd30b4cb4e2ca6d6c3fcb19a26c423f2b2b1",
                "sha256:4d4ab0bf96944b94b08a4c3d5a0f5f998e84a4a9abc63befcc7c88a856e97430"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

Steps to Reproduce

  • docker pull linuxserver/grocy:latest or docker pull linuxserver/grocy:v2.6.2-ls53.
  • Run the server
docker run -it --rm\
  --name=grocy \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 127.0.0.1:9283:80 \
  linuxserver/grocy 
  • Log in the application with admin/admin
  • Click on the wrench on the top right corner of the application. And it will show About Grocy: Version 2.6.1

Environment

OS: Debian Buster
CPU architecture: x86_64
How docker service was installed: with the docker guide.

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

See above

Container startup / chown takes a long time.

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

After starting the container it should spin up in a reasonable amount of time

Current Behavior

Container startup takes a very long (~5min) time to execute /var/run/s6/etc/cont-init.d/50-config
After manual entering the container and adding "echo" between the commands in 50-config it seems that the last line seems to be the culprit:

chown -R abc:abc \
    /app/grocy \
    /config

Steps to Reproduce

  1. Start the container
  2. Check the logs
  3. Measure the time until the webserver is available

Environment

OS: Ubuntu 16.04.6 LTS
CPU architecture: x86_64
How docker service was installed: apt-get install docker-ce

# docker --version
Docker version 18.03.1-ce, build 9ee9f40

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

image

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...
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

[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] 50-config: executing...

Grocy docker started but shows ERR_TOO_MANY_REDIRECTS

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When we try to navigate to the webpage, either http or https, it shows ERR_TOO_MANY_REDIRECTS

Expected Behavior

Login Page should come up

Steps To Reproduce

  1. Open URL with Chrome or Edge
  2. No login page
  3. Mobile app not working too

Environment

- OS:Windows 11 and Android App
- How docker service was installed: Unraid dockers, all other are working correctly
- Log file not showing any type or error

CPU architecture

x86-64

Docker creation

Unraid Docker

Container logs

[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: 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                                               │
│ 2022-08-20 │ 2023-06-24 │ /config/nginx/ssl.conf                                                 │
│            │ 2023-04-13 │ /config/nginx/site-confs/default.conf                                  │
└────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
[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.