kristophjunge / docker-mediawiki

Dockerized MediaWiki running under Nginx and PHP-FPM. Based on the official PHP7 image. Packaged with VisualEditor plugin and Parsoid service.
MIT License
62 stars 41 forks source link

VisualEditor doesn't work in special usecase #13

Closed DerBunteBall closed 7 years ago

DerBunteBall commented 7 years ago

Hey all,

I have a working instance of this Docker Image but the VisualEditor Extension doesn't work in my case.

Basic Situation

I have a working Debian Stretch box with Docker CE. The box is headless so I'm using the Wiki not from localhost. Also HTTPS is enabled on the box. My DNS server provides the domain mywiki.int which is used by the wiki. The network get's accessed trough a VPN.

The problem

In my wiki the Edit button doesn't appear. Only the Edit Source button appears. VisualEditor is listed on Special:Versions as extension.

What I found out

  1. VisualEditor needs Parsoid. Parsoid is running in my Docker Container at (I think so) TCP port 9000.
  2. Parsoid needs a working MediaWiki API URL to communicate to MediaWiki. Parsoid does the conversion between HTML and WikiText.
  3. The config file of Parsoid is /etc/mediawiki/parsoid/config.yaml. The API URL in this file http://localhost/w/api.php is invalid. It can't be found. When I try to curl this it doesn't exist. Also a redirection to HTTPS is done.
  4. It seems that the port 9000 isn't reachable. When I try to curl it to let Parsoid parse I get a connection refused.
  5. My Certificate is self signed. This could be a problem due to the fact that I don't know how Parsoid handels this.

What I think the problem is

  1. The not reachable port 9000
  2. The fact that the API URL in config.yaml doesn't exist.

Question

How can I solve this problem when my wiki is reachable at https://mywiki.int and not used form localhost when HTTPS is enabled?

I would try to change the API URL in config.yaml to the correct one and try to figure out what's wrong with the port.

Does someone has a solution for this?

Best Regards

DerBunteBall commented 7 years ago

Problem solved. Everything works well the real configuration file is /usr/lib/parsoid/src/config.yaml

Everything else was a problem of the accessing borwser due to a complex plugin configuration.