Skip Navigation
Nextcloud alternatives
  • I configured it in config.php directly, probably following https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html#id2

      'memcache.local' => '\\OC\\Memcache\\APCu',
      'memcache.distributed' => '\\OC\\Memcache\\Redis',
      'memcache.locking' => '\\OC\\Memcache\\Redis',
      'redis' => 
      array (
        'host' => 'redis',
        'port' => 6379,
      ),
    
  • Nextcloud alternatives
  • The separate cron container made the most sense to me. Other variants "work" but imo are mostly workarounds to avoid setting up a real cronjob. Beyond this I have no real reason, nor can I vouch that is is more or less performant than others.

    Yes, the mysqldump container is for easier restores. It's much easier to restore from a .sql file than a raw data dir that was copied while the DB was running ;) (speaking from experience...)

  • Nextcloud alternatives
  • Just want to say that I've been there. There was a time my Nextcloud install was incredibly slow. Fortunately (or unfortunately?), it is featureful enough and widely supported that once you figure this issue out, it is a nice service to keep running.

    For me, adding Redis was essential. It doesn't really make sense to me why (nothing I do on Nextcloud is intensive or data heavy) but it has greatly improved the performance of my app.

    My entire setup is a containerized Nextcloud, Nextcloud Cron, MariaDB (if I knew Postgres was an option, I would've chosen that), and Redis:

    version: '2'
    services:
      nextcloud:
        container_name: nextcloud
        image: nextcloud:27-apache
        restart: unless-stopped
        environment:
          - MYSQL_PASSWORD=nextcloud
          - MYSQL_HOST=db
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
        labels:
          - 'public-service=true'
          - 'traefik.enable=true'
          - 'traefik.http.routers.cloud.rule=Host(`nextcloud.some.domain`)'
          - 'traefik.http.routers.cloud.tls=true'
          - 'traefik.http.services.cloud.loadbalancer.server.port=80'
        volumes:
          - /some/data/dir/nextcloud/data:/var/www/html
          - /some/external/dir:/wew:ro
    
      nextcloud-cron:
        image: nextcloud:27-apache
        restart: unless-stopped
        command: [/cron.sh]
        environment:
          - MYSQL_HOST=db
          - MYSQL_DATABASE=nextcloud
          - MYSQL_USER=nextcloud
          - MYSQL_PASSWORD=nextcloud
        volumes:
          - /some/data/dir/nextcloud/data:/var/www/html
          - /some/external/dir/:/wew:ro
    
      db:
        image: mariadb:10.4
        restart: unless-stopped
        environment:
          MYSQL_DATABASE: nextcloud
          MYSQL_USER: nextcloud
          MYSQL_ROOT_PASSWORD: nextcloud
        volumes:
          - /some/data/dir/nextcloud/db:/var/lib/mysql
    
      mysqldump:
        image: mariadb:10.4
        depends_on: [db]
        # restart: never # cronjob
        labels:
          - 'cron.schedule=0 0 8 * * ?'
        entrypoint: [mysqldump, -h, db, -u, nextcloud, -pnextcloud, --all-databases, -r, /out/nextcloud.sql]
        user: root
        volumes:
          - /some/data/dir/nextcloud/db-dump:/out
    
      redis:
        image: redis
        restart: unless-stopped
    
  • InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)SD
    sdw @lemmy.ca
    Posts 0
    Comments 9