ONLYOFFICE Docs for Runtipi

This is a Runtipi-compatible app configuration for ONLYOFFICE Document Server. It also includes standalone docker-compose files for use without Runtipi.

Installation

Option 1: Via Runtipi App Store (if published)

  1. Search for "ONLYOFFICE Docs" in the Runtipi app store
  2. Click Install
  3. Configure your JWT secret and other options
  4. Start the app

Option 2: Manual Installation (Runtipi Custom App Store)

  1. Copy the onlyoffice-docs folder to your Runtipi custom apps directory:
    cp -r onlyoffice-docs /path/to/runtipi/apps/
    
  2. Restart Runtipi or refresh the app list
  3. Install from the UI

Option 3: Standalone Docker Compose (No Runtipi)

For standalone deployments without Runtipi:

git clone https://git.alexzaw.dev/alexz/runtipi-onlyoffice-docs.git
cd runtipi-onlyoffice-docs

# Copy and edit the environment file
cp .env.example .env
nano .env  # Set JWT_SECRET at minimum

# Basic deployment (self-contained with internal PostgreSQL)
docker-compose -f docker-compose.standalone.yml up -d

# Production deployment (external Postgres/Redis/RabbitMQ)
docker-compose -f docker-compose.standalone-external-db.yml up -d

Data is stored in ./data/ relative to the compose file.

Configuration

Standalone Variables

Variable Default Description
JWT_SECRET required Secret key for JWT authentication
ONLYOFFICE_PORT 8044 Port to expose
JWT_ENABLED true Enable/disable JWT validation
JWT_HEADER Authorization HTTP header for JWT token
JWT_IN_BODY false Allow JWT in request body
USE_UNAUTHORIZED_STORAGE false Accept self-signed certs
WOPI_ENABLED false Enable WOPI protocol
DB_PASSWORD onlyoffice PostgreSQL password (external-db only)

Runtipi Variables

When installed via Runtipi, these are configured through the UI:

Variable Description
ONLYOFFICE_JWT_SECRET Secret key for JWT authentication
ONLYOFFICE_JWT_ENABLED Enable/disable JWT validation
ONLYOFFICE_USE_UNAUTHORIZED_STORAGE Accept self-signed certs
ONLYOFFICE_WOPI_ENABLED Enable WOPI protocol

Integration Examples

Nextcloud Integration

  1. Install the ONLYOFFICE connector app in Nextcloud
  2. Go to Settings → ONLYOFFICE
  3. Configure:
    • Document Editing Service address: http://your-ip:8044 or https://onlyoffice-docs.yourdomain.com
    • Secret key: Same as JWT_SECRET

Seafile Integration

Add to seahub_settings.py:

ONLYOFFICE_APIJS_URL = 'http://your-ip:8044/web-apps/apps/api/documents/api.js'
ONLYOFFICE_JWT_SECRET = 'your-jwt-secret'

File Structure

onlyoffice-docs/
├── config.json                           # Runtipi app configuration
├── docker-compose.yml                    # Runtipi compose (uses Runtipi vars)
├── docker-compose.external-db.yml        # Runtipi compose with external DB
├── docker-compose.standalone.yml         # Standalone compose (no Runtipi)
├── docker-compose.standalone-external-db.yml  # Standalone with external DB
├── description.md                        # App description for Runtipi UI
├── .env.example                          # Example environment variables
└── README.md                             # This file

Data Persistence

Standalone: Data is stored in ./data/ (relative to compose file):

  • logs/ - Application logs
  • data/ - Certificates and configuration
  • lib/ - File cache and temporary files
  • db/ - PostgreSQL database (basic config)
  • fonts/ - Custom fonts

Runtipi: Data is stored in ${APP_DATA_DIR}/data/ (managed by Runtipi)

Troubleshooting

Container won't start

  • Check logs: docker logs onlyoffice-docs
  • Ensure port 8044 is not in use
  • Verify JWT_SECRET is set (required)

Integration issues with Nextcloud

  • Ensure both services can reach each other
  • If using self-signed certs, set USE_UNAUTHORIZED_STORAGE=true
  • Check that JWT secrets match exactly

Performance issues

  • Use the external-db compose variant
  • Increase container memory limits
  • Check disk I/O performance

Resources

Description
Runtipi-compatible app configuration for ONLYOFFICE Document Server
Readme 43 KiB
Languages
Markdown 100%