TLDR: I consistently fail to set up Nextcloud on Docker. Halp pls?

Hi all - please help out a fellow self-hoster, if you have experience with Nextcloud. I have tried several approaches but I fail at various steps. Rather than describe my woes, I hope that I could get a “known good” configuration from the community?

What I have:

  • a homelab server and a NAS, wired to a dedicated switch using priority ports.
  • the server is running Linux, Docker, and NPM proxy which takes care of domains and SSL certs.

What I want:

  • a docker-compose.yml that sets up Nextcloud without SSL. Just that.
  • ideally but optionally, the compose file might include Nextcloud office-components and other neat additions that you have found useful.

Your comments, ideas, and other input will be much appreciated!!

  • robolemmy@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I’m not sure if your goal is to set up nextcloud or to learn docker compose while setting up nextcloud. If you just want it up and running, you could use DockSTARTer to get it going. Heck, even if your goal is mainly learning, you can always tear apart the compose file that dockstarter generates and compare it to your own.

  • ᓰᕵᕵᓍ@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    With nginx

    https://github.com/nextcloud/docker#base-version---fpm

    With caddy

    https://caddy.community/t/example-docker-nextcloud-fpm-caddy-v2-webserver/9407

    I oersonaly run fpm with caddy

    Remember to create your admin account on first run and then add your trusted domain

    Admin

    • navigate to localhost:8080
    • create admin acount
    • write down your credestials

    allowed domains

    • docker ps
    • copy container id of nextcloud:fpm
    • docker exec --user www-data container_id php occ config:system:set trusted_domains 2 --value=your_domain_name_here
    • docker stop container_id
    • docker start container_id
  • aliens@infosec.pub
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Here’s my docker-compose.yml for nextcloud (with minor privacy changes) that includes onlyoffice and drawio containers. SSL is not included and should be handled by NPM and you’ll need a proxy host for both drawio and onlyoffice. I use NPM in docker so I just add it to the docs network instead of exposing any additional ports. For onlyoffice the secret key gets regenerated each time the container starts so you’ll need to update onlyoffice setting in nextcloud each time (unless someone has a better solution). You can get the secret key by logging into the onlyoffice container and running

    cat /etc/onlyoffice/documentserver-example/local.json

    I’ve been running this solution for a few years without any major issues.

    docker-compose.yml

    version: '3.5'
    
    networks:
     docs:
      name: docs 
      driver: bridge
    
    services:
     nextcloud:
      image: linuxserver/nextcloud
      container_name: nextcloud
      environment:
       - PUID=1000
       - PGID=1000
       - MYSQL_DATABASE=nextcloud
       - MYSQL_USER=nextcloud
       - MYSQL_PASSWORD=P@ssWord321!
       - MYSQL_HOST=nextcloud_db
       - TZ="America/Chicago"
      volumes:
       - /home/user/docker/configs/nextcloud:/config
       - /home/user/docker/configs/nextcloud_data:/data
      restart: unless-stopped
      depends_on:
       - nextcloud_db
      networks:
       - docs 
    
     nextcloud_db:
      image: linuxserver/mariadb:110.4.21mariabionic-ls31
      container_name: nextcloud_db
      restart: always
      environment:
       - PUID=1000
       - PGID=1000
       - MYSQL_ROOT_PASSWORD=P@ssWord123!
       - MYSQL_DATABASE=nextcloud
       - MYSQL_USER=nextcloud
       - MYSQL_PASSWORD=P@ssWord321!
      volumes:
       - /home/user/docker/configs/nextcloud_db/mysql:/config
      restart: unless-stopped
      networks:
       - docs 
    
     onlyoffice:
      image: onlyoffice/documentserver
      container_name: onlyoffice
      restart: always
      depends_on:
       - nextcloud
      networks:
       - docs 
    
     image-export:
      image: jgraph/export-server
      container_name: nextcloud-drawio-export
      networks:
       - docs 
      volumes:
       - ./fonts:/usr/share/fonts/drawio
      restart: unless-stopped
    
     drawio:
      image: jgraph/drawio
      container_name: nextcloud-drawio
      networks:
       - docs 
      depends_on:
       - image-export
      environment:
       - VIRTUAL_HOST=drawio.example.com
       - VIRTUAL_PORT=8080
       - EXPORT_URL=http://image-export:8000/
      restart: unless-stopped
    
  • redcalcium@lemmy.institute
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Nextcloud is very easy to setup as a container. You just need a MySQL/MariaDB server and a volume mount. Just make sure the volume is owned by www-data user (uid:gid 33:33). That’s it. Most problems I’ve seen so far are related to files permissions, so double check to make sure the volume is owned by www-data.