configuration NGinx

Bonjour à tous,

Je n’arrive pas à m’en sortir de la configuration de mon auto-hébergement.

Voici ma configuration:
J’ai un nom de domaine chez OVH NDD.ovh

Dans cette zone DNS, j’ai créé les enregistrements suivants:
Type A nextcloud.NDD.ovh
Type A piwigo.NDD.ovh
Type A cosy.NDD.ovh
Type CNAME home.cozy.NDD.ovh
Type CNAME settings.cosy.NDD.ovh

Déjà là je suis pas sûr d’avoir fait comme il faut :thinking::thinking:

Sur mon synology, j’ai installé mes dockers nextcloud et piwigo et redirigé par le biais du reverse interne du syno les flux entrant en fonction de l’URL ca marche super bien. :smiley:

Afin de déployer cozy, j’ai installé un serveur debian 10 dans une VM hébergée par mon NAS Synology.

J’ai généré dans mon syno le certificat let’s encrypt pour l’ensemble des URLs.

Après plusieurs essais, je fais appelle à vos lumières.

Donc j’ai installé les différentes couches et créé ma stack à l’aide la commande:

‘’’
cozy-stack instances add --passphrase famille --apps drive,photos,settings,home,store cosy.xxxx.yyy.fr
‘’’

J’ai ajouté le fichier de configuration suivant dans le nginx de la machine cosy:
/etc/nginx/sites-available/cozy.conf

‘’’
server {
listen 80;
server_name *.cozy.backupfamilleblav.ovh 192.168.8.x 192.168.0.z
add_header Strict-Transport-Security “max-age=31536000; includeSubDomains; preload;”;
client_max_body_size 1g;

location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
‘’’

En réalisant cette configuration, j’ai le message d’erreur de certificat mais j’arrive à la page de connexion du site cosy en revanche, dès que je tente d’ouvrir la session, j’ai une erreur car home.cosy.NDD.ovh n’est pas redirigé par le reverse syno.

Donc dans mes questions :
Dois créer une régle par entrée DNS?
Comment dois-je configurer le serveur de ma vm pour qu’il accepte les connexions http ( si c’est possible.) de façon a utiliser le certificat géré par le NAS comme je le fait pour mes container docker?

Je vous remercie pour votre aide. Cela fait un bon moment que je fouille sans trouver. En revanche, j’ai trouvé des post parlant de tentative de mise en place sans savoir si elles ont été au bout.

Si j’y parvenais, je pourrais proposer un TUTO de configuration pour la communauté.

Merci pour votre aide

Oui, certainement.

HTTP n’est pas utilisable pour cozy-stack. Il faut nécessairement du HTTPS.
Il faut donc certainement délégué au NAS la gestion des certificats, mais ça risque d’être compliqué vu qu’il faudra un vhost Synology par cozy multiplié par le nombre d’applications installés.
Dans ce cas précis, je conseillerais plutôt de faire complètement sauter le reverse proxy nginx pour que le Synology serve directement le contenu de la stack, ce nginx ne servant du coup plus à rien.

Merci pour ta réponse rapide.

N’étant vraiment pas fort sur ces aspects peux-tu me dire plus précisément ce que tu entends par:

Quand tu dis cela. tu parles bien de supprimer le nginx de la VM?
Dans ce cas le reverse du syno renverrait vers le 8080 de la VM? si oui je vais pas avoir de pb de ré-écriture?

C’est bien cela?

Pour la partie VHost Synology pas de souci. Je souhaite utiliser l’auto-hébergement que pour le drive et le settings pour utiliser les connecteurs.

Pour les autre applications, j’ai un compte depuis longtemps sur le cloud.

Oui c’est ça. Faire directement pointer le Syno sur le cozy-stack.

Merci pour cette info.

Donc ce que j’ai fait c’est d’arrêter nginx sur la VM.
J’ai modifié la conf du VHost Syno pour qu’il pointe sur ipvm:8080.

A l’aide du fichier https://github.com/cozy/cozy-coclyco/blob/master/cozy/coclyco/nginx.conf

J’ai modifier le Vhost pour qu"il prenne les prérogatives du nginx.conf
Upgrade $http_upgrade;
Connection $connection_upgrade;
Host $host;
X-Forwarded-For $remote_addr;

quand je me connecte sur https://cosy.NDD.ovh Syno me dit ne pas trouver la page.

Quand je fais un curl sur la vm directement j’obtiens:

root@cozy:/etc/cozy# curl -v http://127.0.0.1:8080
* Expire in 0 ms for 6 (transfer 0x55eeea0bef50)
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55eeea0bef50)
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Content-Security-Policy: default-src 'self';img-src data: blob: 'self';frame-ancestors 'none';
< Content-Type: text/plain; charset=UTF-8
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< X-Content-Type-Options: nosniff
< Date: Mon, 20 Apr 2020 15:33:09 GMT
< Content-Length: 18
<
* Connection #0 to host 127.0.0.1 left intact

Comme tu as pu remarquer je suis pas très calé mais 404 c’est pas bon non :unamused:

Comment savoir si la stack fonctionne bien?

Ça veut dire que la stack fonctionne :rofl:
Il faut un Host correct pour qu’elle retourne autre chose que 404, mais là a priori ça répond correctement.

Merci j’attends donc que le support de syno traite ma demande de configuration est vous direz si cela fonctionne.

Merci aeris pour ta patience

Bonjour à tous,

j’ai pas lâché l’affaire. :grin:

J’ai obtenu un retour de Syno.
Donc maintenant, je tente la politique des petits pas :thinking:

j’ai relancé le serveur nginx de ma vm hébergeant cozy avec une configuration minimaliste:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
}

server {
       listen 8081;
       server_name cosy.NDD.ovh *.cosy.NDD.ovh;

       location / {
           proxy_pass http://localhost:8080;
           proxy_set_header Host $host;
       }
}

J’ai recréé mon Vhost cosy.NDD.ovh sur le syno avec la conf suivante:

 https en entrée
 vers ip vm:8081 http en sortie

J’ai par ailleurs mis en debug les logs NGINX de la VM pour voir ce qui arrivait
Depuis un navigateur, je me suis connecté à: https://cosy.NDD.ovh.

J’obtiens la page de connexion, sécurisé par certificat :upside_down_face::crazy_face:

Fort de ce résultat, j’ai pensé que, plutôt que de garder NGinx sur la vm, je pouvais créer mon Vhost home.cosy.NDD.ovh pointant directement sur le 8080 de ma VM et là c’est le drame :sleepy:

Syno me dit qu’il ne trouve pas l’application. Donc j’ai une question:

Lors de la création de la stack, cette dernière n’écouterait-elle pas exclusivement sur 127.0.0.1?

En effet, si je fais pointer home.cosy.NDD.ovh vers le 8081, ça fonctionne.

:roll_eyes:

Merci pour vos retours

Bon ça y est tout fonctionne ou presque :crazy_face:

Voici ce que j’ai fait pour activer mon cozy sur un VM debian hébergé sur mon Nas Synology

Tout d’abord: Installation de cozy depuis la documentation officielle:
Ici

Je me suis juste arrêté à l’installation de cozy

J’ai arrêté nginx sur la VM (inutile puisque Syno prend le relais :grin:

J’ai ensuite créé une instance cozy à l’aide de la commande:

cozy-stack instances add --passphrase "MDP du compte" --apps drive,photos,settings,home,store cosy.NDD.ovh

Ensuite éditer le fichier
vi /etc/cozy/cozy.yml.local

Ce fichier contient l’ip d’écoute de votre instance. j’ai donc changé 127.0.0.1 du port 8080 par l’ip de mon Syno

Sur mon serveur DNS, j’ai créé les entrées suivantes:
cosy.NDD.ovh de type A pointant sur ma box free
drive.cosy.NDD.ovh de type CNAME sur cosy.NDD.ovh

Sur syno:
J’ai créé un certificat let’s encrypt avec:
Nom de domaine: cosy.NDD.ovh
Antre nom de l’objet: drive.cosy.NDD.ovh;sttings.cosy.NDD.ovh…

Enfin j’ai créé les VHOST dans les règles de proxy inversé:
Entrée HTTPS vers HTTP sur le port 8080 de ma VM debian
J’ai juste ajouté en entête personnalisée

Host $host

Voila pour ce que j’ai fait si cela peut en aider d’autre.

Maintenant, j’en viens à ma question au super admin de COZY :smiley:

Pour le moment seul l’application drive ne fonctionne pas faudrait-il un autre paramètre d’entête pour que cela fonctionne. Je me balade partout, j’ai même pu installer un connecteur pour ovh :grin: par contre quand je veux accéder à drive, j’ai

Ce site est inaccessible

Auriez-vous une idée?

J’ai trouvé :grinning:

mon enregistrement ovh ne fonctionnait pas. Je l’ai recréé et tout est rentré dans l’ordre. Tout fonctionne.

A l’attention des Modérateurs:
Cela sera-t-il utile si je rédigeais un TUTO de déploiement sur Syno cela pourrais intéresser d’autre personnes non?