279 lines
5.8 KiB
JSON
279 lines
5.8 KiB
JSON
{
|
|
"module": "only-office",
|
|
"version": "1",
|
|
"slug": "office",
|
|
"provides": [
|
|
{
|
|
"name": "document-server",
|
|
"scope": "mesh",
|
|
"credential": {
|
|
"own": "jwt"
|
|
}
|
|
}
|
|
],
|
|
"serves": {
|
|
"document-server": {
|
|
"scheme": "http",
|
|
"port": 9070,
|
|
"public-root": "https://${bound:route:name}/"
|
|
}
|
|
},
|
|
"capabilities": [
|
|
"container-runtime"
|
|
],
|
|
"requires": [
|
|
"route"
|
|
],
|
|
"contributes": {
|
|
"route": {
|
|
"label": "office",
|
|
"endpoint": "web"
|
|
}
|
|
},
|
|
"seats": [
|
|
{
|
|
"name": "document-converter",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"convert"
|
|
]
|
|
}
|
|
],
|
|
"claims": [
|
|
{
|
|
"name": "document-converter",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"convert"
|
|
]
|
|
}
|
|
],
|
|
"streams": [
|
|
{
|
|
"name": "convert-asks",
|
|
"events": [
|
|
"convert.asked"
|
|
],
|
|
"max-age-days": 1,
|
|
"max-mib": 8,
|
|
"retention": "work-queue",
|
|
"max-deliveries": 3,
|
|
"duplicates": 24
|
|
}
|
|
],
|
|
"state": [
|
|
{
|
|
"name": "convert-answers",
|
|
"ttl-seconds": 600
|
|
}
|
|
],
|
|
"binds": {
|
|
"route": "${dir:state}/route.json"
|
|
},
|
|
"own-secrets": {
|
|
"jwt": {
|
|
"path": "${dir:state}/jwt.secret",
|
|
"owner": "only-office-converter",
|
|
"taken": "at-start"
|
|
},
|
|
"broker-converter": {
|
|
"path": "${dir:state}/broker-converter.secret",
|
|
"owner": "only-office-converter"
|
|
}
|
|
},
|
|
"listens": [
|
|
{
|
|
"name": "web",
|
|
"port": 9070,
|
|
"protocol": "tcp",
|
|
"from": "mesh",
|
|
"why": "the document server over http; its public name is a route grant, and route-proxy reaches it on this published port"
|
|
}
|
|
],
|
|
"data": {
|
|
"own": [
|
|
{
|
|
"id": "data",
|
|
"path": "${dir:data}",
|
|
"class": "rebuildable",
|
|
"why": "documents being edited; the documents themselves are the file store's"
|
|
},
|
|
{
|
|
"id": "lib",
|
|
"path": "${dir:lib}",
|
|
"class": "rebuildable",
|
|
"why": "the document server's working files"
|
|
},
|
|
{
|
|
"id": "db",
|
|
"path": "${dir:db}",
|
|
"class": "rebuildable",
|
|
"why": "the document server's own database of editing sessions"
|
|
},
|
|
{
|
|
"id": "fonts",
|
|
"path": "${dir:fonts}",
|
|
"class": "rebuildable",
|
|
"why": "fonts, installed again"
|
|
},
|
|
{
|
|
"id": "logs",
|
|
"path": "${dir:logs}",
|
|
"class": "cache",
|
|
"why": "logs"
|
|
},
|
|
{
|
|
"id": "rabbitmq",
|
|
"path": "${dir:rabbitmq}",
|
|
"class": "cache",
|
|
"why": "its queue's working set"
|
|
},
|
|
{
|
|
"id": "redis",
|
|
"path": "${dir:redis}",
|
|
"class": "cache",
|
|
"why": "its cache"
|
|
}
|
|
]
|
|
},
|
|
"resources": [
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0711",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "converter-account",
|
|
"type": "user",
|
|
"name": "only-office-converter",
|
|
"shell": "/usr/bin/nologin"
|
|
},
|
|
{
|
|
"id": "server-env",
|
|
"type": "file",
|
|
"path": "${dir:state}/server.env",
|
|
"mode": "0600",
|
|
"template": "files/server.env"
|
|
},
|
|
{
|
|
"id": "logs",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "data",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "lib",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "db",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "rabbitmq",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "redis",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "fonts",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "net",
|
|
"type": "network",
|
|
"name": "only-office"
|
|
},
|
|
{
|
|
"id": "server",
|
|
"type": "container",
|
|
"name": "only-office",
|
|
"image": "onlyoffice/documentserver@sha256:3ab6ebc7c605e5a32b7ae3ff19daed4925090245acc8100ce2230bd766c88212",
|
|
"network": "only-office",
|
|
"env-file": [
|
|
"${dir:state}/server.env"
|
|
],
|
|
"ports": [
|
|
"9070:80"
|
|
],
|
|
"volumes": [
|
|
"${dir:logs}:/var/log/onlyoffice",
|
|
"${dir:data}:/var/www/onlyoffice/Data",
|
|
"${dir:lib}:/var/lib/onlyoffice",
|
|
"${dir:db}:/var/lib/postgresql",
|
|
"${dir:rabbitmq}:/var/lib/rabbitmq",
|
|
"${dir:redis}:/var/lib/redis",
|
|
"${dir:fonts}:/usr/share/fonts/truetype/custom"
|
|
],
|
|
"secrets-in-environment": "run-document-server.sh regenerates JWT_SECRET from the environment on every start and overwrites local.json; not convertible"
|
|
},
|
|
{
|
|
"id": "converter",
|
|
"type": "process",
|
|
"name": "only-office-converter",
|
|
"artifact": "tools",
|
|
"run": [
|
|
"./only-office",
|
|
"converter"
|
|
],
|
|
"user": "only-office-converter",
|
|
"env": {
|
|
"ONLY_OFFICE_BROKER": "${dir:state}/broker-converter.secret",
|
|
"ONLY_OFFICE_JWT": "${dir:state}/jwt.secret",
|
|
"ONLY_OFFICE_SERVER": "http://127.0.0.1:9070"
|
|
},
|
|
"bus": {
|
|
"queues": [
|
|
"convert-asks"
|
|
],
|
|
"state": [
|
|
"convert-answers"
|
|
]
|
|
},
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/only-office",
|
|
"binary": "only-office",
|
|
"loads": [
|
|
"only-office"
|
|
]
|
|
},
|
|
{
|
|
"name": "files",
|
|
"kind": "archive",
|
|
"from": "files"
|
|
}
|
|
]
|
|
}
|
|
}
|