{ "slug": "nextcloud-swarm", "kind": "swarm", "metadata": { "name": "Nextcloud", "description": "Self-hosted file sync and share platform, similar to Dropbox, with built-in collaboration tools, calendar, contacts, and extensible app ecosystem.", "tags": [ "traefik" ], "icon": { "provider": "selfhst", "id": "nextcloud" }, "draft": false, "version": { "name": "33.0.3-apache", "source_dep_name": "docker.io/library/nextcloud", "source_dep_version": "33.0.3-apache" } }, "variables": [ { "title": "Database", "name": "database", "items": [ { "name": "database_type", "type": "enum", "title": "Database Type", "required": false, "default": "postgres", "config": { "options": [ "postgres", "mysql" ] } }, { "name": "database_name", "type": "str", "title": "Database Name", "required": true }, { "name": "database_user", "type": "str", "title": "Database User", "required": true }, { "name": "database_password", "type": "secret", "title": "Database Password", "required": true } ] }, { "title": "General", "name": "general", "items": [ { "name": "service_name", "type": "str", "title": "Service Name", "required": false, "default": "nextcloud", "config": { "placeholder": "nextcloud" } }, { "name": "container_timezone", "type": "str", "title": "Container Timezone", "required": true, "config": { "placeholder": "Europe/Berlin" } }, { "name": "traefik_entrypoint", "type": "str", "title": "Traefik Entrypoint", "required": false, "default": "", "needs": [ "traefik_enabled=true" ], "config": { "placeholder": "web" } }, { "name": "traefik_tls_entrypoint", "type": "str", "title": "Traefik Tls Entrypoint", "required": false, "default": "", "needs": [ "traefik_enabled=true", "traefik_tls_enabled=true" ], "config": { "placeholder": "websecure" } }, { "name": "swarm_replicas", "type": "int", "title": "Swarm Replicas", "required": false, "default": 1, "config": { "slider": true, "min": 1, "max": 10, "step": 1, "placeholder": "1", "unit": "replicas" } } ] }, { "title": "Ports", "name": "ports", "items": [ { "name": "ports_http", "type": "int", "title": "HTTP Port", "required": false, "default": 80, "config": { "placeholder": "80" }, "needs": [ "traefik_enabled=false" ] } ] }, { "title": "Nextcloud", "name": "nextcloud", "items": [ { "name": "admin_user", "type": "str", "title": "Nextcloud admin username", "required": false, "default": "admin", "config": { "placeholder": "admin" } }, { "name": "admin_password", "type": "secret", "title": "Nextcloud admin password", "required": false, "config": { "autogenerated": { "length": 32 } } } ] }, { "title": "Traefik", "name": "traefik", "toggle": "traefik_enabled", "items": [ { "name": "traefik_host", "type": "str", "title": "Host", "required": true, "config": { "placeholder": "nextcloud" } }, { "name": "traefik_network", "type": "str", "title": "Network", "required": true, "default": "traefik", "config": { "placeholder": "traefik" } }, { "name": "traefik_domain", "type": "str", "title": "Domain", "required": true, "config": { "placeholder": "home.arpa" } }, { "name": "traefik_enabled", "type": "bool", "title": "Traefik", "required": false, "default": false } ] }, { "title": "Traefik TLS", "name": "traefik-tls", "toggle": "traefik_tls_enabled", "items": [ { "name": "traefik_tls_certresolver", "type": "str", "title": "Cert Resolver", "required": true, "default": "cloudflare", "config": { "placeholder": "cloudflare" } }, { "name": "traefik_tls_enabled", "type": "bool", "title": "TLS", "required": false, "default": false } ] } ] }