Mission 4 : Serveur de fichiers - SuperKumKum/SysAdmin-ll_Project GitHub Wiki
Qu'est-ce que Nextcloud ?
Un lieu sûr pour stocker ses données.
Il s'agit d'un projet forked
de Owncloud qui n'était plus mis à jours.
Pour faire fonctionner Nextcloud d'une façon complète et sécurisée, nous avons besoin de :
- Une image Nextcloud
- Un server web Nginx
- Une base de donnée Mariadb
- Créer des certificats LetsEncrypt
version: '2'
services:
mariadb:
image: mariadb:10.1
container_name: mariadb
# restart: always
# Info : These variables are ignored when the volume already exists (databases created before).
environment:
- MYSQL_ROOT_PASSWORD=myPassword
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=password
volumes:
- /mnt/docker/mysql/db:/var/lib/mysql
nextcloud:
image: wonderfall/nextcloud:latest
container_name: nextcloud
environment:
- DB_TYPE=MYSQL
- DB_NAME=nextcloud
- DB_USER=nextcloud
- DB_PASSWORD=password
- DB_HOST=mariadb
volumes:
- /mnt/docker/nextcloud/data:/data
- /mnt/docker/nextcloud/config:/config
- /mnt/docker/nextcloud/apps:/apps2
- /mnt/docker/nextcloud/themes:/nextcloud/themes
links:
- mariadb
nginx:
image: wonderfall/boring-nginx
container_name: nginx
ports:
- "80:8000"
- "443:4430"
volumes:
- /mnt/docker/nginx/sites-enabled:/sites-enabled
- /mnt/docker/nginx/conf:/conf.d
- /mnt/docker/nginx/log:/var/log/nginx
- /mnt/docker/nginx/certs:/certs
nextcloud
├── apps
├── config
│ └── config.php
├── data [error opening dir]
└── themes
- apps: contient toutes les applications installées faisant partie de Nextcloud (Agenda, etc)
- config: contient le script de lancement de Nextcloud
- data: contient les données de chaque utilisateurs
- themes: contient les thèmes (images, logo)
service IN A 151.80.119.127
nextcloud IN CNAME service
:bulb: Permet l'accès au site https://nextcloud.wt7.ephec-ti.be
docker run -it --rm \
-v /mnt/docker/nginx/certs/nextcloud:/etc/letsencrypt \
-p 80:80 -p 443:443 \
xataz-letsencrypt \
certonly --standalone \
--rsa-key-size 4096 \
--agree-tos \
-m [email protected] \
-d nextcloud.wt7.ephec-ti.be
docker exec -ti nginx ngxproxy
Welcome to ngxproxy utility.
We're about to create a new virtual host (AKA server block).
Name: nextcloud
Domain: nextcloud.wt7.ephec-ti.be
Webroot (default is /):
Container: postfixadmin
Port (default is 80): 8888
HTTPS [y/n]: y
Certificate path: /certs/live/nextcloud/fullchain.pem
Certificate key path: /certs/live/nextcloud/privkey.pem
Secure headers [y/n]: y
Enable HSTS header ? [y/n]: n # Use with caution
Max body size in MB (integer/null): null
Done! postfixadmin.conf has been generated.
Reload nginx now? [y/n]: y
nginx successfully reloaded.