Files
runtipi-onlyoffice-docs/README.md

134 lines
4.5 KiB
Markdown

# ONLYOFFICE Docs for Runtipi
This is a Runtipi-compatible app configuration for [ONLYOFFICE Document Server](https://www.onlyoffice.com/office-suite.aspx). 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:
```bash
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:
```bash
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`:
```python
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
- [ONLYOFFICE Documentation](https://helpcenter.onlyoffice.com/docs/)
- [Docker Hub](https://hub.docker.com/r/onlyoffice/documentserver)
- [GitHub](https://github.com/ONLYOFFICE/DocumentServer)
- [API Documentation](https://api.onlyoffice.com/)