87
submitted 1 year ago by [email protected] to c/[email protected]

So far my experience with Nextcloud has been that it is a pain in the arse to install, and once it's installed is slow as anything. Literally couldn't run it on my pi 3b, now got it up and running pretty nicely on a NUC but it's still not great. Have caching set up.

I have the notes app installed on my android phone and I can never used rich text editing because it gives timeout error.

This shouldn't be this complicated. All I want is to de-Google my documents and notes, and self-host my kanban. I don't really need the rest though it's nice to have the options.

Do people use alternatives? Am I doing something completely wrong? I set it up using nginx which I know is not supported, but the alternative using Docker AIO didn't allow me to use custom port easily.

you are viewing a single comment's thread
view the rest of the comments
[-] [email protected] 15 points 1 year ago

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
[-] [email protected] 1 points 1 year ago

Can I ask why the separate NC container for cron? Also, I presume the mysqldump container is for easy db backups?

[-] [email protected] 4 points 1 year ago

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

load more comments (7 replies)
this post was submitted on 10 Sep 2023
87 points (89.9% liked)

Selfhosted

39257 readers
218 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS