diff --git a/etc/logrotate.d/onlyoffice-documentserver.conf b/etc/logrotate.d/onlyoffice-documentserver.conf new file mode 120000 index 0000000..c2250bd --- /dev/null +++ b/etc/logrotate.d/onlyoffice-documentserver.conf @@ -0,0 +1 @@ +../onlyoffice/documentserver/logrotate/onlyoffice-documentserver.conf \ No newline at end of file diff --git a/etc/nginx/includes/onlyoffice-documentserver-common.conf b/etc/nginx/includes/onlyoffice-documentserver-common.conf new file mode 120000 index 0000000..26424cd --- /dev/null +++ b/etc/nginx/includes/onlyoffice-documentserver-common.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-common.conf \ No newline at end of file diff --git a/etc/nginx/includes/onlyoffice-documentserver-docservice.conf b/etc/nginx/includes/onlyoffice-documentserver-docservice.conf new file mode 120000 index 0000000..0e808ad --- /dev/null +++ b/etc/nginx/includes/onlyoffice-documentserver-docservice.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-docservice.conf \ No newline at end of file diff --git a/etc/nginx/includes/onlyoffice-documentserver-spellchecker.conf b/etc/nginx/includes/onlyoffice-documentserver-spellchecker.conf new file mode 120000 index 0000000..a1740eb --- /dev/null +++ b/etc/nginx/includes/onlyoffice-documentserver-spellchecker.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-spellchecker.conf \ No newline at end of file diff --git a/etc/nginx/includes/onlyoffice-http.conf b/etc/nginx/includes/onlyoffice-http.conf new file mode 120000 index 0000000..43860a2 --- /dev/null +++ b/etc/nginx/includes/onlyoffice-http.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/nginx/includes/onlyoffice-http.conf \ No newline at end of file diff --git a/etc/onlyoffice/documentserver/default.json b/etc/onlyoffice/documentserver/default.json new file mode 100644 index 0000000..b7b2bfb --- /dev/null +++ b/etc/onlyoffice/documentserver/default.json @@ -0,0 +1,241 @@ +{ + "statsd": { + "useMetrics": false, + "host": "localhost", + "port": "8125", + "prefix": "ds." + }, + "log": { + "filePath": "", + "options": { "reloadSecs": 60 } + }, + "queue": { + "visibilityTimeout": 300, + "retentionPeriod": 900 + }, + "storage": { + "name": "storage-fs", + "fs": { + "folderPath": "", + "urlExpires": 900, + "secretString": "onlyoffice" + }, + "region": "", + "endpoint": "http://localhost/s3", + "bucketName": "cache", + "storageFolderName": "files", + "urlExpires": 604800, + "accessKeyId": "AKID", + "secretAccessKey": "SECRET", + "useRequestToGetUrl": false, + "useSignedUrl": false, + "externalHost": "" + }, + "rabbitmq": { + "url": "amqp://guest:guest@localhost:5672", + "socketOptions": {}, + "exchangepubsub": "ds.pubsub", + "queueconverttask": "ds.converttask", + "queueconvertresponse": "ds.convertresponse", + "exchangeconvertdead": "ds.exchangeconvertdead", + "queueconvertdead": "ds.convertdead" + }, + "dnscache": { + "enable" : true, + "ttl" : 300, + "cachesize" : 1000 + }, + "services": { + "CoAuthoring": { + "server": { + "port": 8000, + "workerpercpu": 1, + "mode": "development", + "limits_tempfile_upload": 104857600, + "limits_image_size": 26214400, + "limits_image_download_timeout": 120, + "callbackRequestTimeout": 120, + "healthcheckfilepath": "../public/healthcheck.docx", + "savetimeoutdelay": 5000, + "edit_singleton": false, + "forgottenfiles": "forgotten", + "forgottenfilesname": "output", + "maxRequestChanges": 20000, + "openProtectedFile": true + }, + "requestDefaults": { + "headers": { + "userAgent": "Node.js/6.13" + }, + "rejectUnauthorized": true + }, + "autoAssembly": { + "enable": false, + "interval": "5m", + "step": "1m" + }, + "utils": { + "utils_common_fontdir": "null", + "utils_fonts_search_patterns": "*.ttf;*.ttc;*.otf", + "resource_expires": 31536000, + "limits_image_types_upload": "jpg;png;gif;bmp" + }, + "sql": { + "type": "postgres", + "tableChanges": "doc_changes", + "tableResult": "task_result", + "dbHost": "localhost", + "dbPort": 5432, + "dbName": "onlyoffice", + "dbUser": "onlyoffice", + "dbPass": "onlyoffice", + "charset": "utf8", + "connectionlimit": 10, + "max_allowed_packet": 1048575 + }, + "redis": { + "name": "redis", + "prefix": "ds:", + "host": "localhost", + "port": 6379 + }, + "pubsub": { + "name": "pubsubRabbitMQ", + "maxChanges": 1000 + }, + "expire": { + "saveLock": 60, + "presence": 300, + "locks": 604800, + "changeindex": 86400, + "lockDoc": 30, + "message": 86400, + "lastsave": 604800, + "forcesave": 604800, + "saved": 3600, + "documentsCron": "0 */2 * * * *", + "files": 86400, + "filesCron": "00 00 */1 * * *", + "filesremovedatonce": 100, + "sessionidle": "0", + "sessionabsolute": "30d", + "sessionclosecommand": "2m", + "pemStdTTL": "1h", + "pemCheckPeriod": "10m", + "updateVersionStatus": "5m" + }, + "ipfilter": { + "rules": [{"address": "*", "allowed": true}], + "useforrequest": false, + "errorcode": 401 + }, + "secret": { + "browser": {"string": "secret", "file": "", "tenants": {}}, + "inbox": {"string": "secret", "file": "", "tenants": {}}, + "outbox": {"string": "secret", "file": ""}, + "session": {"string": "secret", "file": ""} + }, + "token": { + "enable": { + "browser": false, + "request": { + "inbox": false, + "outbox": false + } + }, + "browser": { + "secretFromInbox": true + }, + "inbox": { + "header": "Authorization", + "prefix": "Bearer ", + "inBody": false + }, + "outbox": { + "header": "Authorization", + "prefix": "Bearer ", + "algorithm": "HS256", + "expires": "5m", + "inBody": false + }, + "session": { + "algorithm": "HS256", + "expires": "30d" + } + }, + "plugins": { + "uri": "/sdkjs-plugins", + "autostart": [] + }, + "editor":{ + "spellcheckerUrl": "/spellchecker", + "reconnection":{ + "attempts": 50, + "delay": "2s" + } + }, + "sockjs": { + "sockjs_url": "", + "websocket": true + } + } + }, + "license" : { + "license_file": "", + "warning_limit_percents": "70" + }, + "FileConverter": { + "converter": { + "maxDownloadBytes": 104857600, + "downloadTimeout": 120, + "downloadAttemptMaxCount": 3, + "downloadAttemptDelay": 1000, + "maxprocesscount": 1, + "fontDir": "null", + "presentationThemesDir": "null", + "x2tPath": "null", + "docbuilderPath": "null", + "docbuilderAllFontsPath": "null", + "args": "", + "spawnOptions": {}, + "errorfiles": "", + "streamWriterBufferSize": 8388608, + "maxRedeliveredCount": 2, + "inputLimits": [ + { + "type": "docx;dotx;docm;dotm", + "zip": { + "uncompressed": "50MB", + "template": "*.xml" + } + }, + { + "type": "xlsx;xltx;xlsm;xltm", + "zip": { + "uncompressed": "300MB", + "template": "*.xml" + } + }, + { + "type": "pptx;ppsx;potx;pptm;ppsm;potm", + "zip": { + "uncompressed": "50MB", + "template": "*.xml" + } + } + ] + } + }, + "FileStorage": { + "host": "", + "port": 4567, + "directory": "", + "silent": true + }, + "SpellChecker": { + "server": { + "port": 8080, + "mode": "development" + } + } +} diff --git a/etc/onlyoffice/documentserver/development-mac.json b/etc/onlyoffice/documentserver/development-mac.json new file mode 100644 index 0000000..284e9b7 --- /dev/null +++ b/etc/onlyoffice/documentserver/development-mac.json @@ -0,0 +1,63 @@ +{ + "log": { + "filePath": "../../Common/config/log4js/development.json" + }, + "storage": { + "fs": { + "folderPath": "../../App_Data" + } + }, + "services": { + "CoAuthoring": { + "server": { + "port": 8080, + "static_content": { + "/fonts": { + "path": "../../../fonts" + }, + "/sdkjs": { + "path": "../../../sdkjs" + }, + "/web-apps": { + "path": "../../../web-apps" + }, + "/web-apps-pro": { + "path": "../../../web-apps-pro" + }, + "/sdkjs-plugins": { + "path": "../../../sdkjs-plugins" + } + } + }, + "utils": { + "utils_common_fontdir": "/Library/Fonts" + }, + "sql": { + "type": "mysql", + "dbPort": 3306, + "dbUser": "root", + "dbPass": "onlyoffice" + }, + "editor": { + "spellcheckerUrl": "" + }, + "sockjs": { + "sockjs_url": "/office/vendor/sockjs/sockjs.min.js" + } + } + }, + "license": { + "license_file": "./../../license.lic", + "warning_limit_percents": "70" + }, + "FileConverter": { + "converter": { + "fontDir": "", + "presentationThemesDir": "../../../OfficeWeb/PowerPoint/themes", + "x2tPath": "../../FileConverter/Bin/x2t", + "docbuilderPath": "../../FileConverter/Bin/docbuilder", + "docbuilderAllFontsPath": "../../App_Data/docbuilder/AllFonts.js", + "errorfiles": "error" + } + } +} \ No newline at end of file diff --git a/etc/onlyoffice/documentserver/development-windows.json b/etc/onlyoffice/documentserver/development-windows.json new file mode 100644 index 0000000..179d3d3 --- /dev/null +++ b/etc/onlyoffice/documentserver/development-windows.json @@ -0,0 +1,63 @@ +{ + "log": { + "filePath": "../../Common/config/log4js/development.json" + }, + "storage": { + "fs": { + "folderPath": "../../App_Data" + } + }, + "services": { + "CoAuthoring": { + "server": { + "port": 8001, + "static_content": { + "/fonts": { + "path": "../../../fonts" + }, + "/sdkjs": { + "path": "../../../sdkjs" + }, + "/web-apps": { + "path": "../../../web-apps" + }, + "/web-apps-pro": { + "path": "../../../web-apps-pro" + }, + "/sdkjs-plugins": { + "path": "../../../sdkjs-plugins" + } + } + }, + "utils": { + "utils_common_fontdir": "C:\\Windows\\Fonts" + }, + "sql": { + "type": "mysql", + "dbPort": 3306, + "dbUser": "root", + "dbPass": "onlyoffice" + }, + "editor": { + "spellcheckerUrl": "http://127.0.0.1:8080" + }, + "sockjs": { + "sockjs_url": "/web-apps/vendor/sockjs/sockjs.min.js" + } + } + }, + "license": { + "license_file": "./../../license.lic", + "warning_limit_percents": "70" + }, + "FileConverter": { + "converter": { + "fontDir": "", + "presentationThemesDir": "../../../sdkjs/slide/themes", + "x2tPath": "../../FileConverter/Bin/x2t.exe", + "docbuilderPath": "../../FileConverter/Bin/docbuilder.exe", + "docbuilderAllFontsPath": "../../App_Data/docbuilder/AllFonts.js", + "errorfiles": "error" + } + } +} \ No newline at end of file diff --git a/etc/onlyoffice/documentserver/log4js/development.json b/etc/onlyoffice/documentserver/log4js/development.json new file mode 100644 index 0000000..12e09a3 --- /dev/null +++ b/etc/onlyoffice/documentserver/log4js/development.json @@ -0,0 +1,13 @@ +{ + "appenders": [{ + "type": "console", + "layout": { + "type": "pattern", + "pattern": "%[[%d] [%p] %c -%] %.10000m" + } + }], + "replaceConsole": "true", + "levels": { + "nodeJS": "ALL" + } +} \ No newline at end of file diff --git a/etc/onlyoffice/documentserver/log4js/production.json b/etc/onlyoffice/documentserver/log4js/production.json new file mode 100644 index 0000000..7804695 --- /dev/null +++ b/etc/onlyoffice/documentserver/log4js/production.json @@ -0,0 +1,13 @@ +{ + "appenders": [{ + "type": "console", + "layout": { + "type": "pattern", + "pattern": "[%d] [%p] %c - %.10000m" + } + }], + "replaceConsole": "true", + "levels": { + "nodeJS": "WARN" + } +} diff --git a/etc/onlyoffice/documentserver/logrotate/onlyoffice-documentserver.conf b/etc/onlyoffice/documentserver/logrotate/onlyoffice-documentserver.conf new file mode 100644 index 0000000..0191ab0 --- /dev/null +++ b/etc/onlyoffice/documentserver/logrotate/onlyoffice-documentserver.conf @@ -0,0 +1,31 @@ +/var/log/onlyoffice/documentserver/nginx.error.log { + daily + missingok + rotate 30 + compress + delaycompress + notifempty + sharedscripts + postrotate + if [ -f /var/run/nginx.pid ]; then + service nginx reload > /dev/null + fi + endscript +} + +/var/log/onlyoffice/documentserver/**/*.log +/var/log/onlyoffice/documentserver-example/*.log { + daily + missingok + rotate 30 + compress + delaycompress + notifempty + nocreate + sharedscripts + postrotate + if [ -f /var/run/supervisord.pid ]; then + service supervisor restart > /dev/null + fi + endscript +} diff --git a/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-common.conf b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-common.conf new file mode 100644 index 0000000..619e3b9 --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-common.conf @@ -0,0 +1,20 @@ +## Increase this if you want to upload large attachments +client_max_body_size 100m; + +gzip on; +gzip_vary on; +gzip_types text/plain + text/xml + text/css + text/csv + font/ttf + application/xml + application/javascript + application/x-javascript + application/json + application/octet-stream + application/x-font-ttf + application/rtf + +access_log off; +error_log /var/log/onlyoffice/documentserver/nginx.error.log; diff --git a/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-docservice.conf b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-docservice.conf new file mode 100644 index 0000000..ca1680a --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-docservice.conf @@ -0,0 +1,67 @@ +#welcome page +rewrite ^/$ $the_scheme://$the_host/welcome/ redirect; + +#support old version +rewrite ^\/OfficeWeb(\/apps\/.*)$ $the_scheme://$the_host/v5.2.3-64/web-apps$1 redirect; + +#script caching protection +rewrite ^(\/web-apps\/apps\/(?!api\/).*)$ $the_scheme://$the_host/v5.2.3-64/$1 redirect; + +#disable caching for api.js +location ~ ^(\/v[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps\/apps\/api\/documents\/api\.js)$ { + expires -1; + # gzip_static on; + alias /var/www/onlyoffice/documentserver//$2; +} + +#suppress logging the unsupported locale error +location ~ ^(\/v[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps)(\/.*\.json)$ { + expires 365d; + error_log /dev/null crit; + # gzip_static on; + alias /var/www/onlyoffice/documentserver/$2$3; +} + +location ~ ^(\/v[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?\/(web-apps|sdkjs|sdkjs-plugins|fonts)(\/.*)$ { + expires 365d; + # gzip_static on; + alias /var/www/onlyoffice/documentserver/$2$3; +} + +location ~ ^(\/cache\/files.*)(\/.*) { + alias /var/lib/onlyoffice/documentserver/App_Data$1; + add_header Content-Disposition $arg_disposition; + + set $secret_string onlyoffice; + secure_link $arg_md5,$arg_expires; + secure_link_md5 "$secure_link_expires$uri$secret_string"; + + if ($secure_link = "") { + return 403; + } + + if ($secure_link = "0") { + return 410; + } +} + +# Allow server info only from 127.0.0.1 +location /info { + allow 127.0.0.1; + deny all; + proxy_pass http://docservice; +} + +location / { + proxy_pass http://docservice; +} + +location ~ ^(\/v[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?(\/doc\/.*) { + proxy_pass http://docservice$2; + proxy_http_version 1.1; +} + +location /v5.2.3-64/ { + proxy_pass http://docservice/; +} + diff --git a/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-spellchecker.conf b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-spellchecker.conf new file mode 100644 index 0000000..9b929d3 --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-documentserver-spellchecker.conf @@ -0,0 +1,4 @@ +location ~ ^(\/v[\d]+\.[\d]+\.[\d]+[\.|-][\d]+)?(\/spellchecker)(\/.*)$ { + proxy_pass http://spellchecker$3; + proxy_http_version 1.1; +} diff --git a/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-http.conf b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-http.conf new file mode 100644 index 0000000..20cf977 --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/includes/onlyoffice-http.conf @@ -0,0 +1,38 @@ +upstream docservice { + server localhost:8000; +} + +upstream spellchecker { + server localhost:8080; +} + +upstream example { + server localhost:3000; +} + +map $http_host $this_host { + "" $host; + default $http_host; +} + +map $http_x_forwarded_proto $the_scheme { + default $http_x_forwarded_proto; + "" $scheme; +} + +map $http_x_forwarded_host $the_host { + default $http_x_forwarded_host; + "" $this_host; +} + +map $http_upgrade $proxy_connection { + default upgrade; + "" close; +} + +proxy_set_header Host $http_host; +proxy_set_header Upgrade $http_upgrade; +proxy_set_header Connection $proxy_connection; +proxy_set_header X-Forwarded-Host $the_host; +proxy_set_header X-Forwarded-Proto $the_scheme; +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver-ssl.conf.template b/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver-ssl.conf.template new file mode 100644 index 0000000..153d2f7 --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver-ssl.conf.template @@ -0,0 +1,70 @@ +include /etc/nginx/includes/onlyoffice-http.conf; + +## Normal HTTP host +server { + listen 0.0.0.0:80; + listen [::]:80 default_server; + server_name _; + server_tokens off; + + ## Redirects all traffic to the HTTPS host + root /nowhere; ## root doesn't have to be a valid path since we are redirecting + rewrite ^ https://$host$request_uri? permanent; +} + +#HTTP host for internal services +server { + listen 127.0.0.1:80; + listen [::1]:80; + server_name localhost; + server_tokens off; + + include /etc/nginx/includes/onlyoffice-documentserver-common.conf; + include /etc/nginx/includes/onlyoffice-documentserver-docservice.conf; +} + +## HTTPS host +server { + listen 0.0.0.0:443 ssl; + listen [::]:443 ssl default_server; + server_tokens off; + root /usr/share/nginx/html; + + ## Strong SSL Security + ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html + ssl on; + ssl_certificate {{SSL_CERTIFICATE_PATH}}; + ssl_certificate_key {{SSL_KEY_PATH}}; + ssl_verify_client off; + + ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_session_cache builtin:1000 shared:SSL:10m; + + ssl_prefer_server_ciphers on; + + add_header Strict-Transport-Security max-age=31536000; + # add_header X-Frame-Options SAMEORIGIN; + add_header X-Content-Type-Options nosniff; + + ## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL. + ## Replace with your ssl_trusted_certificate. For more info see: + ## - https://medium.com/devops-programming/4445f4862461 + ## - https://www.ruby-forum.com/topic/4419319 + ## - https://www.digitalocean.com/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx + # ssl_stapling on; + # ssl_stapling_verify on; + # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt; + # resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired + # resolver_timeout 10s; + + ## [Optional] Generate a stronger DHE parameter: + ## cd /etc/ssl/certs + ## sudo openssl dhparam -out dhparam.pem 4096 + ## + # ssl_dhparam /etc/ssl/certs/dhparam.pem; + + include /etc/nginx/includes/onlyoffice-documentserver-*.conf; + +} diff --git a/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf b/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf new file mode 100644 index 0000000..0572fa8 --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf @@ -0,0 +1,8 @@ +include /etc/nginx/includes/onlyoffice-http.conf; +server { + listen 0.0.0.0:80; + listen [::]:80 default_server; + server_tokens off; + + include /etc/nginx/includes/onlyoffice-documentserver-*.conf; +} \ No newline at end of file diff --git a/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf.template b/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf.template new file mode 100644 index 0000000..0572fa8 --- /dev/null +++ b/etc/onlyoffice/documentserver/nginx/onlyoffice-documentserver.conf.template @@ -0,0 +1,8 @@ +include /etc/nginx/includes/onlyoffice-http.conf; +server { + listen 0.0.0.0:80; + listen [::]:80 default_server; + server_tokens off; + + include /etc/nginx/includes/onlyoffice-documentserver-*.conf; +} \ No newline at end of file diff --git a/etc/onlyoffice/documentserver/production-linux.json b/etc/onlyoffice/documentserver/production-linux.json new file mode 100644 index 0000000..fcfaccb --- /dev/null +++ b/etc/onlyoffice/documentserver/production-linux.json @@ -0,0 +1,64 @@ +{ + "log": { + "filePath": "/etc/onlyoffice/documentserver/log4js/production.json" + }, + "storage": { + "fs": { + "folderPath": "/var/lib/onlyoffice/documentserver/App_Data/cache/files" + } + }, + "services": { + "CoAuthoring": { + "server": { + "static_content": { + "/fonts": { + "path": "/var/www/onlyoffice/documentserver/fonts", + "options": {"maxAge": "7d"} + }, + "/sdkjs": { + "path": "/var/www/onlyoffice/documentserver/sdkjs", + "options": {"maxAge": "7d"} + }, + "/web-apps": { + "path": "/var/www/onlyoffice/documentserver/web-apps", + "options": {"maxAge": "7d"} + }, + "/welcome": { + "path": "/var/www/onlyoffice/documentserver/server/welcome", + "options": {"maxAge": "7d"} + }, + "/info": { + "path": "/var/www/onlyoffice/documentserver/server/info", + "options": {"maxAge": "7d"} + }, + "/sdkjs-plugins": { + "path": "/var/www/onlyoffice/documentserver/sdkjs-plugins", + "options": {"maxAge": "7d"} + } + } + }, + "utils": { + "utils_common_fontdir": "/usr/share/fonts" + }, + "sockjs": { + "sockjs_url": "/web-apps/vendor/sockjs/sockjs.min.js" + } + } + }, + "license": { + "license_file": "/var/www/onlyoffice/Data/license.lic", + "warning_limit_percents": "70" + }, + "FileConverter": { + "converter": { + "fontDir": "/usr/share/fonts", + "presentationThemesDir": "/var/www/onlyoffice/documentserver/sdkjs/slide/themes", + "x2tPath": "/var/www/onlyoffice/documentserver/server/FileConverter/bin/x2t", + "docbuilderPath": "/var/www/onlyoffice/documentserver/server/FileConverter/bin/docbuilder", + "docbuilderAllFontsPath": "/var/lib/onlyoffice/documentserver/App_Data/docbuilder/AllFonts.js" + } + }, + "FileStorage": { + "directory": "/var/lib/onlyoffice/documentserver/App_Data" + } +} diff --git a/etc/onlyoffice/documentserver/production-windows.json b/etc/onlyoffice/documentserver/production-windows.json new file mode 100644 index 0000000..296d9ac --- /dev/null +++ b/etc/onlyoffice/documentserver/production-windows.json @@ -0,0 +1,61 @@ +{ + "log": { + "filePath": "../../../config/log4js/production.json" + }, + "storage": { + "fs": { + "folderPath": "../../App_Data/cache/files" + } + }, + "services": { + "CoAuthoring": { + "server": { + "static_content": { + "/fonts": { + "path": "../../../fonts", + "options": {"maxAge": "7d"} + }, + "/sdkjs": { + "path": "../../../sdkjs", + "options": {"maxAge": "7d"} + }, + "/web-apps": { + "path": "../../../web-apps", + "options": {"maxAge": "7d"} + }, + "/sdkjs-plugins": { + "path": "../../../sdkjs-plugins", + "options": {"maxAge": "7d"} + }, + "/welcome": { + "path": "../../welcome", + "options": {"maxAge": "7d"} + }, + "/info": { + "path": "../../info", + "options": {"maxAge": "7d"} + } + } + }, + "utils": { + "utils_common_fontdir": "C:\\Windows\\Fonts" + }, + "sockjs": { + "sockjs_url": "/web-apps/vendor/sockjs/sockjs.min.js" + } + } + }, + "license": { + "license_file": "./../../license.lic", + "warning_limit_percents": "70" + }, + "FileConverter": { + "converter": { + "fontDir": "", + "presentationThemesDir": "../../../sdkjs/slide/themes", + "x2tPath": "../../FileConverter/bin/x2t.exe", + "docbuilderPath": "../../FileConverter/bin/docbuilder.exe", + "docbuilderAllFontsPath": "../../App_Data/docbuilder/AllFonts.js" + } + } +} diff --git a/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-converter.conf b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-converter.conf new file mode 100644 index 0000000..3eff6a4 --- /dev/null +++ b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-converter.conf @@ -0,0 +1,13 @@ +[program:converter] +command=node --max_old_space_size=4096 /var/www/onlyoffice/documentserver/server/FileConverter/sources/convertermaster.js +directory=/var/www/onlyoffice/documentserver/server/FileConverter/sources/ +user=onlyoffice +environment=NODE_ENV=production-linux,NODE_CONFIG_DIR=/etc/onlyoffice/documentserver,NODE_DISABLE_COLORS=1 +stdout_logfile=/var/log/onlyoffice/documentserver/converter/out.log +stdout_logfile_backups=0 +stdout_logfile_maxbytes=0 +stderr_logfile=/var/log/onlyoffice/documentserver/converter/err.log +stderr_logfile_backups=0 +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true diff --git a/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-docservice.conf b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-docservice.conf new file mode 100644 index 0000000..b1dfa23 --- /dev/null +++ b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-docservice.conf @@ -0,0 +1,13 @@ +[program:docservice] +command=node --max_old_space_size=4096 /var/www/onlyoffice/documentserver/server/DocService/sources/server.js +directory=/var/www/onlyoffice/documentserver/server/DocService/sources/ +user=onlyoffice +environment=NODE_ENV=production-linux,NODE_CONFIG_DIR=/etc/onlyoffice/documentserver,NODE_DISABLE_COLORS=1 +stdout_logfile=/var/log/onlyoffice/documentserver/docservice/out.log +stdout_logfile_backups=0 +stdout_logfile_maxbytes=0 +stderr_logfile=/var/log/onlyoffice/documentserver/docservice/err.log +stderr_logfile_backups=0 +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true diff --git a/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-gc.conf b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-gc.conf new file mode 100644 index 0000000..f1baf67 --- /dev/null +++ b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-gc.conf @@ -0,0 +1,13 @@ +[program:gc] +command=node /var/www/onlyoffice/documentserver/server/DocService/sources/gc.js +directory=/var/www/onlyoffice/documentserver/server/DocService/sources/ +user=onlyoffice +environment=NODE_ENV=production-linux,NODE_CONFIG_DIR=/etc/onlyoffice/documentserver,NODE_DISABLE_COLORS=1 +stdout_logfile=/var/log/onlyoffice/documentserver/gc/out.log +stdout_logfile_backups=0 +stdout_logfile_maxbytes=0 +stderr_logfile=/var/log/onlyoffice/documentserver/gc/err.log +stderr_logfile_backups=0 +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true diff --git a/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-metrics.conf b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-metrics.conf new file mode 100644 index 0000000..3e80a74 --- /dev/null +++ b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-metrics.conf @@ -0,0 +1,13 @@ +[program:metrics] +command=node /var/www/onlyoffice/documentserver/server/Metrics/node_modules/statsd/stats.js ../../config/config.js +directory=/var/www/onlyoffice/documentserver/server/Metrics/node_modules/statsd +user=onlyoffice +environment=NODE_DISABLE_COLORS=1 +stdout_logfile=/var/log/onlyoffice/documentserver/metrics/out.log +stdout_logfile_backups=0 +stdout_logfile_maxbytes=0 +stderr_logfile=/var/log/onlyoffice/documentserver/metrics/err.log +stderr_logfile_backups=0 +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true diff --git a/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-spellchecker.conf b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-spellchecker.conf new file mode 100644 index 0000000..72a971a --- /dev/null +++ b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver-spellchecker.conf @@ -0,0 +1,13 @@ +[program:spellchecker] +command=node /var/www/onlyoffice/documentserver/server/SpellChecker/sources/server.js +directory=/var/www/onlyoffice/documentserver/server/SpellChecker/sources/ +user=onlyoffice +environment=NODE_ENV=production-linux,NODE_CONFIG_DIR=/etc/onlyoffice/documentserver,NODE_DISABLE_COLORS=1 +stdout_logfile=/var/log/onlyoffice/documentserver/spellchecker/out.log +stdout_logfile_backups=0 +stdout_logfile_maxbytes=0 +stderr_logfile=/var/log/onlyoffice/documentserver/spellchecker/err.log +stderr_logfile_backups=0 +stderr_logfile_maxbytes=0 +autostart=true +autorestart=true diff --git a/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver.conf b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver.conf new file mode 100644 index 0000000..3ca067e --- /dev/null +++ b/etc/onlyoffice/documentserver/supervisor/onlyoffice-documentserver.conf @@ -0,0 +1,2 @@ +[group:onlyoffice-documentserver] +programs=docservice,converter,spellchecker,metrics,gc diff --git a/etc/supervisor/conf.d/onlyoffice-documentserver-converter.conf b/etc/supervisor/conf.d/onlyoffice-documentserver-converter.conf new file mode 120000 index 0000000..c284f97 --- /dev/null +++ b/etc/supervisor/conf.d/onlyoffice-documentserver-converter.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/supervisor/onlyoffice-documentserver-converter.conf \ No newline at end of file diff --git a/etc/supervisor/conf.d/onlyoffice-documentserver-docservice.conf b/etc/supervisor/conf.d/onlyoffice-documentserver-docservice.conf new file mode 120000 index 0000000..7405333 --- /dev/null +++ b/etc/supervisor/conf.d/onlyoffice-documentserver-docservice.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/supervisor/onlyoffice-documentserver-docservice.conf \ No newline at end of file diff --git a/etc/supervisor/conf.d/onlyoffice-documentserver-gc.conf b/etc/supervisor/conf.d/onlyoffice-documentserver-gc.conf new file mode 120000 index 0000000..3d48450 --- /dev/null +++ b/etc/supervisor/conf.d/onlyoffice-documentserver-gc.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/supervisor/onlyoffice-documentserver-gc.conf \ No newline at end of file diff --git a/etc/supervisor/conf.d/onlyoffice-documentserver-metrics.conf b/etc/supervisor/conf.d/onlyoffice-documentserver-metrics.conf new file mode 120000 index 0000000..6591e66 --- /dev/null +++ b/etc/supervisor/conf.d/onlyoffice-documentserver-metrics.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/supervisor/onlyoffice-documentserver-metrics.conf \ No newline at end of file diff --git a/etc/supervisor/conf.d/onlyoffice-documentserver-spellchecker.conf b/etc/supervisor/conf.d/onlyoffice-documentserver-spellchecker.conf new file mode 120000 index 0000000..35a9d96 --- /dev/null +++ b/etc/supervisor/conf.d/onlyoffice-documentserver-spellchecker.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/supervisor/onlyoffice-documentserver-spellchecker.conf \ No newline at end of file diff --git a/etc/supervisor/conf.d/onlyoffice-documentserver.conf b/etc/supervisor/conf.d/onlyoffice-documentserver.conf new file mode 120000 index 0000000..4b660b9 --- /dev/null +++ b/etc/supervisor/conf.d/onlyoffice-documentserver.conf @@ -0,0 +1 @@ +../../onlyoffice/documentserver/supervisor/onlyoffice-documentserver.conf \ No newline at end of file