Docker sur serveur kimsuffi

Après le hack de mon serveur, il a fallu le réinstaller complètement. J’en ai profité pour isoler chacun de mes blogs ainsi que mon cloud dans des conteneurs docker pour plus de sécurité. Les conteneurs sont ainsi isolés les uns des autres.

Proxy web avec nginx et let’sencrypt

Source : https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion

WordPress avec SSL intégré, nginx proxy et renouvellement automatique des certificats letsencrypt

Source : https://github.com/evertramos/docker-wordpress-letsencrypt

Nextcloud avec nginx proxy intégré avec letsencrypt

Source : https://github.com/evertramos/docker-nextcloud-letsencrypt

Automatisation

Script bash :
#!/bin/bash

# 08-07-2018
# Nicolas Roudninski
#

CONTDIR="/opt/docker"
NGINXDIR="/opt/docker/nginx/"
APPSDIR="hg42 rouni osteo nextcloud"


## start docker containers
dockerstart() {
        echo "fonction dockerstart"
        # nginx
        cd $NGINXDIR
        ./start.sh

        # Containers
        for DOCKERDIR in $APPSDIR
        do
                cd $CONTDIR/$DOCKERDIR
                echo "lancement du conteneur $DOCKERDIR"
                docker-compose up -d
                done
        #/opt/docker/trms/start_docker-transmission.sh
}

# stop docker containers
dockerstop() {
        echo "Stoppe tous les conteneurs"
        docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
}

dockerrestart() {
        echo "Relance tous les conteneurs"
        docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
        dockerstart
}

dockerupdate() {
        echo "Mise à jour des conteneurs"
        for DOCKERDIR in $APPSDIR
        do
                cd $CONTDIR/$DOCKERDIR
                docker-compose pull
                docker-compose up -d --remove-orphans
        done
        docker image prune -f 2>&1
}


case "$1" in
        start) dockerstart;;
        stop) dockerstop;;
        restart) dockerrestart;;
        update) dockerupdate;;
        *) echo "usage: $0 start|stop|restart" >&2
                exit 1
                ;;
esac

Collabora online

Source : https://help.nextcloud.com/t/collabora-configuration-with-docker-compose/3970/3 docker-compose :
(bien sûr, remplacer “exemple.fr” par le nom du serveur…)
version: '3'

services:
   collabora-app:
     container_name: collabora
     image: collabora/code
     restart: unless-stopped
     expose:
       - 9980
     environment:
       - domain=cloud\.example\.fr
       - VIRTUAL_PORT=9980
       - VIRTUAL_HOST=office.example.fr
       - VIRTUAL_NETWORK=webproxy
       - VIRTUAL_PROTO=https
       - LETSENCRYPT_HOST=office.example.fr
       - LETSENCRYPT_EMAIL=user@example.com
     cap_add:
       - MKNOD
     networks:
       - default

networks:
    default:
       external:
         name: webproxy