Salut à tous, Ça vous dirait d’héberger vous même vos propres services « Cloud » (genre maps, notes, photos, contact, calendrier) ? Ça tombe bien aujourd’hui je vais vous parler de NextCloud avec Docker et comment déployer votre « cloud » personnel.
Pour le coup, je précise que suis pas un intégriste Anti-GAFAM quand-il s’agit mes données personnelles (j’ai quasiment tout qui fini ou passe chez Google à un moment ou à un autre). Par contre, quand il s’agit de mes activités « Pro » (à mon taf ou sur mes activités indépendantes avec System Sec) : je suis vachement moi chaud pour laisser trainer des données de clients ou de mon employeur chez eux bizarrement ! C’est dans ce cadre que je me suis retrouvé à monter une petite infra Drive & Notes sur le serveur.
Rappel des articles de la série « Docker et Portainer » :
- Docker et Portainer part 1 – Les conteneurs pour les nuls ;
- Docker et Portainer part 2 – Stack vsftpd mono-image ;
- Docker et Portainer part 3 – Docker Guacamole via une Stack multi-images ;
- Docker et Portainer part 4 – OpenVPN, Network et Splunk ;
- Docker et Portainer part 5 – Customiser un conteneur PHP-FPM ;
- Docker et Portainer part 6 – NextCloud avec Docker, Déployer un « Cloud » personnel ;
- Docker et Portainer part 7 – Mettre à jour Portainer ;
- Docker et Portainer part 8 – Déployer un jitsi meet avec docker ;
- Docker et Portainer part 9 – Monitoring des performances docker avec Splunk.
- Docker et Portainer part 10 – The Hive & Cortex et installation Docker….
NextCloud
NextCloud, c’est un « fork » pas vraiment officiel de Owncloud (que j’ai essayé mais que j’ai pas trouvé franchement convainquant en mode sef-hosted) qui a pignon sur rue avec 2-3 autre concurrent sur le marché de niche que laisse les GAFA.
On y retrouve sous forme d’applications la plupart des fonctionnalités d’une suite Google ou Microsoft, et… bonne nouvelle…
… on peut le déployer NextCloud avec Docker… je vous ai parlé de Docker, non ?
Un cloud ?
Alors on est d’accord, c’est pas vraiment du cloud puisqu’on va le déployer sur un serveur dédié unique, mais bon les buzzword ont la vie durs, hein ? Et vous allez retrouver toutes les fonctionnalités d’une suite Google dedans : Drive, Photos, Maps, Notes, partage de fichiers ou dossiers entre les utilisateurs, chat, contact, calendrier, application de synchronisation en local sur vos pc et smartphone, etc. ce qui fait que cela se positionne vraiment en tant que concurrent des ces service.
Aspects bonus, vous pouvez tout bien personnaliser les logos et comptes d’accès, associés le tout à un annuaire LDAP et il est possible d’activer l’authentification forte en TOTP et en U2TF (rappels). Au final, vous obtenez un service d’entreprise assez sympa, gratuit et pratique pour vos utilisateurs.
NextCloud avec Docker
Si vous suivez le blog, je pense que vous avez compris que je suis un fan de Docker et des Stacks dans Portainer. Si vous n’êtes pas familier avec le sujet je vous renvoi vers mes précédents article sur ces sujet, et je vous donne directement le docker-compose.yml à déployer ci-dessous.
version: '2'
volumes:
nextcloud_data:
nextcloud_db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- nextcloud_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<Password>
- MYSQL_PASSWORD=<password2>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
backend_network:
ipv4_address: <IP>
app:
image: nextcloud
expose:
- 80
links:
- db
volumes:
- nextcloud_data:/var/www/html
restart: always
networks:
frontend_network:
ipv4_address: <IP>
backend_network:
ipv4_address: <IP>
networks:
backend_network:
external:
name: backend_network
frontend_network:
external:
name: frontend_network
Démarrer la stack, configurer votre reverse proxy NPM devant vos conteneurs si besoin et vous allez pouvoir vous connecter sur la page d’installation de NextCloud.
Je vous laisse explorer l’interface et faire votre configuration, c’est plutôt clair et bien foutu.
Conclusion
Pour terminer, j’aimerai préciser que si le système n’est pas au niveau de fluidité et de confort d’une Google Suite ou d’un Office 365. Ça reste une solution agréable à l’usage en équipe dans les petites ou moyennes entreprises (ou en famille) et qui est déployable « on premise » facilement et simplement, pour le coût d’un ou deux serveurs Bref, je recommande si vous voulez limiter un peu l’exode de vos données chez les GAFA…^^
Voilà, c’est tout pour aujourd’hui et d’ici la prochaine, geekez-bien !
Merci pour le YAML, mais tel quel ça ne fonctionne pas !
Notamment, il faut déjà avoir défini les réseaux externes, qui je suppose sont qq parts dans les « parts » précédentes 🙂
décidément, pas de setup nextcloud qui fonctionne ‘out of the box’ pour les flemmards comme moi 🙂
Hello Pierre,
Merci pour ton message. Et effectivement, l’intérêt de faire une série, c’est bien qu’il y a des adhérences entre les articles pour faire progresser dans le sujet les feignasses comme toi. 🙂
Celui avec le réseau est là. C’est vraiment pas compliqué pour le coup, et j’ai fait un truc plutôt basique sur un seul LAN « à plat » partagé par toutes mes stacks et accédé par un NPM, mais on peut imaginer des trucs plus compliqués à base de frontend-backend/middle-admin etc.
pour le out of the box, je crois que les exemples officiels sur le docker hub fonctionnent pas trop mal, non ? t’as testé ?
@+