Okey merci pour ton retour. Je n'avais pas trouvé ce topic. Si c'est trop compliqué, je peux toujours installer docker et faire cohabiter avec Nextcloud/Seafile.
Seulement, je ne sais pas bien comment ça marche quand Collabora est en docker et pas le logiciel qui l'utilise..
[Discussion] Nextcloud version docker
- Modifié
Bonjour,
Voici ma configuration pour faire fonctionné Nextcloud avec collabora.
j’espére que cela t'aidera.
pour le docker collabora
docker run --name=collabora -t -d --restart=always -p 9980:9980 -e "domain=tld.domain.fr" --cap-add MKNOD collabora/code
Fichier conf.d/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 32 256k; `
Fichier rutorrent.conf section nextcloud
## début config nextcloud ##
location ^~ /nextcloud {
root /var/www;
include /etc/nginx/conf.d/php.conf;
include /etc/nginx/conf.d/cache.conf;
location ~ /\.svn {
deny all;
}
location ~ /\.ht {
deny all;
}
}
location ^~ /nextcloud/conf/ {
deny all;
}
location ^~ /nextcloud/share/ {
deny all;
}
## fin config nextcloud ##
Fichier nextcloud.conf
server {
listen 80;
server_name tld.domain.fr;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name tld.domain.fr;
ssl_certificate /etc/letsencrypt/live/tld.domain.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tld.domain.fr/privkey.pem;
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this topic first.
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
#LOGS
access_log /var/log/nginx/nextcloud-access.log combined;
error_log /var/log/nginx/nextcloud-error.log error;
# Path to the root of your installation
root /var/www/nextcloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
#rewrite url pour la synchronisation caldav/webdav.
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
#location /.well-known/acme-challenge { }
# set max upload size
client_max_body_size 3G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
# pagespeed off;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location / {
rewrite ^ /index.php$uri;
}
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
return 404;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
return 404;
}
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_param front_controller_active true;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
#fastcgi_cache phpcache;
#fastcgi_cache_valid 200 301 302 60m;
#add_header X-FastCGI-Cache $upstream_cache_status;
}
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~* \.(?:css|js)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into this topic first.
# add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
# access_log off;
}
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
# access_log off;
}
#####pour libre office
# static files
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
# websockets, download, presentation and image upload
location ^~ /lool {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
} ```
- Modifié
Bonjour
Suite a une réinstallation je rencontre quelques problème dans le fonctionnement de nextcloud.
Je n'arrive pas a créer de nouveaux utilisateurs seul le profil créer lors de la création du conteneur docker existe .
Quand je clique sur le bouton créer rien ne ce passe !!!
J'ai aussi des difficulté pour configurer mon dossier torrents de rutorrents par External Storage de nextcloud.
Bon j'ai réussis enfin a installer le tout, seul reste le problème du External Storage.
Bonjour,
j'ai suivi le tuto Nextcloud version docker avec attention et l'ai refait plusieurs fois. Je me confronte toujours au même problème ; une fois le docker-compose up -d lancé, je me rends sur l'url de ma machine (un serveur dans mon cas avec nom de domaine) et rien.
J'ai cherché à savoir si cela venez de mon serveur mais j'y ai réinstallé debian Jessie plusieurs également, donc je pars bien d'un debian "propre".
J'ai pu remarquer que tu utilises l'image wonderfall/nginx mais n'existant plus, l'image Nginx officiel convient-elle ?
Merci d'avoir pris le temps de lire.
La bise.
- Modifié
Effectivement l'image wonderfall/nginx ne fonctionne plus et a été remplacé par wonderfall/boring-nginx, d'aileurs utilisée par Hardware dans le docker-compose pour son serveur de messagerie mais mieux que le tuto qui date un peu, sers toi de ce docker-compose qui fait tout pour toi, même le reverse. tu lances le docker compose et c'est tout, tu n'as plus qu'a aller sur le sous domaine et tu rentres direct dans nextcloud
> version: '2'
volumes:
nextcloud-db-data:
nextcloud-data:
nextcloud-config:
nextcloud-apps:
services:
nginx-proxy:
restart: always
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /srv/docker/nginx/certs:/etc/nginx/certs:ro
- /etc/nginx/vhost.d
- /usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
nginx-proxy-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- /srv/docker/nginx/certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock
volumes_from:
- nginx-proxy
nextcloud-db:
image: mariadb
volumes:
- nextcloud-db-data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=motdepasse
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=motdepasse
nextcloud:
image: wonderfall/nextcloud
environment:
- VIRTUAL_HOST=sous.domaine.com
- LETSENCRYPT_HOST=sous.domaine.com
- LETSENCRYPT_EMAIL=adressemail
- UID=1000
- GID=1000
- UPLOAD_MAX_SIZE=10G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- REDIS_MAX_MEMORY=64mb
- CRON_PERIOD=15m
- TZ=Europe/Berlin
- ADMIN_USER=admin
- ADMIN_PASSWORD=admin
- DB_TYPE=mysql
- DB_NAME=nextcloud
- DB_USER=nextcloud
- DB_PASSWORD=motdepasse
- DB_HOST=nextcloud-db
depends_on:
- nextcloud-db
volumes:
- nextcloud-data:/data
- nextcloud-config:/config
- nextcloud-apps:/apps2
Modifie les mots de passe, le sous domaine et l'adresse mail et remet en forme le docker-compose en respectant les retraits
- Modifié
Waouw ! Merci Aerya et laster13 !
Je vais aller tester tout ça.
Pour le reverse proxy, je me demandais si l'image de Wonderfall avait des specs spécifiques pour fonctionner avec son image nextcloud alors je me suis retrouvé un peu perdu avec l'image officiel Nginx.
Avec la tête froide aujourd'hui, je vais tout reprendre à zéro et bien comprendre la totalité des manips.
Merci encore !
EDIT : J'ai bien tout rempli (sous-domaine, mail, etc...) tout démarre bien cependant sur mon sous-domain.domain.com , je n'ai toujours rien.
Je vois avec docker ps
que wonderfall/nextcloud tape sur 8888/tcp. Le nginx-proxy map le port 80. J'ai une conf à y faire là, non ? laster13
Je remarque également en faisant docker ps
j'ai 3 containers de lancés. Il manque le container nextcloud lui-même.
- Modifié
En faisant 'docker ps -a' tu vois ton 4eme container qui doit etre en "exited". Essaie de le redemarrer en faisant
docker start id_container
Pour info ce docker compose te créer tes certificats let's encrypt et ton vhost, du coup tu n'as rien à faire
ps : Si ca ne fonctionne pas, pense à nettoyer ton docker en supprimant tous les volumes inutiles avec la commande
docker volume rm $(docker volume ls -qf "dangling=true")
Puis recommence
Bonjour,
J'ai suivi le tuto à la lettre mais j'arrive pas à accéder à nextcloud. Je ne souhaite pas utiliser de https pour l'instant. Donc je n'ai pas indiqué de certificat.
Dans mon vhost, j'ai indiqué ça
server {
listen 8000;
server_name monipserveur;
index index.html index.htm index.php;
client_max_body_size 150M;
large_client_header_buffers 4 16k;
#auth_basic "Who's this?";
#auth_basic_user_file /passwds/<NAME>.htpasswd;
location / {
try_files $uri $uri/ /index.html /index.php?$args =404;
}
}
Et pour mon docker-compose.yml, j'ai indiqué ça
J'ai indiqué le port 82 car le port 80 est déja utilisé par une autre application. J'ai pas de message d'erreur de nginx ou des autres apps. Je tombe simplement sur la page nginx de base quand j'accède au port 82. Et mon conteneur nextcloud se ferme tout seul. Peut être aurais-je oublié un élément ? Merci pour votre aide.
#############
# Nginx #
#############
nginx:
image: wonderfall/boring-nginx
container_name: nginx
links:
- nextcloud:nextcloud
ports:
- "82:8000"
- "443:4430"
volumes:
- /home/seedbox/files/apps/nginx/sites-enabled:/sites-enabled
- /home/seedbox/files/apps/nginx/conf:/conf.d
- /home/seedbox/files/apps/nginx/log:/var/log/nginx
- /home/seedbox/files/apps/nginx/certs:/certs
- /home/seedbox/files/apps/nginx/passwd:/passwds
- /home/seedbox/files/apps/nginx/www:/www
#############
# nextcloud #
#############
nextcloud:
image: wonderfall/nextcloud
container_name: nextcloud
links:
- db_nextcloud:db_nextcloud
environment:
- UID=1000
- GID=1000
- UPLOAD_MAX_SIZE=10G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- CRON_PERIOD=15m
- TZ=Etc/UTC
volumes:
- /home/seedbox/files/apps/nextcloud/data:/data
- /home/seedbox/files/apps/nextcloud/config:/config
- /home/seedbox/files/apps/nextcloud/apps:/apps2
- /home/seedbox/files/apps/nextcloud/themes:/nextcloud/themes
#############
# db_nextcloud #
#############
db_nextcloud:
image: mariadb:10
container_name: db_nextcloud
volumes:
- /home/seedbox/files/apps/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=mdp
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=mdp
Tu as essayé avec le docker-compose posté plus haut?
- Modifié
Je reviens sur nextcloud mais sur la version mobile. Je n'arrive pas à faire le téléversement automatique de mes fichiers avec l'appareil. Il ne se passe rien. Certains topics évoquent le problème mais sans vraiment donner de solution.
Avez-vous rencontré ce problème vous aussi ?
App mobile : 1.4.2
Android : 6.0
Nextcloud server 11.0.3
- Modifié
j'ai le même problème que NOnoS
-> impossible d'accéder à https://nextcloud.domaine.tld
j'ai suivi le tuto à la lettre, tout fonctionnait dans la mesure ou j'avais stoppé nginx, comme il y a un conflit entre le port 443 utilisé par nginx et le daemon de docker, ça ne fonctionnait pas
j'ai donc utilisé le docker compose proposé un peu plus haut et j'ai une magnifique erreur :
~docker-compose up -d
addgroup: gid '0' in use
ERROR: yaml.scanner.ScannerError: while scanning a block scalar
in "./docker-compose.yml", line 1, column 1
expected a comment or a line break, but found 'v'
in "./docker-compose.yml", line 1, column 3
j'ai également essayé en supprimant tout les container mais ça ne fonctionne pas
d'ailleurs la commande de nettoyage ne fonctionne pas, j'ai pourtant la version 17 de docker ...
j'ai trouvé cette commande sur le net du coup :
"docker rm
docker ps -a -q
"
voilà, là je suis vraiment dans l'impasse, je ne vois plus quoi faire ...
J'ai finalement réussi à installer correctement. Je ne sais plus trop comment à vrai dire mais le tuto est correct.
Tu as problème d'interprétation des éléments dans ton docker compose. Un chemin de montage incorrect, une indentation incorrect, un caractère en trop peut être.
Il te l'indique : "expected a comment or a line break, but found 'v'"
- Modifié
oui, j'ai vu, du coup, j'ai essayé plein de truc :
j'ai supprimé le < qui est en début de code parceque je pense que ça n'a rien a faire la, mais ça me ramène d'autres erreurs,
j'ai supprimé la ligne entiere version: '2'
mais ça me ramène une autre erreur
et j'ai essayé de reprendre tous les espaces devant chaque phrases pour que la hiérarchie soit bien respectée mais c'est pareil, j'ai toujours des erreurs ...
[EDIT] C'est n'importe quoi, à chaque fois que je bouge un espace, il y a une erreur différente, en fait, le fichier prend en compte les arborescences...
[EDIT] voilà, le fichier composer s'exécute mais j'ai tout de même cette erreur :
listen tcp 0.0.0.0:443: bind: address already in use
-> forcément, c'est le même problème qu'avec le script du tuto, puisque nginx utilise le port 443
j'ai dessus le seedbox manager + rutorrent + sickrage + couchpotato
[Edit] Est ce que vous savez si c'est possible de faire cohabiter docker avec un serveur classique nginx ou est ce qu'il faut obligatoirement tout refaire sur docker ?
- Modifié
@Wonderfall ayant arrêté de maintenir ces Dockerfiles, ce tuto n'est plus vraiment d'actualité !
Si ça peut t'aider, voici le docker-compose.yml que j'utilise:
#####################################################
# Cloud #
# --------- #
# #
# - Nextcloud : Cloud #
# - nextcloud : App #
# - db : Database #
# - redis : Cache #
# #
#####################################################
version: '2.4'
services:
#############
# Nextcloud #
#############
# Nextcloud instance
nextcloud:
restart: always
image: hoellen/nextcloud
container_name: cloud-nextcloud
hostname: cloud
labels:
- traefik.enable=true
- traefik.frontend.rule=Host:${DOMAIN}
- traefik.backend.port=8888
- traefik.docker.network=traefik_proxy
links:
- db:db
- solr:solr
- redis:redis
depends_on: [db]
volumes:
- ${PATH_CLOUD_FILES}/cloud:/data:rw
- ${PATH_APP}/nextcloud/conf:/config:rw
- ${PATH_APP}/nextcloud/apps:/apps2:rw
- ${PATH_APP}/nextcloud/themes:/nextcloud/themes
- /etc/localtime:/etc/localtime:ro
environment:
- UID=1069
- GID=1069
- DB_TYPE=mysql
- DB_NAME=nextcloud
- DB_USER=nextcloud
- DB_PASSWORD=xxxxxxxxx
- DB_HOST=db
- UPLOAD_MAX_SIZE=30G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- REDIS_MAX_MEMORY=64mb
- CRON_PERIOD=15m
- TZ=Europe/Paris
networks:
- traefik_proxy
- cloud_back
#Nextcloud database (mariadb)
db:
restart: always
image: mariadb:latest
container_name: cloud-nextcloud_db
volumes:
- ${PATH_APP}/nextcloud/db:/var/lib/mysql:rw
- ${PATH_APP}/nextcloud/db/import:/docker-entrypoint-initdb.d:ro
- /etc/localtime:/etc/localtime:ro
environment:
- MYSQL_ROOT_PASSWORD=xxxxxxxxx
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=xxxxxxxxx
networks:
- cloud_back
#Nextcloud cache (Redis)
redis:
restart: always
image: redis:alpine
container_name: cloud-nextcloud_cache
hostname: redis
domainname: gardelle.net
volumes:
- ${PATH_APP}/redis:/data:rw
networks:
- cloud_back
networks:
traefik_proxy:
external:
name: traefik_proxy
cloud_back:
A utiliser avec le proxy traefik:
#####################################################
# Proxy #
# --------- #
# #
# - Traefik : Containers proxy with LE certs #
# #
#####################################################
version: '2.4'
services:
###########
# Traefik #
###########
traefik:
restart: unless-stopped
image: traefik
container_name: proxy_traefik
hostname: traefik
command:
--defaultEntryPoints='http,https'
--logLevel=DEBUG
--web
--web.address=:8080
--entryPoints='Name:http Address::80 Redirect.EntryPoint:https'
--entryPoints='Name:https Address::443 TLS'
--acme
--acme.email=${MAIL_ADRESS}
--acme.storage=/certs/acme.json
--acme.entryPoint=https
--acme.ondemand=false
--acme.onhostrule=true
--acme.httpChallenge.entryPoint=http
--acme.domains="${DOMAIN}"
--docker
--docker.domain=traefik
--docker.watch
--docker.exposedbydefault=false
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./certs:/certs
ports:
- "80:80"
- "443:443"
# - "8080:8080" # Statut page
networks:
- traefik_proxy
networks:
traefik_proxy:
external:
name: traefik_proxy
Evidemment, penses à mettre les variables à jour
Il te faudra aussi créer le réseau "traefik_proxy" avant de lancer le docker-compose :
docker network create traefik_proxy