Unraid & Less obstruse docker-compose? #254
Replies: 12 comments 15 replies
-
|
Common test method with Owncloud and Nextcloud is to run them locally without a reverse proxy. My .02 |
Beta Was this translation helpful? Give feedback.
-
I understand the idea. Our current opencloud_full example tries to be a full modular template for production use.
This is generally possible, but difficult. You need to setup all the routing between multiple containers and services, because of OpenIDConnect, Collabora, Wopiserver and so on. If you do not need all this, then compose is not needed at all. Single Container "Just take a look"
The
Then access |
Beta Was this translation helpful? Give feedback.
-
Addition:If you need demo users, use
as the second step. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks, that definitely is an easier start with docker |
Beta Was this translation helpful? Give feedback.
-
|
This compose is working for my needs to test opencloud: services:
opencloud-rolling:
container_name: opencloud
volumes:
- /<local_directory_for_data>:/var/lib/opencloud
- /<local_directory_for_config>:/etc/opencloud
image: opencloudeu/opencloud-rolling
ports:
- 9200:9200
entrypoint:
- /bin/sh
command: ["-c", "opencloud init --insecure true || true; opencloud server"]
environment:
IDM_CREATE_DEMO_USERS: true
OC_URL: https://<your_docker_ip>:9200 |
Beta Was this translation helpful? Give feedback.
-
|
Cool, docker-compose works like a charme. Now we have to expand it for office and using existant reverse proxy (nginx or apache) ... |
Beta Was this translation helpful? Give feedback.
-
|
Okay, i would have a setup without traefik because i have a good working apache reverse proxy and docker config for nextcloud and many more with subdomains. |
Beta Was this translation helpful? Give feedback.
-
|
Just to ad to this, my use case will be the standalone Opencloud in Docker and accessing it via a Cloudflare Tunnel, so as minimal of an option that is possible would be great for myself as I am sure others as well. Hoping something like that is added to the documentation/examples. |
Beta Was this translation helpful? Give feedback.
-
|
i came here from ocis hoping for less complexity as well i understand the example has everything to work out of the box but i assume many people coming here already have a working and fully setup reverse proxy you should really consider also having an example for people who already have an existing proxy because i feel like the majority does. |
Beta Was this translation helpful? Give feedback.
-
|
I'm really eager to get OpenCloud running - both for myself and in my buisness. However it's a showstopper that the docker compose file is not easy to convert to an existing environment with other containers and setups running, with fx. traefik. |
Beta Was this translation helpful? Give feedback.
-
|
I thought i share my progress as it works like this for me: OpenCloud setupThe proxy network is configured to be used in traefik.
services:
opencloud:
image: opencloudeu/opencloud:2.0.4
container_name: opencloud
restart: always
entrypoint:
- /bin/sh
command: ['-c', 'opencloud init || true; opencloud server']
volumes:
- /mnt/user/appdata/opencloud/config:/etc/opencloud
- /mnt/user/appdata/opencloud/data:/var/lib/opencloud
env_file:
- ./app.env
labels:
- net.unraid.docker.managed=portainer
- net.unraid.docker.webui=https://cloud.example.com
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons/webp/opencloud.webp
- traefik.enable=true
- traefik.http.routers.opencloud.rule=Host(`cloud.example.com`)
- traefik.http.routers.opencloud.entrypoints=https
- traefik.http.routers.opencloud.middlewares=opencloud-csp@file
- traefik.http.services.opencloud.loadbalancer.server.port=9200
expose:
- 9200
networks:
- proxy
opencloud-collaboration:
image: opencloudeu/opencloud:2.0.4
container_name: opencloud-collaboration
restart: always
depends_on:
opencloud:
condition: service_started
opencloud-collabora:
condition: service_healthy
entrypoint:
- /bin/sh
command: ['-c', 'opencloud collaboration server']
env_file:
- ./collaboration.env
labels:
- net.unraid.docker.managed=portainer
- net.unraid.docker.webui=https://wopiserver.example.com
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons/webp/opencloud.webp
- traefik.enable=true
- traefik.http.routers.wopiserver.rule=Host(`wopiserver.example.com`)
- traefik.http.routers.wopiserver.entrypoints=https
- traefik.http.services.wopiserver.loadbalancer.server.port=9300
volumes:
- /mnt/user/appdata/opencloud/config:/etc/opencloud
expose:
- 9300
networks:
- proxy
opencloud-collabora:
image: collabora/code:25.04.1.1.1
container_name: opencloud-collabora
restart: always
entrypoint: ['/bin/bash', '-c']
command: ['coolconfig generate-proof-key && /start-collabora-online.sh']
cap_add:
- MKNOD
env_file:
- ./collabora.env
labels:
- net.unraid.docker.managed=portainer
- net.unraid.docker.webui=https://collabora.example.com
- net.unraid.docker.icon=https://www.collaboraonline.com//wp-content/uploads/2019/01/CP-icon-150x150.png
- traefik.enable=true
- traefik.http.routers.collabora.rule=Host(`collabora.example.com`)
- traefik.http.routers.collabora.entrypoints=https
- traefik.http.services.collabora.loadbalancer.server.port=9980
expose:
- 9980
networks:
- proxy
healthcheck:
test:
[
'CMD',
'bash',
'-c',
"exec 3<>/dev/tcp/127.0.0.1/9980 && echo -e 'GET /hosting/discovery HTTP/1.1\r\nHost: localhost:9980\r\n\r\n' >&3 && head -n 1 <&3 | grep '200 OK'",
]
networks:
proxy:
external: true
OC_URL="https://cloud.example.com"
PROXY_HTTP_ADDR="0.0.0.0:9200"
PROXY_TLS: false
OC_INSECURE=false
OC_JWT_SECRET=${OC_JWT_SECRET}
NOTIFICATIONS_SMTP_HOST="smtp.gmail.com"
NOTIFICATIONS_SMTP_PORT=587
NOTIFICATIONS_SMTP_SENDER="OpenCloud <noreply@example.com>"
NOTIFICATIONS_SMTP_USERNAME=${SMTP_USER}
NOTIFICATIONS_SMTP_PASSWORD=${SMTP_PWD}
NOTIFICATIONS_SMTP_INSECURE=false
NOTIFICATIONS_SMTP_AUTHENTICATION=plain
NOTIFICATIONS_SMTP_ENCRYPTION=startls
NATS_NATS_HOST="0.0.0.0"
NATS_NATS_PORT=9233
GATEWAY_GRPC_ADDR="0.0.0.0:9142"
FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR="eu.opencloud.api.collaboration.CollaboraOnline"
GRAPH_AVAILABLE_ROLES="b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5,a8d5fe5e-96e3-418d-825b-534dbdf22b99,fb6c3e19-e378-47e5-b277-9732f9de6e21,58c63c02-1d89-4572-916a-870abc5a1b7d,2d00ce52-1fc2-4dbc-8b95-a73b73395f5a,1c996275-f1c9-4e71-abdf-a42f6495e960,312c0871-5ef7-4b3a-85b6-0e4074c64049,aa97fe03-7980-45ac-9e50-b325749fd7e6"
COLLABORA_DOMAIN="https://collabora.example.com"
WOPISERVER_DOMAIN="https://wopiserver.example.com"
COLLABORA_ADMIN_USER=${COLLABORA_ADMIN_USER}
COLLABORA_ADMIN_PASSWORD=${COLLABORA_ADMIN_PASSWORD}
COLLABORA_SSL_ENABLE=false
COLLABORA_SSL_VERIFICATION=false
COLLABORATION_GRPC_ADDR="0.0.0.0:9301"
COLLABORATION_HTTP_ADDR="0.0.0.0:9300"
MICRO_REGISTRY="nats-js-kv"
MICRO_REGISTRY_ADDRESS="opencloud:9233"
COLLABORATION_WOPI_SRC="https://wopiserver.example.com"
COLLABORATION_APP_NAME="CollaboraOnline"
COLLABORATION_APP_PRODUCT="Collabora"
COLLABORATION_APP_ADDR="https://collabora.example.com"
COLLABORATION_APP_ICON="https://collabora.example.com/favicon.ico"
COLLABORATION_APP_INSECURE=true
COLLABORATION_CS3API_DATAGATEWAY_INSECURE=true
COLLABORATION_LOG_LEVEL="info"
OC_URL="https://cloud.example.com"
COLLABORATION_JWT_SECRET=${OC_JWT_SECRET}
aliasgroup1="https://wopiserver.example.com"
DONT_GEN_SSL_CERT="YES"
username=${COLLABORA_ADMIN_USER}
password=${COLLABORA_ADMIN_PASSWORD}
extra_params="--o:ssl.enable=false --o:ssl.ssl_verification=false --o:ssl.termination=true --o:welcome.enable=false --o:allowframe=true --o:net.frame_ancestors=https://cloud.example.com"
domain=cloud\\.example\\.com|wopiserver\\.example\\.comTraefik setupI added the following to the http:
middlewares:
opencloud-csp:
headers:
customResponseHeaders:
Content-Security-Policy: >
frame-src 'self' blob: https://embed.diagrams.net/ https://collabora.unjx.de/;hope, this helps... |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
A simpler docker compose example would be nice. Must be possible to run it without a full blown traefik integration, right? I just want to throw it into a test container and play around with it for a bit
Beta Was this translation helpful? Give feedback.
All reactions