diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..51386f9 --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,81 @@ +x-volumes-default: &volumes + volumes: + - nextcloud:/var/www/html + - nextcloud_data:/var/www/html/data + - nextcloud_config:/var/www/html/config + - nextcloud_custom_apps:/var/www/html/custom_apps + +version: '3' + +services: + redis: + image: redis:alpine + restart: always + + app: + image: nextcloud:${NEXTCLOUD_VERSION} + restart: always + <<: *volumes + environment: + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_HOST=db + - NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD} + - NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER} + - NEXTCLOUD_TRUSTED_DOMAINS=${APP_HOST} + - TRUSTED_PROXIES=${TRUSTED_PROXIES} + - OVERWRITECLIURL=https://${APP_HOST} + - OVERWRITEHOST=${APP_HOST} + - OVERWRITEPROTOCOL=https + - NEXTCLOUD_UPDATE=1 + - REDIS_HOST=redis + - REDIS_HOST_PORT=6379 + - SMTP_HOST + - MAIL_FROM_ADDRESS + - MAIL_DOMAIN + - SMTP_PORT + - SMTP_SECURE + - SMTP_NAME + - SMTP_LOGIN + - SMTP_PASSWORD + - SMTP_AUTHTYPE + depends_on: + - redis + labels: + - traefik.enable=true + - traefik.docker.network=traefik_web + - traefik.http.routers.${ROUTER_NAME}-router.entrypoints=${ENTRYPOINT} + - traefik.http.routers.${ROUTER_NAME}-router.rule=Host(`${APP_HOST}`) + - traefik.http.routers.${ROUTER_NAME}-router.tls=true + networks: + - default + - traefik_web + db: + image: mariadb:${MARIADB_VERSION} + restart: always + command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW + volumes: + - nextcloud_db:/var/lib/mysql + networks: + - default + environment: + - MYSQL_ROOT_PASSWORD + - MYSQL_PASSWORD + - MYSQL_DATABASE + - MYSQL_USER + cron: + image: nextcloud:${NEXTCLOUD_VERSION:-latest} + restart: always + <<: *volumes + entrypoint: /cron.sh + depends_on: + - redis + +volumes: + nextcloud_db: + nextcloud: + nextcloud_data: + nextcloud_config: + nextcloud_custom_apps: + \ No newline at end of file diff --git a/portainer.json b/portainer.json index d6d5d7c..841373a 100644 --- a/portainer.json +++ b/portainer.json @@ -200,6 +200,117 @@ "default": "piwigo.traefik.me" } ] + }, + { + "type": 3, + "title": "Nextcloud", + "description": "Installation de Nextclcoud en mode docker compose", + "categories": ["MediaManagement"], + "platform": "linux", + "logo": "https://upload.wikimedia.org/wikipedia/fr/thumb/2/2e/Piwigo-logo-black-letters.svg/800px-Piwigo-logo-black-letters.svg.png", + "repository": { + "url": "https://git.baraise.fr/Aguay/portainer", + "stackfile": "nextcloud/docker-compose.yml" + }, + "env": [ + { + "name": "NEXTCLOUD_VERSION", + "label": "Nextcloud version", + "description": "Version de nextcloud (latest si vide, list https://hub.docker.com/_/nextcloud/tags)", + "default": "latest" + }, + { + "name": "NEXTCLOUD_ADMIN_USER", + "label": "Username admin", + "description": "Nom d'utilisateur pour la configuration nextcloud" + }, + { + "name": "NEXTCLOUD_ADMIN_PASSWORD", + "label": "Mot de passe admin", + "description": "Mot de passe de l'admin nextcloud" + }, + { + "name": "MYSQL_DATABASE", + "label": "Mysql Database", + "description": "Version of Dokku to use ('latest' if empty)", + "default": "piwigo_db" + }, + { + "name": "MYSQL_ROOT_PASSWORD", + "label": "Mysql Root passsword", + "description": "Global hostname to be registered by Dokku", + "default": "R0o7P@sw0rD" + }, + { + "name": "MYSQL_USER", + "label": "Mysql user", + "description": "Host path to be bound to /mnt/dokku (`/var/lib/dokku` if empty)", + "default": "piwigo_user" + }, + { + "name": "MYSQL_PASSWORD", + "label": "Mysql password", + "description": "Image build cache path. Generally set to + '/home/dokku'", + "default": "P1w1g0PassDB" + }, + { + "name": "ROUTER_NAME", + "label": "router host", + "description": "Nom du routeur", + "default": "piwigo" + }, + { + "name": "APP_HOST", + "label": "Url app host", + "description": "Nom de domaine pour l'accès à l'application", + "default": "piwigo.traefik.me" + }, + { + "name": "SMTP_HOST", + "label": "Host smtp", + "description": "Host smtp pour l'envoi des mails dans nextcloud, si vide alors configurable dans l'administration" + }, + { + "name": "SMTP_PORT", + "label": "Port smtp", + "description": " 25, 465, 587 ou 2525" + }, + + { + "name": "SMTP_NAME", + "label": "Nom pour la connexion smtp", + "description": "Exemple: support@domain.fr" + }, + { + "name": "SMTP_AUTHTYPE", + "label": "Type d'authentification smtp", + "description": "LOGIN ou PLAIN" + }, + { + "name": "SMTP_PASSWORD", + "label": "Mot de passe de connexion" + }, + { + "name": "SMTP_LOGN", + "label": "Login de connexion smtp", + "description": "Exemple: support@domain.fr" + }, + { + "name": "SMTP_SECURE", + "label": "Sécurité smtp", + "description": "ssl, tls ou none" + }, { + "name": "MAIL_DOMAIN", + "label": "Domain mail", + "description": "Exemple: pour support@domain.fr mettre \"domain.fr\"." + }, + + { + "name": "MAIL_FROM_ADDRESS", + "label": "From pour l'envelope SMTP ", + "description": "Exemple: pour support@domain.fr mettre \"support\"." + } + ] } ] }