Aller au contenu

(En construction)

Étape d'installation de mon serveur en docker

Installation de Debian en NetInstall.

La première étape est d'installer une distribution sans interface graphique pour notre serveur, mon choix c'est orienté sur Debian qui à l'avantage pour moi d'utiliser APT pour la gestion des paquet et est très robuste.
Il est téléchargeable ici.

Construction d'un RAID5.

Tuto bien expliquer avec mdadm justegeek.fr.

Installation de docker.

Rien de plus simple, il suffit d'installer les paquets docker et docker-compose.

1
sudo apt-get install docker docker-compose

Portainer.

Maintenant nous avons le strict minimum pour utiliser des dockers sur notre serveur Debian.
Maintenant pour rendre la gestion plus simple nous allons utiliser une interface web pour installer et gérer des conteneurs.
Personnellement je vais utiliser Portainer qui est lui-même un conteneur offrant une interface graphique web.

Installation.

La première étape est de se mettre en ROOT, pour ma part je n'ai pas initialisé l'utilisateur ROOT je vais donc faire la commande suivante:

1
sudo bash
Nous allons maintenant entrer la commande suivante, pour effectuer un saut de ligne il suffit de faire les touches [CTRL] + [ENTRER].
1
2
3
4
5
6
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest
Au besoin le port 9443 peut être personnalisé.
source https://docs.portainer.io
Si vous êtes curieux, vous verrez que j'ai remplacé le numéro de version par latest par rapport à la source, pour avoir directement la dernière version.

Connexion.

Maintenant que tout est en place ont va pouvoir ce connecter à l'interface web en utilisant sont https://IP:9443, exemple https://192.168.1.2:9443, vous êtes maintenant invités à créer votre compte administrateur. Il ce peut que votre navigateur vous dit qu'il y a un risque pour la sécurité à cause du certificat, ce qui est tout à fait normal, nous sommes de toute façon qu'en réseau local.

Installation de Nextcloud.

Aller dans Dashboard => Containers => +Add container.

Name
Nextcloud_server

Images
linuxserver/nextcloud

Manual network port publishing
contrôler si les ports ne sont pas utiliser pour un protocole

1
cat /etc/services
indiquer un host (qui sera un port externe) et container qui sera le port du conteneur
Host xxxx container 80
Host xxxx container 443

Ensuite dans volumes
+map additional volume
Ajouter pour Container /data et un autre avec /config (c'est ici qu'on peut ajouter du stockage pour Nextcloud)

deploy the container

MariaDB.

Installation.

Nextcloud à besoin d'une base de donnée, nous allons donc en créer une mais avant nous devons installer MariaDB.
Nous allons aller dans App Templates ont cherche MariaDB, ont lui donne un nom, exemple: mariadb_nextcloud, ont indique un mot de passe ROOT Ont clique sur + Show advanced options et la comme pour Nextcloud ont lui donne un host et ont laisse 3306 pour le conteneur.
Reste plus qu'à déployer de conteneur.

Configuration.

Maintenent nous allons créer la base de donnée pour Nextcloud.
Nous allons dans Dashboard => Containers => votre base de donnée => Console.
Maintenant nous somme dans le terminal du conteneur, Nous allons d'abord rentré dans MariaDB:

1
mysql -u root -p
Puis nous allons maintenant créer la base nextcloud:
1
create database nextcloud;
Maintenant MariaDB est crée et configurer.

Lancement de Nextcloud.

Maintenant toutes ces étapes accomplies, nous pouvons lancer Nextcloud via le navigateur, pour cela il suffit de mettre l'adresse local avec le port host qui correspond au 443 du conteneur que nous avons sélectionné précédemment, exemple : https://192.167.1.2:6650.
La page de configuration apparaît, reste plus qu'à suivre les instructions.

Accélération de Nextcloud.

Nous pouvons gagner en rapidité grâce à Redis.

Installation.

La première chose à faire c'est de l'installer comme MariaDB.
Pour le port ont en choisi un pour l'Host et ont laisse 6379 pour le conteneur.

Configuration.

La configuration est assez simple, nous allons dans la console de Nextcloud, puis nous allons dans le répertoire suivant :

1
cd /config/www/nextcloud/config
Nous allons maintenant éditer le fichier config.php
1
nano config.php
A la fin du fichier avant ); nous allons placer les lignes suivantes:

1
2
3
4
5
6
7
  'memcache.distributed' => '\OC\Memcache\Redis',
  'memcache.local' => '\OC\Memcache\Redis',
  'memcache.locking' => '\OC\Memcache\Redis',
  'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     ),
Il faut remplacer localhost par l'ip local du serveur et le 6379 par le port que vous avez choisi juste avant.

Configuration supplémentaire pour le transfert le fichier Nextcloud.

Maintenant que tout est en place, il existe une limitation au niveau du transfert des données, on peut voir les valeurs dans l'interface du Nextcloud => Paramètres => Système => la partie PHP.
Pour changer les valeurs il suffit de se connecter à la console du serveur Nextcloud puis éditer le fichier php.ixi qui ce trouve dans /etc/php7/php.ini.
Rechercher les valeurs memory_limit=, post_max_size= et upload_max_filesize=, mettre la valeur souhaiter et relancer le conteneur.

Nginx proxy manager.

Nginx proxy manager va nous servir à rediriger les connections sur les différents conteneurs avec le nom de domaine.
Première étape, ce connecter en SSH sur le serveur Hôte.
Deuxième étape est de créer un dossier dans lequel nous allons faire un fichier pour le déploiment du conteneur.

1
2
3
4
cd /root
mkdir nginx_proxy_manager
cd nginx_proxy_manager
nano docker-compose.yml
Contenue du fichier:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
Maintenant ont peut lancer le déploiement:
1
docker-compose up -d
Reste plus qu'à configurer les redirections, pour accéder à l'interface Web, il suffit de taper l'IP avec le port 81, exemple: http://192.168.1.2:81.

Ne pas oublier d'ouvrir les port 80 et 443 de la box vers l'adresse du serveur local.

Problèmes rencontrer.

Sous-dossiers manquants.

J'ai rajouté un stockage supplémentaire et le souci est que je ne voyais pas tout les sous-dossiers via l'interface web, la solution est d'adapter et lancer la commande suivante, directement sur la machine hôte (fonctionne uniquement pour Nextcloud de Linuxserve).

1
docker exec container_name sudo -u abc php7 /config/www/nextcloud/occ files:scan --all

La suite au prochain épisode.