Add ONLYOFFICE Docs app

Online office suite with document, spreadsheet, and presentation editing.
Includes external PostgreSQL, Redis, and RabbitMQ services with auto-generated
secrets for JWT, database, and message queue credentials.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 19:06:02 +00:00
parent e6387c3861
commit 46b0e1120a
4 changed files with 275 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
{
"$schema": "../app-info-schema.json",
"name": "ONLYOFFICE Docs",
"id": "onlyoffice-docs",
"available": true,
"short_desc": "Online office suite for document editing and collaboration",
"author": "Ascensio System SIA",
"port": 8044,
"categories": ["utilities", "documents"],
"description": "ONLYOFFICE Docs is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats (.docx, .xlsx, .pptx) and enabling collaborative editing in real time.",
"tipi_version": 7,
"dynamic_config": true,
"version": "8.2",
"source": "https://github.com/ONLYOFFICE/DocumentServer",
"website": "https://www.onlyoffice.com/",
"exposable": true,
"url_suffix": "/",
"supported_architectures": ["amd64"],
"no_gui": false,
"deprecated": false,
"min_tipi_version": "4.5.0",
"created_at": 1712361600000,
"updated_at": 1712361600000,
"form_fields": [
{
"type": "random",
"label": "JWT Secret",
"env_variable": "ONLYOFFICE_JWT_SECRET",
"min": 32,
"encoding": "hex"
},
{
"type": "random",
"label": "Database Password",
"env_variable": "ONLYOFFICE_DB_PASSWORD",
"min": 24,
"encoding": "hex"
},
{
"type": "random",
"label": "RabbitMQ Password",
"env_variable": "ONLYOFFICE_RABBITMQ_PASSWORD",
"min": 24,
"encoding": "hex"
},
{
"type": "boolean",
"label": "Enable JWT",
"hint": "Enable JSON Web Token validation for secure API access",
"required": false,
"default": true,
"env_variable": "ONLYOFFICE_JWT_ENABLED"
},
{
"type": "text",
"label": "JWT Header",
"hint": "HTTP header name for JWT token (default: Authorization)",
"required": false,
"default": "Authorization",
"env_variable": "ONLYOFFICE_JWT_HEADER"
},
{
"type": "boolean",
"label": "JWT in Body",
"hint": "Enable token validation in request body",
"required": false,
"default": false,
"env_variable": "ONLYOFFICE_JWT_IN_BODY"
},
{
"type": "boolean",
"label": "Allow Unauthorized Storage",
"hint": "Set to true if using self-signed certificates for your storage server (e.g., Nextcloud)",
"required": false,
"default": false,
"env_variable": "ONLYOFFICE_USE_UNAUTHORIZED_STORAGE"
},
{
"type": "boolean",
"label": "Enable WOPI",
"hint": "Enable WOPI protocol handlers for integration with WOPI-compatible apps",
"required": false,
"default": false,
"env_variable": "ONLYOFFICE_WOPI_ENABLED"
}
]
}

View File

@@ -0,0 +1,132 @@
{
"schemaVersion": 2,
"$schema": "https://schemas.runtipi.io/dynamic-compose.json",
"services": [
{
"name": "onlyoffice-docs",
"image": "onlyoffice/documentserver:8.2",
"isMain": true,
"internalPort": 80,
"dependsOn": {
"onlyoffice-docs-db": {
"condition": "service_healthy"
},
"onlyoffice-docs-redis": {
"condition": "service_healthy"
},
"onlyoffice-docs-rabbitmq": {
"condition": "service_healthy"
}
},
"environment": {
"JWT_ENABLED": "${ONLYOFFICE_JWT_ENABLED:-true}",
"JWT_SECRET": "${ONLYOFFICE_JWT_SECRET}",
"JWT_HEADER": "${ONLYOFFICE_JWT_HEADER:-Authorization}",
"JWT_IN_BODY": "${ONLYOFFICE_JWT_IN_BODY:-false}",
"USE_UNAUTHORIZED_STORAGE": "${ONLYOFFICE_USE_UNAUTHORIZED_STORAGE:-false}",
"WOPI_ENABLED": "${ONLYOFFICE_WOPI_ENABLED:-false}",
"NGINX_WORKER_PROCESSES": "auto",
"NGINX_WORKER_CONNECTIONS": "4096",
"GENERATE_FONTS": "true",
"DB_TYPE": "postgres",
"DB_HOST": "onlyoffice-docs-db",
"DB_PORT": "5432",
"DB_NAME": "onlyoffice",
"DB_USER": "onlyoffice",
"DB_PWD": "${ONLYOFFICE_DB_PASSWORD}",
"REDIS_SERVER_HOST": "onlyoffice-docs-redis",
"REDIS_SERVER_PORT": "6379",
"AMQP_URI": "amqp://${ONLYOFFICE_RABBITMQ_USER:-onlyoffice}:${ONLYOFFICE_RABBITMQ_PASSWORD}@onlyoffice-docs-rabbitmq:5672/",
"AMQP_TYPE": "rabbitmq"
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/logs",
"containerPath": "/var/log/onlyoffice"
},
{
"hostPath": "${APP_DATA_DIR}/data/data",
"containerPath": "/var/www/onlyoffice/Data"
},
{
"hostPath": "${APP_DATA_DIR}/data/lib",
"containerPath": "/var/lib/onlyoffice"
},
{
"hostPath": "${APP_DATA_DIR}/data/fonts",
"containerPath": "/usr/share/fonts/truetype/custom"
}
],
"healthCheck": {
"command": "curl -f http://localhost/healthcheck",
"interval": "30s",
"timeout": "10s",
"retries": 3,
"startPeriod": "60s"
}
},
{
"name": "onlyoffice-docs-db",
"image": "postgres:15-alpine",
"isMain": false,
"environment": {
"POSTGRES_DB": "onlyoffice",
"POSTGRES_USER": "onlyoffice",
"POSTGRES_PASSWORD": "${ONLYOFFICE_DB_PASSWORD}"
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/postgresql",
"containerPath": "/var/lib/postgresql/data"
}
],
"healthCheck": {
"command": "pg_isready -U onlyoffice -d onlyoffice",
"interval": "10s",
"timeout": "5s",
"retries": 5,
"startPeriod": "10s"
}
},
{
"name": "onlyoffice-docs-redis",
"image": "redis:7-alpine",
"isMain": false,
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/redis",
"containerPath": "/data"
}
],
"healthCheck": {
"command": "redis-cli ping",
"interval": "10s",
"timeout": "5s",
"retries": 5,
"startPeriod": "10s"
}
},
{
"name": "onlyoffice-docs-rabbitmq",
"image": "rabbitmq:3-alpine",
"isMain": false,
"environment": {
"RABBITMQ_DEFAULT_USER": "${ONLYOFFICE_RABBITMQ_USER:-onlyoffice}",
"RABBITMQ_DEFAULT_PASS": "${ONLYOFFICE_RABBITMQ_PASSWORD}"
},
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/rabbitmq",
"containerPath": "/var/lib/rabbitmq"
}
],
"healthCheck": {
"command": "rabbitmq-diagnostics -q ping",
"interval": "10s",
"timeout": "5s",
"retries": 5,
"startPeriod": "30s"
}
}
]
}

View File

@@ -0,0 +1,56 @@
# ONLYOFFICE Docs
ONLYOFFICE Docs is a powerful online office suite for viewing and editing documents, spreadsheets, and presentations directly in your browser.
## Features
### Document Editing
- **Document Editor** - Create and edit text documents with full formatting support
- **Spreadsheet Editor** - Work with complex spreadsheets, formulas, and charts
- **Presentation Editor** - Build professional presentations with slides and animations
### Collaboration
- **Real-time co-editing** - Multiple users can edit the same document simultaneously
- **Track changes** - Review and accept/reject modifications
- **Comments** - Add and reply to comments in documents
### Format Support
Full compatibility with Microsoft Office formats:
- Documents: DOC, DOCX, ODT, TXT, RTF, HTML, EPUB
- Spreadsheets: XLS, XLSX, ODS, CSV
- Presentations: PPT, PPTX, ODP
### Integration
ONLYOFFICE Docs can be integrated with:
- Nextcloud
- ownCloud
- Seafile
- Confluence
- Alfresco
- SharePoint
- Many other platforms via API
## Configuration
### JWT Secret (Required)
The JWT secret is used to secure communication between your application and ONLYOFFICE Docs. Generate a strong random string for production use.
### Self-Signed Certificates
If your storage server (e.g., Nextcloud) uses self-signed SSL certificates, enable the "Allow Unauthorized Storage" option.
### WOPI Support
Enable WOPI if you're integrating with WOPI-compatible applications like Collabora Online or Microsoft Office Online Server.
## System Requirements
- **CPU**: Dual core 2 GHz or better
- **RAM**: 4 GB minimum (8 GB recommended)
- **Storage**: 40 GB minimum free space
- **Architecture**: amd64 only
## Links
- [Official Documentation](https://helpcenter.onlyoffice.com/docs/)
- [GitHub Repository](https://github.com/ONLYOFFICE/DocumentServer)
- [API Documentation](https://api.onlyoffice.com/)
- [Integration Examples](https://helpcenter.onlyoffice.com/docs/installation)

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB