Aller au contenu

[Tuto] Calibre-web via Docker


quart-temps

Messages recommandés

@MilesTEG1

Oui, j'avais bien supprimé le dossier de configuration aussi.

Je ne pense pas que ça vienne d'un problème de compatibilité du NAS, le processeur est un Dual Core Intel Atom D2700, en général compatible avec tout et utilisé sur pas mal d'autres modèles jusqu'en 2014, et aussi sur des rackstation.

Et je n'ai aucun souci avec tous les autres containers docker, mis à jour également, et dont certains sont aussi contenerisés par linuxserver.

Il faudrait que je puisse avoir plus de logs pour pouvoir debugger, mais je ne sais pas où chercher.

Lien vers le commentaire
Partager sur d’autres sites

il y a 30 minutes, Lud a dit :

@MilesTEG1 Ok, mais les mises à jour des paquets continuent sur DSM 6 et en l'occurrence, c'est la version à l'intérieur du conteneur qui est utilisée, pas celle du NAS.

Ok, donc le soucis ne vient pas de là.

Procédons autrement.
Comment installes-tu Calibre-web ?

  • Interface Docker de DSM
  • Docker-Compose en CLI
  • Docker-Compose avec Portainer
  • docker cli 

On va te faire faire une installation avec une autre méthode.

Car quand mon DS920+ était sous DSM 6.2, je n'avais pas de soucis avec Calibre-Web ni avec son installation (avec Docker-Compose via Portainer)

Modifié par MilesTEG1
Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

J'ai continué à faire pas mal de tests, ça ne fonctionnait toujours pas.

Mais je viens enfin de réussir à faire refonctionner mon conteneur, j'ai dû reprendre une ancienne version du paquet proposé par linuxserver.

Donc c'est exactement le même problème, dès que je mets à jour, plus d'accès web.

La dernière version qui fonctionne est la 0.6.8. Dès que je passe en 0.6.9 ou supérieur, aucun accès à l'interface web, toujours le même message d'erreur. Repasser à une version antérieure règle immédiatement le problème.

J'ai ouvert un ticket de bug sur la page GitHub de calibre-web de linuxserver.

Lien vers le commentaire
Partager sur d’autres sites

@Einsteinium Oui, je suis au courant, ce n'est pas un problème de bibliothèque. J'utilise le conteneur Docker calibre-web de linuxserver depuis pas mal de temps, j'ai toujours utilisé la "latest" sans problème jusqu'à il y a quelques mois, où après une mise à jour classique, je n'avais plus accès à l'interface web, donc à rien en fait. Un message d'erreur quand j'essaie d'afficher calibre-web.

J'ai vérifié toutes les permissions des utilisateurs, les permissions directement sur les fichiers, les ACL Synology, essayé d'autres utilisateurs, d'autres groupes, essayé d'autres réglages, etc. J'ai essayé plusieurs fois de tout virer et de partir sur une image propre, sans aucun anciens fichiers de configuration...

Bref, je me suis pris le chou des heures et des heures, pourtant convaincu que le problème ne vient pas de ma configuration.

Et hier, j'ai essayé de retrouver à quel moment à peu près j'avais encore mon installation fonctionnelle, et j'ai fait plein de tests avec différentes versions de l'image. Et c'est simple, toutes les images amd64 version 0.6.8 et antérieures fonctionnent sans aucun problème, immédiatement ; et toutes celles à partir de la 0.6.9 ne fonctionnent pas, que ce soit la 0.6.9, la 0.6.10, la 0.6.12, la 0.6.14, j'en ai essayé un paquet.

Donc ils ont dû implémenter quelque chose à partir de la 0.6.9 qui cause ce problème sur mon NAS avec mon installation (plutôt classique pourtant).

J'ai regardé le chancelog de la 0.6.9 sur GithUb, mais je n'ai rien vu de particulier.

J'étais allé sur le Discord de linuxserver, mais ça ne parle à personne ou ça n'intéresse personne, en tout cas, je n'ai eu aucune réponse. Donc j'ai fini par créer un ticket directement sur GitHub, on verra ce que ça donne.

https://github.com/linuxserver/docker-calibre/issues/68

C'est sur ton DS920+ ton installation ?

Tu pourrais exporter le fichier json de ton conteneur ? Et me montrer le contenu ?

En interface graphique, tu vas dans l'application Docker de ton NAS, puis dans Conteneur / Calibre-Web / Paramètres / Exporter / Exporter les paramètres du conteneur uniquement (pas le contenu). Merci !

Modifié par Lud
Lien vers le commentaire
Partager sur d’autres sites

@Lud

J’ai moi aussi la version 0.6.14 de fonctionnelle sur mon 920+.

Par contre je l’ai installé avec Portainer via un docker-compose.

Il faudrait que tu essayes via la ligne de commande avec un docker-compose up -d 

Car il n’y a pas de raison pour que ça ne fonctionne pas.

Quand  j’étais encore en dsm6.2 ça fonctionnait très bien. (Même méthode d’installation)

Lien vers le commentaire
Partager sur d’autres sites

@MilesTEG1 Le DS920+ a un CPU Intel, mais pas le même que le DS1812+, je n'ai pas installé via docker-compose, car les paramètres que j'utilise sont simples, mais peut-être effectivement que l'interface de Docker dans DSM pose problème à partir de la version 0.6.9 de calibre-web, même si ça paraît quand même bizarre.

@.Shad. Alors oui, finalement, encore un test. Après docker-compose a l'air super simple, je peux faire le fichier moi-même. Est-ce que les commandes docker sont les mêmes sous DSM ? Comme certaines autres changent, comme les ACL, les services, etc.

Je n'ai pas des masses de paramètres différents. Globalement, les seuls que je modifie sont PUID, PGID, TZ, et les dossiers pointés par /books et /config.

 

Lien vers le commentaire
Partager sur d’autres sites

Aucune raison que passer par l'interface de DSM pose problème en effet, cela dit je n'avais pas la motivation de décrire étape après étape. 😄 

Tu peux utiliser un tel fichier par exemple, moi c'est sur une debian qui pointe via SMB sur le NAS qui héberge la base de données Calibre, à adapter donc.

Fais un backup du dossier correspondant à /config avant, et supprime le pour partir d'une base propre.

version: "2.1"
services:

   calibre-web:
      image: lscr.io/linuxserver/calibre-web
      container_name: calibre-web
      network_mode: bridge
      environment:
         - PUID=1000
         - PGID=1000
         - DOCKER_MODS=linuxserver/calibre-web:calibre
         - OAUTHLIB_RELAX_TOKEN_SCOPE=0
         - TZ=Europe/Brussels
      volumes:
         # config
         - config:/config
         # library
         - /mnt/nas/calibre:/books
      labels:
         # watchtower label only monitoring
         - "com.centurylinklabs.watchtower.enable=true"
      restart: unless-stopped
      
volumes:

   config:
Lien vers le commentaire
Partager sur d’autres sites

@.Shad. Non, pas besoin de faire ça étape par étape, le seul truc qui m'intéresse, c'est de savoir où mettre le conteneur pour faire ça proprement.

Là je suis en SSH sur mon NAS, j'ai aussi jeté un coup d’œil à ton tuto Docker, et je vois dans mon dossier "/volume1/@docker/volumes" des tonnes de dossiers avec des chaînes de caractères énormes. Pourtant ils ne prennent quasiment pas d'espace disque.

En fait je cherche où sont mes conteneurs actuels, et où je peux mettre ceux créés avec docker-compose pour ne pas créer de bazar. ^^

Lien vers le commentaire
Partager sur d’autres sites

Un dossier précédé d'un @ est un dossier caché, et normalement tu n'as rien à y mettre.
Généralement on crée un dossier partagé docker (que Docker crée peut-être même en personne à l'installation du paquet), dans lequel on crée des dossiers par stack (une stack = un ou plusieurs conteneurs).

Pour calibre-web, tu crées un dossier calibre-web, dans lequel tu mettras ton fichier docker-compose ainsi que souvent, les volumes que conseille de monter la documentation.

Ici, dans le dockerfile, on voit que deux volumes sont exposés, config et books, donc si tu ne les bind pas à un chemin en particulier sur ton NAS, ces dossiers seront créés dans les volumes docker, qui se trouvent dans ce fameux chemin /volume1/@docker/volumes.

C'est ce que je fais aussi ici, mais je demande une création à la volée d'un volume "config" (qui s'appellera en vrai nomdelastack_config) dans lequel il mettra les fichiers de config. C'est un choix personnel, la plupart du temps je ne le fais pas car accéder à ces fichiers réclament de passer par SSH, mais dans le cas de Calibre-web, je n'ai rien trouvé d'intéressant à sauvegarder ni à éditer dans le volume /config, donc je le laisse dans les volumes docker, au chaud, où justement on ne s'embête pas avec tous les problèmes de permission et ACL, ça se gère tout seul sans encombre.

il y a 12 minutes, Lud a dit :

Là je suis en SSH sur mon NAS, j'ai aussi jeté un coup d’œil à ton tuto Docker, et je vois dans mon dossier "/volume1/@docker/volumes" des tonnes de dossiers avec des chaînes de caractères énormes. Pourtant ils ne prennent quasiment pas d'espace disque.

Si tu installes Portainer, tu pourras facilement voir les volumes docker qui ne sont plus utilisés, car dépendant d'une image que tu n'utilises plus, ou d'une précédent installation, et en deux clics tu peux les nettoyer.

Lien vers le commentaire
Partager sur d’autres sites

@.Shad. Ok, je m'étais probablement mal exprimé, je croyais que le conteneur était créé là où on exécute le yml.

J'ai testé, donc j'ai pu voir que ça se met au même endroit que si on utilise l'interface graphique de Docker sur DSM.

Je passe tout ce que j'ai testé, mais au final, mon fichier docker-compose.yml fonctionne nickel avec les images jusqu'à la 0.6.8 et pas à partir de la 0.6.9, exactement comme avec l'interface graphique.

Voici mon yml :

---
version: "2.1"
services:
    calibre-web:
        image: linuxserver/calibre-web:amd64-0.6.8-ls80
        container_name: Calibre-Web
        environment:
            - PUID=1085
            - PGID=65549
            - TZ=Indian/Reunion
        volumes:
            - /volume1/docker/calibre-web/config:/config
            - /volume1/reading/books:/books
        ports:
            - 8083:8083
        restart: unless-stopped

Voilà, ça c'est celui qui fonctionne. Dès que je passe en amd64-latest, ou latest, le docker-compose.yml aboutit, le container se lance, mais je n'ai rien sur la page web en http://<IP>:8083/

Et même sans Portainer, je nettoie tout facilement avec "docker system prune -a".

Lien vers le commentaire
Partager sur d’autres sites

J'ai réessayé avec la toute dernière version qui vient de sortir, j'ai aussi changé l'adresse de dépôt. J'ai installé ça avec un docker-compose simple.

Toujours la même erreur.

Je suis limité en terme de logs. Est-il possible de rentrer dans le conteneur sur le NAS pour avoir des logs plus précis ?

Actuellement, voici les erreurs que j'obtiens via l'application Docker sous DSM, pour le conteneur calibre-web (toujours les mêmes erreurs) :

2022-01-16 14:46:04	stderr	fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
2022-01-16 14:46:04	stderr	    raise FakeUserAgentError('Maximum amount of retries reached')
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 84, in get
2022-01-16 14:46:04	stderr	    ret = json.loads(get(
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 187, in load
2022-01-16 14:46:04	stderr	    write(path, load(use_cache_server=use_cache_server, verify_ssl=verify_ssl))
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 245, in update
2022-01-16 14:46:04	stderr	    update(path, use_cache_server=use_cache_server, verify_ssl=verify_ssl)
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 250, in load_cached
2022-01-16 14:46:04	stderr	    self.data = load_cached(
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/fake.py", line 75, in load
2022-01-16 14:46:04	stderr	    self.load()
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/fake.py", line 69, in __init__
2022-01-16 14:46:04	stderr	    'User-Agent': UserAgent().random,
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/scholarly/_proxy_generator.py", line 442, in _new_session
2022-01-16 14:46:04	stderr	    self._new_session()
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/scholarly/_proxy_generator.py", line 53, in __init__
2022-01-16 14:46:04	stderr	    self.pm1 = ProxyGenerator()
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/scholarly/_navigator.py", line 42, in __init__
2022-01-16 14:46:04	stderr	    cls._instances[cls] = super(Singleton, cls).__call__(*args,
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/scholarly/_navigator.py", line 26, in __call__
2022-01-16 14:46:04	stderr	    self.__nav = Navigator()
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/scholarly/_scholarly.py", line 28, in __init__
2022-01-16 14:46:04	stderr	    scholarly = _Scholarly()
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/scholarly/__init__.py", line 4, in <module>
2022-01-16 14:46:04	stderr	    from scholarly import scholarly
2022-01-16 14:46:04	stderr	  File "/app/calibre-web/cps/about.py", line 62, in <module>
2022-01-16 14:46:04	stderr	    from cps.about import about
2022-01-16 14:46:04	stderr	  File "/app/calibre-web/cps.py", line 34, in <module>
2022-01-16 14:46:04	stderr	Traceback (most recent call last):
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	During handling of the above exception, another exception occurred:
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>
2022-01-16 14:46:04	stderr	    raise URLError(err)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 1357, in do_open
2022-01-16 14:46:04	stderr	    return self.do_open(http.client.HTTPSConnection, req,
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 1397, in https_open
2022-01-16 14:46:04	stderr	    result = func(*args)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
2022-01-16 14:46:04	stderr	    result = self._call_chain(self.handle_open, protocol, protocol +
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
2022-01-16 14:46:04	stderr	    response = self._open(req, data)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
2022-01-16 14:46:04	stderr	    return opener.open(url, data, timeout)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
2022-01-16 14:46:04	stderr	    with contextlib.closing(urlopen(
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 64, in get
2022-01-16 14:46:04	stderr	Traceback (most recent call last):
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	During handling of the above exception, another exception occurred:
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	socket.gaierror: [Errno -3] Temporary failure in name resolution
2022-01-16 14:46:04	stderr	    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
2022-01-16 14:46:04	stderr	    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/socket.py", line 787, in create_connection
2022-01-16 14:46:04	stderr	    self.sock = self._create_connection(
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 922, in connect
2022-01-16 14:46:04	stderr	    super().connect()
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1418, in connect
2022-01-16 14:46:04	stderr	    self.connect()
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 951, in send
2022-01-16 14:46:04	stderr	    self.send(msg)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
2022-01-16 14:46:04	stderr	    self._send_output(message_body, encode_chunked=encode_chunked)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
2022-01-16 14:46:04	stderr	    self.endheaders(body, encode_chunked=encode_chunked)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
2022-01-16 14:46:04	stderr	    self._send_request(method, url, body, headers, encode_chunked)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1256, in request
2022-01-16 14:46:04	stderr	    h.request(req.get_method(), req.selector, req.data, headers,
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
2022-01-16 14:46:04	stderr	Traceback (most recent call last):
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	During handling of the above exception, another exception occurred:
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
2022-01-16 14:46:04	stderr	    raise FakeUserAgentError('Maximum amount of retries reached')
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 84, in get
2022-01-16 14:46:04	stderr	    html = get(settings.BROWSERS_STATS_PAGE, verify_ssl=verify_ssl)
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 97, in get_browsers
2022-01-16 14:46:04	stderr	    for item in get_browsers(verify_ssl=verify_ssl):
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 154, in load
2022-01-16 14:46:04	stderr	Traceback (most recent call last):
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	During handling of the above exception, another exception occurred:
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>
2022-01-16 14:46:04	stderr	    raise URLError(err)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 1357, in do_open
2022-01-16 14:46:04	stderr	    return self.do_open(http.client.HTTPSConnection, req,
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 1397, in https_open
2022-01-16 14:46:04	stderr	    result = func(*args)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
2022-01-16 14:46:04	stderr	    result = self._call_chain(self.handle_open, protocol, protocol +
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
2022-01-16 14:46:04	stderr	    response = self._open(req, data)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
2022-01-16 14:46:04	stderr	    return opener.open(url, data, timeout)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
2022-01-16 14:46:04	stderr	    with contextlib.closing(urlopen(
2022-01-16 14:46:04	stderr	  File "/usr/local/lib/python3.8/dist-packages/fake_useragent/utils.py", line 64, in get
2022-01-16 14:46:04	stderr	Traceback (most recent call last):
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	During handling of the above exception, another exception occurred:
2022-01-16 14:46:04	stderr	
2022-01-16 14:46:04	stderr	socket.gaierror: [Errno -3] Temporary failure in name resolution
2022-01-16 14:46:04	stderr	    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
2022-01-16 14:46:04	stderr	    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/socket.py", line 787, in create_connection
2022-01-16 14:46:04	stderr	    self.sock = self._create_connection(
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 922, in connect
2022-01-16 14:46:04	stderr	    super().connect()
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1418, in connect
2022-01-16 14:46:04	stderr	    self.connect()
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 951, in send
2022-01-16 14:46:04	stderr	    self.send(msg)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
2022-01-16 14:46:04	stderr	    self._send_output(message_body, encode_chunked=encode_chunked)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
2022-01-16 14:46:04	stderr	    self.endheaders(body, encode_chunked=encode_chunked)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
2022-01-16 14:46:04	stderr	    self._send_request(method, url, body, headers, encode_chunked)
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/http/client.py", line 1256, in request
2022-01-16 14:46:04	stderr	    h.request(req.get_method(), req.selector, req.data, headers,
2022-01-16 14:46:04	stderr	  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
2022-01-16 14:46:04	stderr	Traceback (most recent call last): 

 

Pour ceux qui font tourner Calibre-Web directement sur leur NAS Synology, comment ça apparaît pour vous dans l'application Docker de DSM, onglet réseau ?

(nom du réseau et pilote surtout)

Lien vers le commentaire
Partager sur d’autres sites

Le 16/01/2022 à 20:37, Einsteinium a dit :
PGID=65549

La tu as une erreur, généralement c'est 100.

edit : id utilisateur sous ssh

Non, c'est mon groupe spécifique docker pour mes conteneurs. Il fonctionne parfaitement avec tous mes conteneurs, ainsi qu'avec calibre-web jusqu'à la version 0.6.8. J'ai aussi essayé les dernières versions de calibre-web avec le groupe users (100), par curiosité et surtout en désespoir de cause, avec le même résultat.

Peu importe l'ID du groupe à partir du moment où il a les bonnes permissions.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.