{"id":978,"date":"2022-03-14T18:10:58","date_gmt":"2022-03-14T17:10:58","guid":{"rendered":"https:\/\/apfelcast.com\/?p=978"},"modified":"2022-03-14T18:10:58","modified_gmt":"2022-03-14T17:10:58","slug":"collabora-online-nextcloud-office-code-server-docker-container-installation-inkl-reverse-proxy","status":"publish","type":"post","link":"https:\/\/it-ion.de\/index.php\/2022\/03\/14\/collabora-online-nextcloud-office-code-server-docker-container-installation-inkl-reverse-proxy\/","title":{"rendered":"Collabora Online (Nextcloud Office) Code Server Docker Container Installation inkl. Reverse Proxy"},"content":{"rendered":"\n<div class=\"brlbs-cmpnt-container brlbs-cmpnt-content-blocker brlbs-cmpnt-with-individual-styles\" data-borlabs-cookie-content-blocker-id=\"default\" data-borlabs-cookie-content=\"PGlmcmFtZSB0aXRsZT0iWW91VHViZSB2aWRlbyBwbGF5ZXIiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvQkFjMTVSSGZ3RUEiIHdpZHRoPSI1NjAiIGhlaWdodD0iMzE1IiBmcmFtZWJvcmRlcj0iMCIgYWxsb3dmdWxsc2NyZWVuPSJhbGxvd2Z1bGxzY3JlZW4iPjwvaWZyYW1lPg==\">\n<div class=\"brlbs-cmpnt-cb-preset-a\">\n<p class=\"brlbs-cmpnt-cb-description\">Sie sehen gerade einen Platzhalterinhalt von <strong>Standard<\/strong>. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfl\u00e4che unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.<\/p>\n<div class=\"brlbs-cmpnt-cb-buttons\"> <a class=\"brlbs-cmpnt-cb-btn\" href=\"#\" data-borlabs-cookie-unblock role=\"button\">Inhalt entsperren<\/a> <a class=\"brlbs-cmpnt-cb-btn\" href=\"#\" data-borlabs-cookie-accept-service role=\"button\" style=\"display: none\">Erforderlichen Service akzeptieren und Inhalte entsperren<\/a> <\/div>\n<p> <a class=\"brlbs-cmpnt-cb-provider-toggle\" href=\"#\" data-borlabs-cookie-show-provider-information role=\"button\">Mehr Informationen<\/a> <\/div>\n<\/div>\n<p>In diesem Video erfahrt ihr, wie Ihr den Collabora Online Code Server, den Ihr f\u00fcr die Verwendung von Nextcloud ben\u00f6tigt als Docker Container installieren k\u00f6nnt und mit Hilfe eines Reverse Proxys erreichbar machen k\u00f6nnt.<\/p>\n<p>\u00bb Videos:<br \/>\nCollabora Online App Variante: <a href=\"https:\/\/youtu.be\/bHTIDcZGwXU\">https:\/\/youtu.be\/bHTIDcZGwXU<\/a><br \/>\nNginxProxyManager installieren: <a href=\"https:\/\/youtu.be\/JgrPcQIQuF8\">https:\/\/youtu.be\/JgrPcQIQuF8<\/a><br \/>\nMehrere Subdomains bei DynDNS: <a href=\"https:\/\/youtu.be\/kDoMdTNQOgc\">https:\/\/youtu.be\/kDoMdTNQOgc<\/a><\/p>\n<p>Offizielle Anleitung von Collabora Online: <a href=\"https:\/\/sdk.collaboraonline.com\/docs\/installation\/Proxy_settings.html#required-apache2-modules\">HIER<\/a><\/p>\n<p>&nbsp;<\/p>\n<div id=\"93964-1\"><script src=\"\/\/ads.themoneytizer.com\/s\/gen.js?type=1\"><\/script><script src=\"\/\/ads.themoneytizer.com\/s\/requestform.js?siteId=93964&#038;formatId=1\"><\/script><\/div>\n<p>&nbsp;<\/p>\n<h3>Im Video verwendete Befehle:<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">#### Collabora Online Docker #####\n\n## Install Docker Container (single nextcloud) ## \ndocker run -t -d -p 9980:9980 -e \"domain=cloud\\\\.domain\\\\.com\" --name=COLLABORAOFFICE --restart always --cap-add MKNOD collabora\/code\n\n(cloud.domain.com = Nextcloud Domain)\n\n## check log ##\ndocker logs COLLABORAOFFICE\n\n\n## Install Docker Container (multiple nextclouds) ## \ndocker run -t -d -p 9980:9980 -e \"domain=(cloud\\\\.domain\\\\.com|other\\\\.domain\\\\.com)\" --name=COLLABORAOFFICE --restart always --cap-add MKNOD collabora\/code\n\n-&gt; Method 1:\n####### Nginx Proxy Manager config #######\n\n1. Create your new Proxy Host, specify https protocol and the server host\/ip and port 9980. Also enable Websockets Support.\n2. On the SSL tab select a new certificate, enable HTTP\/2.\n3. On the Advanced tab, enter:\n\n# static files\nlocation ^~ \/loleaflet {\n  proxy_pass $forward_scheme:\/\/$server:$port;\n  proxy_set_header Host $http_host;\n}\n\n# WOPI discovery URL\nlocation ^~ \/hosting\/discovery {\n  proxy_pass $forward_scheme:\/\/$server:$port;\n  proxy_set_header Host $http_host;\n}\n\n# main websocket\nlocation ~ ^\/lool\/(.*)\/ws$ {\n  proxy_set_header Upgrade $http_upgrade;\n  proxy_set_header Connection \"upgrade\";\n  proxy_http_version 1.1;\n  proxy_pass $forward_scheme:\/\/$server:$port;\n  proxy_set_header Host $http_host;\n  proxy_read_timeout 36000s;\n}\n\n# download, presentation and image upload\nlocation ~ ^\/lool {\n  proxy_pass $forward_scheme:\/\/$server:$port;\n  proxy_set_header Host $http_host;\n}\n\n# Admin Console websocket\nlocation ^~ \/lool\/adminws {\n  proxy_set_header Upgrade $http_upgrade;\n  proxy_set_header Connection \"upgrade\";\n  proxy_http_version 1.1;\n  proxy_pass $forward_scheme:\/\/$server:$port;\n  proxy_set_header Host $http_host;\n  proxy_read_timeout 36000s;\n}\n\n-&gt; Method 2:\n####### Apache Reverse Proxy config #######\n\n## enable modules ##\na2enmod proxy\na2enmod proxy_wstunnel\na2enmod proxy_http\na2enmod ssl\n\nservice apache2 restart\n\n\n## create new apache host for domain ##\n\nnano \/etc\/apache2\/sites-available\/office.conf\n\n&lt;VirtualHost *:80&gt; \nServerName \n&lt;\/VirtualHost&gt;\n\na2ensite office.conf \n\nservice apache2 restart\n\n## get Let's Encrypt SSL certificate ##\n\ncertbot --apache -m -d\n\n## open config ##\nnano \/etc\/apache2\/sites-available\/office-le-ssl.conf\n\nadd following under \"ServerName\":\n\n#########################################################################################################################################\n\n# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!\nSSLEngine on\nSSLProtocol             all -SSLv2 -SSLv3\nSSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS\nSSLHonorCipherOrder     on\n\nAllowEncodedSlashes NoDecode\nSSLProxyEngine On\nProxyPreserveHost On\n\n# cert is issued for collaboraonline.example.com and we proxy to localhost\nSSLProxyVerify None\nSSLProxyCheckPeerCN Off\nSSLProxyCheckPeerName Off\n\n\n# static html, js, images, etc. served from coolwsd\n# browser is the client part of Collabora Online\nProxyPass           \/browser https:\/\/127.0.0.1:9980\/browser retry=0\nProxyPassReverse    \/browser https:\/\/127.0.0.1:9980\/browser\n\n\n# WOPI discovery URL\nProxyPass           \/hosting\/discovery https:\/\/127.0.0.1:9980\/hosting\/discovery retry=0\nProxyPassReverse    \/hosting\/discovery https:\/\/127.0.0.1:9980\/hosting\/discovery\n\n\n# Capabilities\nProxyPass           \/hosting\/capabilities https:\/\/127.0.0.1:9980\/hosting\/capabilities retry=0\nProxyPassReverse    \/hosting\/capabilities https:\/\/127.0.0.1:9980\/hosting\/capabilities\n\n# Main websocket\nProxyPassMatch      \"\/cool\/(.*)\/ws$\"      wss:\/\/127.0.0.1:9980\/cool\/$1\/ws nocanon\n\n# Admin Console websocket\nProxyPass           \/cool\/adminws wss:\/\/127.0.0.1:9980\/cool\/adminws\n\n# Download as, Fullscreen presentation and Image upload operations\nProxyPass           \/cool https:\/\/127.0.0.1:9980\/cool\nProxyPassReverse    \/cool https:\/\/127.0.0.1:9980\/cool\n\n# Compatibility with integrations that use the \/lool\/convert-to endpoint\nProxyPass           \/lool https:\/\/127.0.0.1:9980\/cool\nProxyPassReverse    \/lool https:\/\/127.0.0.1:9980\/cool\n\n#########################################################################################################################################\n\n## restart apache ##\nservice apache2 restart\n\n\n--&gt; more info: https:\/\/sdk.collaboraonline.com\/docs\/installation\/Proxy_settings.html#required-apache2-modules<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3>apfelcast Support<\/h3>\n<p>Du ben\u00f6tigst Unterst\u00fctzung bei deinem Projekt oder hast Fragen zur Umsetzung?<br \/>\n<strong>Dann melde ich gern bei uns!<\/strong><\/p>\n<p>[button link=&#8220;https:\/\/apfelcast.com\/kontakt&#8220; type=&#8220;big&#8220; class=&#8220; custom-button&#8220;] Kontaktieren[\/button]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie&#8230;<\/p>\n","protected":false},"author":1,"featured_media":979,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-978","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein"],"taxonomy_info":{"category":[{"value":1,"label":"Allgemein"}]},"featured_image_src_large":["https:\/\/it-ion.de\/wp-content\/uploads\/2022\/03\/thumbnail_nc_office-docker-1024x576.jpg",1024,576,true],"author_info":{"display_name":"Daniel Klozb\u00fccher","author_link":"https:\/\/it-ion.de\/index.php\/author\/wp-master\/"},"comment_info":0,"category_info":[{"term_id":1,"name":"Allgemein","slug":"allgemein","term_group":0,"term_taxonomy_id":1,"taxonomy":"category","description":"","parent":0,"count":89,"filter":"raw","cat_ID":1,"category_count":89,"category_description":"","cat_name":"Allgemein","category_nicename":"allgemein","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/posts\/978","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/comments?post=978"}],"version-history":[{"count":0,"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/posts\/978\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/media\/979"}],"wp:attachment":[{"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/media?parent=978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/categories?post=978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/it-ion.de\/index.php\/wp-json\/wp\/v2\/tags?post=978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}