当前位置: 首页 > article >正文

docker-compose部署onlyoffice8.3.0并支持ssl,且支持通过nginx代理,关闭JWT配置

编写docker-compose文件


mkdir -p /data/onlyoffice && echo "version: '3'services:onlyoffice:container_name: OnlyOfficeimage: onlyoffice/documentserver:8.3.0restart: alwaysports:- 8088:80- 64431:443environment:TZ: Asia/ShanghaiJWT_ENABLED: 'false'volumes:- ./app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice- ./app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data- ./app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice- ./app/onlyoffice/DocumentServer/db:/var/lib/postgresql- ./certs:/etc/onlyoffice/certs- ./certs/ds.conf:/etc/onlyoffice/documentserver/nginx/ds.conf- ./default.json:/etc/onlyoffice/documentserver/default.json" > /data/onlyoffice/docker-compose.yml && echo '{"statsd": {"useMetrics": false,"host": "localhost","port": "8125","prefix": "ds."},"log": {"filePath": "","options": {"replaceConsole": true}},"queue": {"type": "rabbitmq","visibilityTimeout": 300,"retentionPeriod": 900},"email": {"smtpServerConfiguration": {"host": "localhost","port": 587,"auth": {"user": "","pass": ""}},"connectionConfiguration": {"disableFileAccess": false,"disableUrlAccess": false},"contactDefaults": {"from": "from@example.com","to": "to@example.com"}},"notification": {"rules": {"licenseExpirationWarning": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license expiration warning","body": "Attention! Your license is about to expire on %s.\nUpon reaching this date, you will no longer be entitled to receive personal technical support and install new Docs versions released after this date."},"policies": {"repeatInterval": "1d"}},"licenseExpirationError": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license expiration warning","body": "Attention! Your license expired on %s.\nYou are no longer entitled to receive personal technical support and install new Docs versions released after this date.\nPlease contact sales@onlyoffice.com to discuss license renewal."},"policies": {"repeatInterval": "1d"}},"licenseLimitEdit": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license connection limit warning","body": "Attention! You have reached %s%% of the %s limit set by your license."},"policies": {"repeatInterval": "1h"}},"licenseLimitLiveViewer": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license connection limit warning","body": "Attention! You have reached %s%% of the live viewer %s limit set by your license."},"policies": {"repeatInterval": "1h"}}}},"storage": {"name": "storage-fs","fs": {"folderPath": "","urlExpires": 900,"secretString": "verysecretstring"},"region": "","endpoint": "http://localhost/s3","bucketName": "cache","storageFolderName": "files","cacheFolderName": "data","urlExpires": 604800,"accessKeyId": "AKID","secretAccessKey": "SECRET","sslEnabled": true,"s3ForcePathStyle": true,"externalHost": ""},"persistentStorage": {},"rabbitmq": {"url": "amqp://localhost:5672","socketOptions": {},"exchangepubsub": {"name": "ds.pubsub","options": {"durable": true}},"queuepubsub": {"name": "","options": {"autoDelete": true,"exclusive": true,"arguments": {"x-queue-type": "classic"}}},"queueconverttask": {"name": "ds.converttask6","options": {"durable": true,"maxPriority": 6,"arguments": {"x-queue-type": "classic"}}},"queueconvertresponse": {"name": "ds.convertresponse","options": {"durable": true,"arguments": {"x-queue-type": "classic"}}},"exchangeconvertdead": {"name": "ds.exchangeconvertdead","options": {"durable": true}},"queueconvertdead": {"name": "ds.convertdead","options": {"durable": true,"arguments": {"x-queue-type": "classic"}}},"queuedelayed": {"name": "ds.delayed","options": {"durable": true,"arguments": {"x-queue-type": "classic"}}}},"activemq": {"connectOptions": {"port": 5672,"host": "localhost","reconnect": false},"queueconverttask": "ds.converttask","queueconvertresponse": "ds.convertresponse","queueconvertdead": "ActiveMQ.DLQ","queuedelayed": "ds.delayed","topicpubsub": "ds.pubsub"},"dnscache": {"enable" : true,"ttl" : 300,"cachesize" : 1000},"openpgpjs": {"config": {},"encrypt": {"passwords": ["verysecretstring"]},"decrypt": {"passwords": ["verysecretstring"]}},"aesEncrypt": {"config": {"keyByteLength": 32,"saltByteLength": 64,"initializationVectorByteLength": 16,"iterationsByteLength": 5},"secret": "verysecretstring"},"bottleneck": {"getChanges": {}},"win-ca": {"inject": "+"},"wopi": {"enable": false,"host" : "","htmlTemplate" : "../../web-apps/apps/api/wopi","wopiZone" : "external-http","favIconUrlWord" : "/web-apps/apps/documenteditor/main/resources/img/favicon.ico","favIconUrlCell" : "/web-apps/apps/spreadsheeteditor/main/resources/img/favicon.ico","favIconUrlSlide" : "/web-apps/apps/presentationeditor/main/resources/img/favicon.ico","favIconUrlPdf" : "/web-apps/apps/pdfeditor/main/resources/img/favicon.ico","favIconUrlDiagram" : "/web-apps/apps/visioeditor/main/resources/img/favicon.ico","fileInfoBlockList" : ["FileUrl"],"pdfView": ["djvu", "xps", "oxps"],"pdfEdit": ["pdf"],"forms": ["pdf"],"wordView": ["doc", "dotm", "dot", "fodt", "ott", "rtf", "mht", "mhtml", "html", "htm", "xml", "epub", "fb2", "sxw", "stw", "wps", "wpt", "pages", "docxf", "oform"],"wordEdit": ["docx", "dotx", "docm", "odt", "txt"],"cellView": ["xls", "xlsb", "xltm", "xlt", "fods", "ots", "sxc", "xml", "et", "ett", "numbers"],"cellEdit": ["xlsx", "xltx", "xlsm", "ods", "csv"],"slideView": ["ppt", "ppsx", "ppsm", "pps", "potm", "pot", "fodp", "otp", "sxi", "dps", "dpt", "key"],"slideEdit": ["pptx", "potx", "pptm", "odp"],"diagramView": [],"diagramEdit": [],"publicKey": "","modulus": "","exponent": 65537,"privateKey": "","publicKeyOld": "","modulusOld": "","exponentOld": 65537,"privateKeyOld": "","refreshLockInterval": "10m","dummy" : {"enable": false,"sampleFilePath": ""}},"tenants": {"baseDir": "","baseDomain": "","filenameConfig": "config.json","filenameSecret": "secret.key","filenameLicense": "license.lic","defaultTenant": "localhost","cache" : {"stdTTL": 300,"checkperiod": 60,"useClones": false}},"externalRequest": {"directIfIn" : {"allowList": [],"jwtToken": true},"action": {"allow": true,"blockPrivateIP": true,"proxyUrl": "","proxyUser": {"username": "","password": ""},"proxyHeaders": {}}},"services": {"CoAuthoring": {"server": {"port": 8000,"workerpercpu": 1,"mode": "development","limits_tempfile_upload": 104857600,"limits_image_size": 26214400,"limits_image_download_timeout": {"connectionAndInactivity": "2m","wholeCycle": "2m"},"callbackRequestTimeout": {"connectionAndInactivity": "10m","wholeCycle": "10m"},"healthcheckfilepath": "../public/healthcheck.docx","savetimeoutdelay": 5000,"edit_singleton": false,"forgottenfiles": "forgotten","forgottenfilesname": "output","maxRequestChanges": 20000,"openProtectedFile": true,"isAnonymousSupport": true,"editorDataStorage": "editorDataMemory","editorStatStorage": "","assemblyFormatAsOrigin": true,"newFileTemplate" : "../../document-templates/new","downloadFileAllowExt": ["pdf", "xlsx"],"tokenRequiredParams": true,"forceSaveUsingButtonWithoutChanges": false},"requestDefaults": {"headers": {"User-Agent": "Node.js/6.13","Connection": "Keep-Alive"},"gzip": true,"rejectUnauthorized": true},"autoAssembly": {"enable": false,"interval": "5m","step": "1m"},"utils": {"utils_common_fontdir": "null","utils_fonts_search_patterns": "*.ttf;*.ttc;*.otf","limits_image_types_upload": "jpg;jpeg;jpe;png;gif;bmp;svg;tiff;tif"},"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,"pgPoolExtraOptions": {"idleTimeoutMillis": 30000,"maxLifetimeSeconds ": 60000,"statement_timeout ": 60000,"query_timeout  ": 60000,"connectionTimeoutMillis": 60000},"damengExtraOptions": {"columnNameUpperCase": false,"columnNameCase": "lower","connectTimeout": 60000,"loginEncrypt": false,"localTimezone": 0,"poolTimeout": 60,"socketTimeout": 60000,"queueTimeout": 60000},"oracleExtraOptions": {"connectTimeout": 60},"msSqlExtraOptions": {"options": {"encrypt": false,"trustServerCertificate": true},"pool": {"idleTimeoutMillis": 30000}},"mysqlExtraOptions": {"connectTimeout": 60000,"queryTimeout": 60000}},"redis": {"name": "redis","prefix": "ds:","host": "127.0.0.1","port": 6379,"options": {},"optionsCluster": {},"iooptions": {"lazyConnect": true},"iooptionsClusterNodes": [],"iooptionsClusterOptions": {"lazyConnect": true}},"pubsub": {"maxChanges": 1000},"expire": {"saveLock": 60,"presence": 300,"locks": 604800,"changeindex": 86400,"lockDoc": 30,"message": 86400,"lastsave": 604800,"forcesave": 604800,"forcesaveLock": 5000,"saved": 3600,"documentsCron": "0 */2 * * * *","files": 86400,"filesCron": "00 00 */1 * * *","filesremovedatonce": 100,"sessionidle": "1h","sessionabsolute": "30d","sessionclosecommand": "2m","pemStdTTL": "1h","pemCheckPeriod": "10m","updateVersionStatus": "5m","monthUniqueUsers": "1y"},"ipfilter": {"rules": [{"address": "*", "allowed": true}],"useforrequest": false,"errorcode": 403},"request-filtering-agent" : {"allowPrivateIPAddress": true,"allowMetaIPAddress": true},"secret": {"browser": {"string": "secret", "file": ""},"inbox": {"string": "secret", "file": ""},"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,"urlExclusionRegex": ""},"session": {"algorithm": "HS256","expires": "30d"},"verifyOptions": {"clockTolerance": 60}},"plugins": {"uri": "/sdkjs-plugins","autostart": []},"themes": {"uri": "/web-apps/apps/common/main/resources/themes"},"editor":{"spellcheckerUrl": "","reconnection":{"attempts": 50,"delay": "2s"},"binaryChanges": false,"websocketMaxPayloadSize": "1.5MB","maxChangesSize": "150MB"},"sockjs": {"sockjs_url": "","disable_cors": true,"websocket": true},"socketio": {"connection": {"path": "/doc/","serveClient": false,"pingTimeout": 20000,"pingInterval": 25000,"maxHttpBufferSize": 1e8}},"callbackBackoffOptions": {"retries": 0,"timeout":{"factor": 2,"minTimeout": 1000,"maxTimeout": 2147483647,"randomize": false},"httpStatus": "429,500-599"}}},"license" : {"license_file": "","warning_limit_percents": 70,"packageType": 0,"warning_license_expiration": "30d"},"FileConverter": {"converter": {"maxDownloadBytes": 104857600,"downloadTimeout": {"connectionAndInactivity": "2m","wholeCycle": "2m"},"downloadAttemptMaxCount": 3,"downloadAttemptDelay": 1000,"maxprocesscount": 1,"fontDir": "null","presentationThemesDir": "null","x2tPath": "null","docbuilderPath": "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"}}]}}
}
' > /data/onlyoffice/default.json && mkdir -p /data/onlyoffice/certs && cd /data/onlyoffice/certs && echo 'include /etc/nginx/includes/http-common.conf;
server {listen 0.0.0.0:80;listen [::]:80 default_server;server_tokens off;set $secure_link_secret ;include /etc/nginx/includes/ds-*.conf;
}
server {listen 443 ssl;listen [::]:443;server_name localhost;ssl_certificate /etc/onlyoffice/certs/onlyoffice.crt;ssl_certificate_key /etc/onlyoffice/certs/onlyoffice.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;server_tokens off;set $secure_link_secret ;include /etc/nginx/includes/ds-*.conf;
}' > ds.conf && echo '-----BEGIN CERTIFICATE-----
MIIFATCCA+mgAwIBAgISBCJAwtsL2l5x1rHhX7tj3dytMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTAwHhcNMjUwMTE2MDUxMDM5WhcNMjUwNDE2MDUxMDM4WjAZMRcwFQYDVQQD
Ew5scDIwNzY2MzQzNi5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANZ912eyDY9WHTQSlFyGQwhPCGwZQxsjyFv0fH8X0g/J8GGTdq0R/Qsa8wsdem7/
xQju3U1NhnWqWLPl4jG2EYjGqbp60vDlXIBOmdQ4LoGPHNT7x0oVH/PGKYcqcu2Q
dohKgNJ54v+CCEDuVeyyP6bfgsVdO2fgHovPsQXgia4m1XoxOdluDN16LCO7CTv4
eJ/eKjEcO66yNOSAw7wExdnhi3RYmy/KEdp1ItM3fGgSeY/K5oNls4Y0A+5N9N8R
6XaPacfdH1Dp2pSDTItUIADaI8yWloN6rlOXnuLB5BfLg1ByN8Eq7POmJWN+WQvg
oFRjCgIcPoOowcY4oW6Jy/8CAwEAAaOCAicwggIjMA4GA1UdDwEB/wQEAwIFoDAd
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNV
HQ4EFgQUaqd4GOj2VxUBxkYshYNSqNhe3pwwHwYDVR0jBBgwFoAUu7zDR6XkvKnG
w6RyDBCNojXhyOgwVwYIKwYBBQUHAQEESzBJMCIGCCsGAQUFBzABhhZodHRwOi8v
cjEwLm8ubGVuY3Iub3JnMCMGCCsGAQUFBzAChhdodHRwOi8vcjEwLmkubGVuY3Iu
b3JnLzAvBgNVHREEKDAmghRpbm5lci5scDIwNzY2MzQzNi5jboIObHAyMDc2NjM0
MzYuY24wEwYDVR0gBAwwCjAIBgZngQwBAgEwggEDBgorBgEEAdZ5AgQCBIH0BIHx
AO8AdQDM+w9qhXEJZf6Vm1PO6bJ8IumFXA2XjbapflTA/kwNsAAAAZRtutu9AAAE
AwBGMEQCICGcbaLk28GCrCkA6XsasJgUp/L1Q+DgYxVJ3mOGUk/bAiAx23T2HavM
+Pa9OJi6hEksz8ASJ68juphzpZzs+/Q87gB2ABNK3xq1mEIJeAxv70x6kaQWtyNJ
zlhXat+u2qfCq+AiAAABlG263FIAAAQDAEcwRQIgfBTRf/3Ze4gtcI4UEdP9sm8T
ALJFjwTD0isvqCyvqoUCIQD/i3a3tuDoDhDkq7dnEO2JYf8UcDmzSyvp7AsE36V1
ZDANBgkqhkiG9w0BAQsFAAOCAQEAvP3SQRQu7sl9ofnBUX8lK/tjDt8Q1tVblr2N
qxYTZGV6lGIEX5up/lnf06swyVor0XKxenkTLJFJJbLgJY4xL5I+neom4knWr5dW
BiggsoEuhaRTYIbVcVACLz2DW7ek+1nn4xpMEXT9lFNsew982plInINalj9li/Kg
3PEg6KoKCf9hgNkEN3tMkWHUPzu5x0GQPYerR0U61bDhyHX9DKQYqvrPCMCBSjf7
2aH2TQQSgpAgVflBAFRPVuBoO4+iLf/O6l+cLGjvsvry+xdJ7RE2gsqu1UlsM2pv
isOalHzm3CiinJpwEHBHUpDPA7WfAujt8SiCK3rS/VIBOUXWsA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL
YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a
/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4
FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR
mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3
DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5
tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo
zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd
u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9
1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0
GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh
1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ
QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N
4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz
rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei
RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx
KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54=
-----END CERTIFICATE-----' > onlyoffice.crt && echo '-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDWfddnsg2PVh00
EpRchkMITwhsGUMbI8hb9Hx/F9IPyfBhk3atEf0LGvMLHXpu/8UI7t1NTYZ1qliz
5eIxthGIxqm6etLw5VyATpnUOC6BjxzU+8dKFR/zximHKnLtkHaISoDSeeL/gghA
7lXssj+m34LFXTtn4B6Lz7EF4ImuJtV6MTnZbgzdeiwjuwk7+Hif3ioxHDuusjTk
gMO8BMXZ4Yt0WJsvyhHadSLTN3xoEnmPyuaDZbOGNAPuTfTfEel2j2nH3R9Q6dqU
g0yLVCAA2iPMlpaDeq5Tl57iweQXy4NQcjfBKuzzpiVjflkL4KBUYwoCHD6DqMHG
OKFuicv/AgMBAAECggEAURHWUTS8qFEJj614EvKSMnlAuy7fLMpdB9iEF7tmo54V
c6P7ZpXWeRSSCUD2ji6xB9vUnEuxhxbAGRrJ4DUrMnG4JCoZQYDHch2DSfGELmbr
pFqXrBoI7igXeSWjs8P28TOLtkHoeN9qhDQxGNoUcdun/zXqZqwQj5KMG6cPEtmc
MTn2lbqihLkw12Ujjvh9x1blOKfWf6g/+GPLMFGSMgBxNSsBNUcdOUnpBLwo6c/v
tsZtpvVf5Eds9dT7ak2FszM2l9J8MAsbhEmMZZ3gEL5014plu6+ScDIhm68nmeKy
M2DDGCBgV74HV+NIkDqOx4O45hhO1MX5z6+b2YfVGQKBgQD6Kv/vCcXjvNgRy3Rr
SP3hALlXfddNHHEpe5xN68obLmOjI6CF5Tng2iNtgQshocbBBZLdIRdyU5RCbfnA
Dah3qNKuNRPBHQdRen3hC30TcD9zm/Il9plZDa8/v4mct6IoNl1MP4PKX2XcpYwc
pcIkZlD2Kv2NL0rJ/mf/Ru1XpwKBgQDbfezcn7ixoxqKKYAa7sxDfLjEIfsiWApT
RESgGkABJr/Q4+KvTxjQMgtF35VgRJLxgOkurGQVXwJRLI4W4qFkcYu/Xv9rVTTn
ZJjRtFP69p1JXPtNKwLOdQDE5Ysz8MOXtxRE5iuPsYf4mzGkEWHXcHndynJ7w1hN
sqUSUVNz6QKBgQDJotTsfy0QVUq2dQ1d19RBgcrhmR1rGqyfKfGe4Jji9a37dSDS
KyNOd6Qsg+FL90/yjiKEt0JltLYAIRI3WQrbf6hoH4HPmi0m4BsLw63JeCS8cwpm
zO9m1t/U+vXY6i36SW9DoMIB4IiCorBe+r+ThSBmedop7N9UFgkOucVdawKBgQDH
zx6syQnNS/mBBL6FxhVU6lkY0wZXAWaE3oTKapsRcUD03D8j8BFalfQFK8BD3qkW
CJA92NlTSyZE1xaSZsUdNvBMyiIih3KdosorPMmmkJImkuqCGUF4yLJmi7/pDKhB
mHxvLElDig2Jl13dSaWUBeQqr30AhZgBQztaLYaW4QKBgQDMz2HWZ/Iqny9o9cad
jjiNsdvtxrdGxbI9F4CEfRw1TQ2+OtH8GxnbExeGayZMDWZ6yEAYd/DppcnI/IyW
YTtWw8js44D+AAMH2rrR+cst3kSrORVdYryWoCWDMw03MUpDwzWuLmZAqBGnLw4C
m2Kt/wvsjQiG97ITT0i8zRl0Yg==
-----END PRIVATE KEY-----' > onlyoffice.key && cd ..
docker-compose up -d

进入容器后的操作

docker exec -it OnlyOffice bash
获取到对应的秘钥字符串
cat /etc/onlyoffice/documentserver/local.json
## 将获取到的下面的secretString中的字符串记录好,后面的操作会用到
"storage": {"fs": {"secretString": "xxxxx"}}
赋值上面的数据(xxxxx替换为对应的字符)
sed -i 's#set $secure_link_secret ;#set $secure_link_secret xxxxx;#g' /etc/nginx/conf.d/ds.conf && nginx

nginx代理

此时直接通过http://ip:8088或通过https://ip:64431都可以成功访问,下面是通过nginx做https代理的方法,http的代理同样的操作

    location /web-apps/apps/api {proxy_pass https://localhost:64431;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_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}location /8.3.0 {proxy_pass https://localhost:64431;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_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}location /cache/files/data/2 {proxy_pass https://localhost:64431;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_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}

我的服务器ip是192.168.14.184,可以创建html测试是否能成功预览,其中http://192.168.14.205:20020/software/cd46a0fab3614d7d8519ec58b5672529.docx需要更改成自己可下载的文件地址

<!DOCTYPE html>
<html style="height: 100%;">
<head><title>ONLYOFFICE Api Documentation</title>
</head>
<body style="height: 100%; margin: 0;"><div id="placeholder" style="height: 100%"></div><script type="text/javascript" src="https://192.168.14.184/web-apps/apps/api/documents/api.js"></script><script type="text/javascript">let editorConfig = {"secret":"kg3Zrcx8Rg4DEuQH83jrUpPMy7svxOGJ","lang": "zh-CN",//设置ONLYOFFICE编辑器语言为中文//保存文档时最终的回调接口,用于保存在线编辑的文件到存储//"callbackUrl": "http://192.168.2.62:24005/prod-api/file/upload","lang": "zh-CN",//设置ONLYOFFICE编辑器语言为中文"mode": "edit",//设置只读时使用的配置,不加则默认表示允许编辑(只读时不需要填不加callbackUrl配置)"customization": {"anonymous": { // set name for anonymous user"request": false, // enable set name"label": "aaa" // postfix for user name},},user: {id: '1232',name: '夏XX',group: 'group name' // for customization.reviewPermissions or permissions.reviewGroups or permissions.commentGroups. Can be multiple groups separated by commas (,) : 'Group1' or 'Group1,Group2'},}/*ONLYOFFICE编辑器有三种主要外观,针对不同用途进行了优化,可通过type属性予以配置:desktop,针对桌面计算机浏览器中的显示进行了优化;mobile,针对移动设备浏览器中的显示进行了优化;embedded,针对将文档嵌入网页进行了优化。*/window.docEditor = new DocsAPI.DocEditor("placeholder",{"document": {type: "embedded",//编辑器外观,"fileType": "docx","key": "2","title": "3TR069.xlsx","url": "http://192.168.14.205:20020/software/cd46a0fab3614d7d8519ec58b5672529.docx"},"documentType": "word","editorConfig": {"mode": "view"},"height": "100%","width": "100%",editorConfig: editorConfig});</script>
</body>
</html>

预览截图
在这里插入图片描述

相关文章:

docker-compose部署onlyoffice8.3.0并支持ssl,且支持通过nginx代理,关闭JWT配置

编写docker-compose文件 mkdir -p /data/onlyoffice && echo "version: 3services:onlyoffice:container_name: OnlyOfficeimage: onlyoffice/documentserver:8.3.0restart: alwaysports:- 8088:80- 64431:443environment:TZ: Asia/ShanghaiJWT_ENABLED: falsevol…...

如何配置虚拟机的IP上网

要配置虚拟机的IP地址以便上网&#xff0c;你可以按照以下步骤操作&#xff1a; 打开虚拟机软件&#xff0c;确保虚拟机的网络设置为“桥接模式”或“NAT模式”&#xff0c;这样虚拟机可以与物理网络连接。 在虚拟机操作系统中&#xff0c;打开网络设置界面&#xff0c;一般在…...

【tplink】校园网接路由器如何单独登录自己的账号,wan-lan和lan-lan区别

老式路由器TPLINK&#xff0c;接入校园网后一人登录&#xff0c;所有人都能通过连接此路由器上网&#xff0c;无法解决遂上网搜索&#xff0c;无果&#xff0c;幸而偶然看到一个帖子说要把信号源网线接入路由器lan口&#xff0c;开启新世界。 一、wan-lan&#xff0c;lan-lan区…...

Python--内置模块和开发规范(下)

2. 开发规范 2.1 单文件应用 文件结构示例 # 文件注释 import os import jsonDB_PATH "data.json" # 常量放顶部def load_data():"""函数注释&#xff1a;加载数据"""if os.path.exists(DB_PATH):with open(DB_PATH, "r"…...

DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?

2025年2月28日&#xff0c;DeepSeek开源周迎来了第五天&#xff0c;也是本次活动的收官之日。自2月24日启动以来&#xff0c;DeepSeek团队以每天一个开源项目的节奏&#xff0c;陆续向全球开发者展示了他们在人工智能基础设施领域的最新成果。今天&#xff0c;他们发布了Fire-F…...

[密码学实战]Java实现SM2数字信封(结合SM4对称加密)生成与解析

一、代码运行结果 二、什么是数字信封 2.1 基本概念 数字信封(Digital Envelope) 是一种结合对称加密与非对称加密的混合加密技术,通过以下步骤实现高效安全的数据传输: 对称加密:使用SM4算法加密原始数据,处理速度快,适合大数据量。非对称加密:使用SM2公钥加密SM4密…...

redis序列化设置

redis序列化设置 redis序列化设置序列化对象里有org.joda.time.DateTime1&#xff09;、报错内容如下2&#xff09;、解决方案&#xff1a;分别自定义时间的序列化和反序列化&#xff0c;以对象形式关联到redisTemplate redis序列化设置 redis序列化设置&#xff0c;通过自定义…...

Sqlserver安全篇之_TLS的证书概念

证书的理解 参考Sqlserver的官方文档https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/certificate-overview?viewsql-server-ver16 TLS(Transport Layer Security)传输层安全和SSL(Secure Sockets Layer)安全套接字层协议位于应用程序协议层和TCP/…...

【HarmonyOS Next】 鸿蒙应用useNormalizedOHMUrl详解

【HarmonyOS Next】 鸿蒙应用useNormalizedOHMUrl详解 一、useNormalizedOHMUrl是什么? useNormalizedOHMUrl指的是是否使用标准化OHMUrl拼接。 在开发过程中&#xff0c;需要根据不同的环境或配置动态生成 URL。例如&#xff0c;在加载一些远程模块或者资源时&#xff0c;…...

Oracle 查询表空间使用情况及收缩数据文件

本文介绍Oracle收缩数据文件的相关操作&#xff0c;运维工作中有时会需要通过收缩数据文件来释放磁盘空间。 数据文件初始化方式&#xff1a; 1.我们创建表空间一般有两种方式初始化其数据文件&#xff0c;即指定初始大小为32G&#xff08;很大的值&#xff09;或指定初始大小为…...

怎么进行mysql的优化?

MySQL 的优化是一个系统性的工作&#xff0c;涉及多个层面&#xff0c;包括查询优化、索引优化、配置优化、架构优化等。以下是一些常见的 MySQL 优化方法&#xff1a; 查询优化 避免全表扫描&#xff1a;确保查询能够使用索引&#xff0c;避免 SELECT *&#xff0c;只选择需要…...

docker-compose方式启动Kafka Sasl加密认证(无zk)

首先参考文档&#xff0c;思考过程可以进行参考https://juejin.cn/post/7294556533932884020#heading-3 用的镜像是Bitnami&#xff0c;对SASL配置进行了简化&#xff0c;需要按照特定格式去配置jass验证 完整配置如下 镜像版本参考&#xff1a;https://hub.docker.com/r/bitn…...

Grafana接入Zabbix数据源

1. 对接 Zabbix 1.1 安装 Zabbix 插件 在线安装&#xff1a; 1.2 配置 Zabbix 数据源 点击 Configuration > Data Sources > Add data source。选择 Zabbix&#xff0c;填写&#xff1a; URL&#xff1a;http://<zabbix-server>/api_jsonrpc.phpUsername&#x…...

华为在不同发展时期的战略选择(节选)

华为在不同发展时期的战略选择&#xff08;节选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 来源&#xff1a;谢宁专著《华为战略管理法&#xff1a;DSTE实战体系》。本文有节选修改。 导言 从目前所取得的成就往回看&#xff0c;华为…...

【计算机网络】TCP协议相关总结,TCP可靠性的生动讲解

TCP 可靠性 确保快递不丢、不乱、不过载 机制作用&#xff08;快递类比&#xff09;防止的问题检验和检查包裹是否损坏&#xff0c;损坏就重新发数据出错序列号给每个包裹编号&#xff0c;按顺序整理乱序、重复确认应答每送到一件&#xff0c;就让收件人签收丢失滑动窗口控制…...

lua基础语法学习

lua基础语法学习 文章目录 lua基础语法学习1. 基础2. 输入输出3. 分支结构与循环结构4. 函数5. 元表与元方法6. 面向对象 1. 基础 注释 --单行注释--[[ 多行注释 --]]标识符 标识符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上 0 个或多个字母&#xff0c;下划线&…...

【个人开发】deepspeed+Llama-factory 本地数据多卡Lora微调【完整教程】

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.3.1 zero-1微调2.2.3.2 zero-2微调2.2.3.3 zero-3微调2.2.3.4 单卡Lora微调 2.2.4 实验2.2.4.1 实验1&#xff1a;多GPU微调-zero12.2.4.2 实验2&#xff1a;…...

【SpringBoot】数据访问技术spring Data、 JDBC、MyBatis、JSR-303校验

Spring Boot 数据访问技术及特性 目录标题 Spring Boot 数据访问技术及特性摘要1. 引言2. Spring Data架构与原理2.1 Spring Data概述2.2 Spring Data核心组件2.3 Spring Boot与Spring Data的集成机制 3. Spring Boot与JDBC的整合3.1 JDBC整合流程3.2 数据源自动配置3.3 JdbcTe…...

手机放兜里,支付宝“碰一下”被盗刷?

大家好&#xff0c;我是小悟。 近期&#xff0c;网络上关于“支付宝‘碰一下’支付易被盗刷”的传言甚嚣尘上&#xff0c;不少用户对此心生疑虑。 首先&#xff0c;要明确一点&#xff1a;“碰一下”支付并不会像某些传言中所描述的那样容易被隔空盗刷。这一观点已经得到了支付…...

Java Web应用中获取客户端的真实IP地址

Java Web应用中获取客户端的真实IP地址,尤其在存在代理服务器的情况下。 代码示例: public static String getClientIP(HttpServletRequest request) {String ip = parseCommaSeparatedIPs(request.getHeader("X-Forwarded-For"));if (isInvalid(ip)) {ip = pars…...

vue框架后遗症∶被遗忘的dom操作

用多了vue、react等前端框架&#xff0c;不得不说用数据驱动视图来开发真的很香&#xff0c;但是也免不了会有不用这些框架的项目&#xff0c;dom操作还是很有必要的&#xff0c;一开始学习网页设计的时候就教过&#xff0c;后面一直开发项目基本上用框架。虽然有些想不起来了&…...

基于深度学习+NLP豆瓣电影数据爬虫可视化推荐系统

博主介绍&#xff1a;资深开发工程师&#xff0c;从事互联网行业多年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有…...

8. 示例:对32位数据总线实现位宽和值域覆盖

文章目录 前言示例一&#xff1a;示例二&#xff1a;示例三&#xff1a;仿真与覆盖率分析覆盖点详细说明覆盖率提升技巧常见错误排查 示例四&#xff1a;仿真步骤 前言 针对32位数据总线实现位宽和值域的覆盖&#xff0c;并且能够用xrun运行&#xff0c;查看日志和波形。cover…...

深度剖析Seata源码:解锁分布式事务处理的核心逻辑

文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…...

快速列出MS Word中所有可用字体

Word中有很多字体&#xff0c;虽然在字体下拉列表中提供了字体的样例&#xff0c;但是并不全面&#xff0c;例如使用Batang字体的话&#xff0c;数字会显示成什么效果&#xff0c;就无法直观的看到。 打开Word应用程序&#xff0c;新建一个空白文档&#xff0c;按AltF11打开VBE…...

SpringDataJPA使用deleteAllInBatch方法逻辑删除失效

概述 在使用Spring Boot JPA时&#xff0c;执行批量删除操作时&#xff0c;遇到逻辑删除失效的问题。具体而言&#xff0c;当使用deleteAllInBatch方法时&#xff0c;数据会被物理删除&#xff0c;而不是进行逻辑删除&#xff1b;但是当使用deleteAll时&#xff0c;逻辑删除操…...

【密码学实战】Java 实现 SM2 国密算法(签名带id、验签及 C1C3C2 加密解密)

前言 SM2是中国国家密码管理局发布的椭圆曲线公钥密码算法标准&#xff08;GB/T 32918&#xff09;&#xff0c;属于国密算法体系。与RSA和ECDSA相比&#xff0c;SM2在相同安全强度下密钥更短、计算效率更高。本文将介绍如何在Java中实现SM2的密钥生成、数字签名、验签、加密及…...

flex布局自定义一行几栏,靠左对齐===grid布局

模板 <div class"content"><div class"item">1222</div><div class"item">1222</div><div class"item">1222</div><div class"item">1222</div><div class"…...

Harmony os next~鸿蒙应用开发入门教程

鸿蒙应用开发入门教程 基础准备与环境搭建 1. 了解鸿蒙系统 1.1 核心理念学习 HarmonyOS&#xff08;鸿蒙系统&#xff09;是华为推出的全场景分布式操作系统&#xff0c;其核心特点如下&#xff1a; 分布式能力 设备协同&#xff1a;手机、平板、智能手表、IoT设备等可无…...

使用 Ansys Discovery 高效创建角焊缝

概括 Ansys Discovery 2024R1 中的焊缝功能是一项重大改进&#xff0c;旨在简化和精简工程模拟中焊缝的分配过程。此功能集成了间歇焊缝等高级工具和功能&#xff0c;以更直观、更高效的方式促进焊缝的准备和分配。 该功能为工程师提供了无缝的工作流程&#xff0c;以准备和分…...