# Nextcloud - Saját felhő tárhely - Google Drive/Dropbox alternatíva # Domain: ${SUBDOMAIN}.${DOMAIN} # Database: mariadb # RAM: ~256M (mem_limit: 1024M) | Pi-compatible: No # # Environment variables: # DOMAIN - Your domain (e.g., demo-felhom.eu) # DB_PASSWORD - Adatbázis jelszó (auto-generated) # MYSQL_ROOT_PASSWORD- MariaDB root jelszó (auto-generated) # NEXTCLOUD_ADMIN_USER- Admin felhasználónév # NEXTCLOUD_ADMIN_PASSWORD- Admin jelszó (auto-generated) # HDD_PATH - Adattárolási útvonal services: nextcloud: image: nextcloud:31.0.14-apache container_name: nextcloud restart: unless-stopped depends_on: nextcloud-db: condition: service_healthy nextcloud-redis: condition: service_healthy environment: - TZ=Europe/Budapest - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=${DB_PASSWORD} - MYSQL_HOST=nextcloud-db - NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER:-admin} - NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD} - NEXTCLOUD_TRUSTED_DOMAINS=${SUBDOMAIN}.${DOMAIN} nextcloud - OVERWRITEPROTOCOL=https - OVERWRITEHOST=${SUBDOMAIN}.${DOMAIN} - REDIS_HOST=nextcloud-redis volumes: - nextcloud_html:/var/www/html - ${HDD_PATH}/felhom-data/appdata/nextcloud:/var/www/html/data networks: - traefik-public - nextcloud-internal deploy: resources: limits: memory: 1024M healthcheck: test: ["CMD", "curl", "-f", "http://localhost:80/status.php"] interval: 30s timeout: 5s retries: 3 start_period: 30s labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)" - "traefik.http.routers.nextcloud.entrypoints=websecure" - "traefik.http.routers.nextcloud.tls=true" - "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt" - "traefik.http.services.nextcloud.loadbalancer.server.port=80" - "traefik.http.middlewares.nextcloud-redirect.redirectregex.regex=/.well-known/(card|cal)dav" - "traefik.http.middlewares.nextcloud-redirect.redirectregex.replacement=/remote.php/dav/" - "traefik.http.routers.nextcloud.middlewares=nextcloud-redirect" nextcloud-db: image: mariadb:11.6 container_name: nextcloud-db restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=${DB_PASSWORD} - TZ=Europe/Budapest volumes: - nextcloud_db_data:/var/lib/mysql networks: - nextcloud-internal deploy: resources: limits: memory: 512M healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 start_period: 20s nextcloud-redis: image: redis:7-alpine container_name: nextcloud-redis restart: unless-stopped command: redis-server --appendonly yes environment: - TZ=Europe/Budapest volumes: - nextcloud_redis_data:/data networks: - nextcloud-internal deploy: resources: limits: memory: 128M healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 start_period: 20s volumes: nextcloud_db_data: nextcloud_html: nextcloud_redis_data: networks: traefik-public: external: true nextcloud-internal: