I’m trying to get this setup working:
- Cells under Docker, with docker-compose
- Nginx as reverse proxy
- Cloudflare on top of that, serving it under my domain, let’s say cells.example.com
docker-compose.yml
version: '3'
services:
# Cells image with two named volumes for the static and for the data
cells:
image: pydio/cells:latest
restart: always
volumes:
- "/srv/docker/volumes/pydio/cells_home:/root/.config"
- "mysql_socket:/var/run/mysqld/"
ports:
- "127.0.0.1:8080:8080"
environment:
- CELLS_BIND=127.0.0.1:8080
- CELLS_EXTERNAL=127.0.0.1
- CELLS_NO_SSL=1
command: ['cells', 'start', '--log', 'debug']
mysql:
image: mariadb:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpwd
MYSQL_DATABASE: cells
MYSQL_USER: pydio
MYSQL_PASSWORD: userpwd
volumes:
- "/srv/docker/volumes/pydio/mariadb:/var/lib/mysql"
- "mysql_socket:/var/run/mysqld/"
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
volumes:
mysql_socket:
Relevant part of nginx config, even though my problem is not the reverse proxy:
server {
server_name cells.example.com;
charset utf-8;
client_max_body_size 0;
location / {
proxy_buffering off;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host:443;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto https;
}
location /ws {
proxy_buffering off;
proxy_pass http://127.0.0.1:8011/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
listen 443 ssl;
ssl_certificate /path/to/cert.pwm;
ssl_certificate_key /path/to/privkey.pem;
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
}
I tried basically every CELLS_BIND/EXTERNAL combination (including putting my domain name on both, my domain on EXTERNAL and 0.0.0.0:8080 on BIND, 127.0.0.1:8080 on EXTERNAL and 127.0.0.1 on BIND, 127.0.0.1:8080 on both, and more)
However, regardless of what I put there, the installation runs (eventually by spoofing the Host header on the client if needed, or changing the nginx config, or installing it with cells install-cli
in the container), however when I start it it always loops with this output:
cells_1 | 2019-05-27T21:25:42.392Z DEBUG [INFO] Reloading
cells_1 | 2019-05-27T21:25:42.393Z DEBUG [INFO] Reloading complete
cells_1 | 2019-05-27T21:25:42.393Z INFO pydio.gateway.proxy Restart done
cells_1 | 2019-05-27T21:25:42.393Z DEBUG Received Proxy Restart Event
cells_1 | 2019-05-27T21:25:42.394Z DEBUG Received Proxy Restart Event
cells_1 | 2019-05-27T21:25:42.394Z DEBUG Received Proxy Restart Event
cells_1 | 2019-05-27T21:25:42.394Z DEBUG http: Server closed
cells_1 | 2019-05-27T21:25:52.394Z DEBUG Restarting Proxy Now
[generated caddyfile]
[...and so on]
If I try to curl /login it responds with something like “Please wait while Pydio server is starting…” and I get this output in the logs:
cells_1 | 2019-05-27T21:35:59.387Z DEBUG [INFO] Reloading
cells_1 | 2019-05-27T21:35:59.388Z DEBUG [INFO] Reloading complete
cells_1 | 2019-05-27T21:35:59.389Z INFO pydio.gateway.proxy Restart done
cells_1 | 2019-05-27T21:35:59.389Z DEBUG Received Proxy Restart Event
cells_1 | 2019-05-27T21:35:59.389Z DEBUG Received Proxy Restart Event
cells_1 | 2019-05-27T21:35:59.389Z DEBUG Received Proxy Restart Event
cells_1 | 2019-05-27T21:35:59.390Z DEBUG http: Server closed
cells_1 | 2019-05-27T21:36:02.360Z DEBUG Loading messages for es-es {"m": 2425, "conf": 668}
cells_1 | 2019-05-27T21:36:02.658Z DEBUG Loading messages for it {"m": 2425, "conf": 668}
cells_1 | 2019-05-27T21:36:02.971Z DEBUG Loading messages for pt-br {"m": 2425, "conf": 668}
cells_1 | 2019-05-27T21:36:03.298Z DEBUG Loading messages for en-us {"m": 2425, "conf": 668}
cells_1 | 2019-05-27T21:36:03.638Z DEBUG Loading messages for fr {"m": 2425, "conf": 668}
cells_1 | 2019-05-27T21:36:03.987Z DEBUG Loading messages for de {"m": 2425, "conf": 668}
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.ckeditor (disabled)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.libreoffice (disabled)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin action.avatar (disabled)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin gui.mobile (disabled)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin access.homepage (wrong access)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin access.settings (wrong access)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin access.gateway (wrong access)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.infopanel (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.codemirror (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.pdfjs (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.diaporama (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin uploader.http (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin action.compression (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.browser (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin uploader.html (missing dependencies)
cells_1 | 2019-05-27T21:36:03.988Z DEBUG Filtering out plugin editor.text (missing dependencies)
cells_1 | 2019-05-27T21:36:03.989Z DEBUG Filtering out plugin editor.video (missing dependencies)
cells_1 | 2019-05-27T21:36:03.989Z DEBUG Filtering out plugin meta.simple_lock (missing dependencies)
cells_1 | 2019-05-27T21:36:04.098Z ERROR Error while applying modifiers to registry! {"error": "{\"id\":\"go.micro.client\",\"code\":500,\"detail\":\"none available\",\"status\":\"Internal Server Error\"}"}
cells_1 | github.com/pydio/cells/common/service/frontend.(*PluginsPool).RegistryForStatus
cells_1 | /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/common/service/frontend/pool.go:148
cells_1 | github.com/pydio/cells/frontend/front-srv/web/index.(*IndexHandler).ServeHTTP
cells_1 | /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/frontend/front-srv/web/index/handler.go:56
cells_1 | github.com/pydio/cells/vendor/github.com/gorilla/mux.(*Router).ServeHTTP
cells_1 | /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/vendor/github.com/gorilla/mux/mux.go:159
cells_1 | net/http.(*timeoutHandler).ServeHTTP.func1
cells_1 | /usr/local/go/src/net/http/server.go:3188
cells_1 | 2019-05-27T21:36:05.408Z ERROR Frontend Service Not Detected
cells_1 | github.com/pydio/cells/frontend/front-srv/web/index.(*IndexHandler).detectFrontendService
cells_1 | /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/frontend/front-srv/web/index/handler.go:121
cells_1 | github.com/pydio/cells/frontend/front-srv/web/index.(*IndexHandler).ServeHTTP
cells_1 | /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/frontend/front-srv/web/index/handler.go:93
cells_1 | github.com/pydio/cells/vendor/github.com/gorilla/mux.(*Router).ServeHTTP
cells_1 | /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/vendor/github.com/gorilla/mux/mux.go:159
cells_1 | net/http.(*timeoutHandler).ServeHTTP.func1
cells_1 | /usr/local/go/src/net/http/server.go:3188
cells_1 | 2019-05-27T21:36:09.390Z DEBUG Restarting Proxy Now
and then it continues to loop.
What the hell am I doing wrong? I tried to read the source code to see what’s happening and I can’t figure it out.
Thank you,