1. Kevin Kessler
    24. November 2020 @ 16:05

    I was getting 502 errors from DuckDNS when cron was running every 5 minutes, but the script work fine when I just ran it ad hoc. I think what is happening is a whole bunch of time sync’ed PC in the world are waking up at the same time and overwhelming duckdns with update requests. I put a sleep 22 (any random time would work) in the script before the curl to make sure I wasn’t running exactly at 0 seconds past the minute, and now I’m getting OKs back. I’ve changed my crontab so it runs at 2,7,12,17,22,27,32,37,42,47,52,57 past the hour just to get the requests off the “popular” update times. BTW, I’ve been working on Linux for about 25 years, and this is the first time I’ve seen the */5 construct in crontab; you learn something new every day.


    • admin
      24. November 2020 @ 23:52

      Good idea. 5 minutes anyway is quite often, I think. Fortunately, I did not experience these issues. I am also not the “inventor” of the */5, I am a Linux noob 🙁


  2. Tom Rosebrook
    4. December 2020 @ 0:55

    Hi Andreas!

    First thank you very much for the excellent tutorial. I am only a little fluent in Linux and Docker and you made it possible to get this project going for me. I had a couple of issues I thought I’d share in case anyone else runs into them:

    1. The Raspberry Pi OS Lite does not seem to include the kernel headers needed for wireguard to operate in the docker container. The docker log files complained

    “**** Kernel headers don’t seem to be available, can’t compile the module. Sleeping now. . . ****

    The container started but things like the QR Codes did not generate, After consulting my friend Google I installed/re-installed the stable kernel headers in the parent OS by doing the following and restarting the container and voilà:

    sudo apt install –reinstall libraspberrypi0 libraspberrypi-{bin,dev,doc} raspberrypi-bootloader raspberrypi-kernel

    2. The compose-override.yml and docker-compose.yml do not like special characters like “$” in the passwords. If you want to use them you might have to escape them with an additional $. Or don’t use them in your passwords and relax.

    Thanks again!


  3. Peter Stahel
    14. December 2020 @ 17:03

    You create a directory /Disk1 but mount the new disk to /dev/Disk1 (in fstab).
    Is this really correct?

    In the compose-override.yml the extra line for Disk1 means
    name of disk to use in nextclound : physical place of directory?

    Thank you.


    • admin
      22. December 2020 @ 9:29

      Maybe you go to the discord channel for support?


  4. Oliver
    20. December 2020 @ 19:17

    Hi There,
    Many Thanks. Most of this worked like a charm for me. But there seems to be a mistake in the compose-override.yml, no? Nexcloud_db does not need „volumes:“, does ist?
    I have a question: „Are all commands performed on the PI, or are some to be issued in a container?“ I don‘t get the external data folder working :/
    In nextcloud UI, it simply says there is no external drive available or I do not have the permissions …
    Any idea?
    Best regards


    • admin
      22. December 2020 @ 9:28

      Maybe you go to the discord channel for support?


  5. Riki
    4. January 2021 @ 20:20

    Thanks for the tutorial!
    It took me a while to realize why whenever I ran ‘docker-compose down’ to stop the full stack and then put it up with ‘docker-compose up -d’, Nextcloud service was not showing the login page but an ‘Internal error’.

    I had to add an additional volume to ‘docker-compose.yml’ to map /config folder for nextcloud_db container section:

    – ./volumes/nextcloud/db:/var/lib/mysql
    – ./volumes/nextcloud/data:/config

    Otherwise docker was creating each time volumes in /var/lib/docker folder loosing my original nextcloud configuration.


  6. Timo
    9. March 2021 @ 21:09

    Hi Andreas,

    Thank you for the Guide.
    I am afraid that doesn’t not work for me:
    I keep on getting this error:

    Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1045] Access denied for user ‘nextcloud’@’nextcloud.IOTstack_NextCloud’ (using password: YES)

    Can’t figure out why – I did everything like you. The passowords match as a left them like in your compose-override.yml

    I only want the NextCloud part – VPN is already set for me.


    • admin
      10. March 2021 @ 9:03

      Please go to the discord channel of the project to get help. There are the specialists.


      • Timo
        12. March 2021 @ 20:48

        Hi Andreas,

        I figured it out.
        The password actually has to match at a third place in docker-comopse.yml

        1) nextcloud
        -> environment
        -> MYSQL_PASSWORD=type-your-password
        2) nextcloud_db
        -> environment
        -> MYSQL_PASSWORD=type-your-password
        3) mariadb
        -> environment
        -> MYSQL_PASSWORD=type-your-password

        Another issue seems to be the old MySQL versions:
        “Es wird die MariaDB-Version “10.1.47-MariaDB-0ubuntu0.18.04.1″ verwendet. Nextcloud 21 wird diese Version nicht mehr unterstützen und benötigt MariaDB 10.2 oder höher.”

        I will bring this up on discord

        Thanks again!!


        • admin
          18. March 2021 @ 13:14

          Thank you for sharing your learnings!


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.