Update README with proper standalone instructions
This commit is contained in:
89
README.md
89
README.md
@@ -1,6 +1,6 @@
|
|||||||
# ONLYOFFICE Docs for Runtipi
|
# ONLYOFFICE Docs for Runtipi
|
||||||
|
|
||||||
This is a Runtipi-compatible app configuration for [ONLYOFFICE Document Server](https://www.onlyoffice.com/office-suite.aspx).
|
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
|
## Installation
|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ This is a Runtipi-compatible app configuration for [ONLYOFFICE Document Server](
|
|||||||
3. Configure your JWT secret and other options
|
3. Configure your JWT secret and other options
|
||||||
4. Start the app
|
4. Start the app
|
||||||
|
|
||||||
### Option 2: Manual Installation (Custom App Store)
|
### Option 2: Manual Installation (Runtipi Custom App Store)
|
||||||
1. Copy the `onlyoffice-docs` folder to your Runtipi custom apps directory:
|
1. Copy the `onlyoffice-docs` folder to your Runtipi custom apps directory:
|
||||||
```bash
|
```bash
|
||||||
cp -r onlyoffice-docs /path/to/runtipi/apps/
|
cp -r onlyoffice-docs /path/to/runtipi/apps/
|
||||||
@@ -18,37 +18,52 @@ This is a Runtipi-compatible app configuration for [ONLYOFFICE Document Server](
|
|||||||
2. Restart Runtipi or refresh the app list
|
2. Restart Runtipi or refresh the app list
|
||||||
3. Install from the UI
|
3. Install from the UI
|
||||||
|
|
||||||
### Option 3: Direct Docker Compose
|
### Option 3: Standalone Docker Compose (No Runtipi)
|
||||||
|
|
||||||
|
For standalone deployments without Runtipi:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd onlyoffice-docs
|
git clone https://git.alexzaw.dev/alexz/runtipi-onlyoffice-docs.git
|
||||||
# Edit the .env file with your settings
|
cd runtipi-onlyoffice-docs
|
||||||
|
|
||||||
|
# Copy and edit the environment file
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
nano .env
|
nano .env # Set JWT_SECRET at minimum
|
||||||
|
|
||||||
# Start with basic configuration (internal PostgreSQL)
|
# Basic deployment (self-contained with internal PostgreSQL)
|
||||||
docker-compose up -d
|
docker-compose -f docker-compose.standalone.yml up -d
|
||||||
|
|
||||||
# Or use external database configuration for production
|
# Production deployment (external Postgres/Redis/RabbitMQ)
|
||||||
docker-compose -f docker-compose.external-db.yml up -d
|
docker-compose -f docker-compose.standalone-external-db.yml up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Data is stored in `./data/` relative to the compose file.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
### Required Settings
|
### Standalone Variables
|
||||||
|
|
||||||
| Variable | Description |
|
|
||||||
|----------|-------------|
|
|
||||||
| `ONLYOFFICE_JWT_SECRET` | Secret key for JWT authentication. **Required** for security. |
|
|
||||||
|
|
||||||
### Optional Settings
|
|
||||||
|
|
||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
|----------|---------|-------------|
|
|----------|---------|-------------|
|
||||||
| `ONLYOFFICE_JWT_ENABLED` | `true` | Enable/disable JWT validation |
|
| `JWT_SECRET` | *required* | Secret key for JWT authentication |
|
||||||
| `ONLYOFFICE_JWT_HEADER` | `Authorization` | HTTP header for JWT token |
|
| `ONLYOFFICE_PORT` | `8044` | Port to expose |
|
||||||
| `ONLYOFFICE_JWT_IN_BODY` | `false` | Allow JWT in request body |
|
| `JWT_ENABLED` | `true` | Enable/disable JWT validation |
|
||||||
| `ONLYOFFICE_USE_UNAUTHORIZED_STORAGE` | `false` | Accept self-signed certs |
|
| `JWT_HEADER` | `Authorization` | HTTP header for JWT token |
|
||||||
| `ONLYOFFICE_WOPI_ENABLED` | `false` | Enable WOPI protocol |
|
| `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
|
## Integration Examples
|
||||||
|
|
||||||
@@ -57,24 +72,26 @@ docker-compose -f docker-compose.external-db.yml up -d
|
|||||||
1. Install the ONLYOFFICE connector app in Nextcloud
|
1. Install the ONLYOFFICE connector app in Nextcloud
|
||||||
2. Go to Settings → ONLYOFFICE
|
2. Go to Settings → ONLYOFFICE
|
||||||
3. Configure:
|
3. Configure:
|
||||||
- **Document Editing Service address**: `https://onlyoffice-docs.yourdomain.com` or `http://your-ip:8044`
|
- **Document Editing Service address**: `http://your-ip:8044` or `https://onlyoffice-docs.yourdomain.com`
|
||||||
- **Secret key**: Same as `ONLYOFFICE_JWT_SECRET`
|
- **Secret key**: Same as `JWT_SECRET`
|
||||||
|
|
||||||
### Seafile Integration
|
### Seafile Integration
|
||||||
|
|
||||||
1. Add to `seahub_settings.py`:
|
Add to `seahub_settings.py`:
|
||||||
```python
|
```python
|
||||||
ONLYOFFICE_APIJS_URL = 'https://onlyoffice-docs.yourdomain.com/web-apps/apps/api/documents/api.js'
|
ONLYOFFICE_APIJS_URL = 'http://your-ip:8044/web-apps/apps/api/documents/api.js'
|
||||||
ONLYOFFICE_JWT_SECRET = 'your-jwt-secret'
|
ONLYOFFICE_JWT_SECRET = 'your-jwt-secret'
|
||||||
```
|
```
|
||||||
|
|
||||||
## File Structure
|
## File Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
onlyoffice-docs/
|
onlyoffice-docs/
|
||||||
├── config.json # Runtipi app configuration
|
├── config.json # Runtipi app configuration
|
||||||
├── docker-compose.yml # Main compose file (self-contained)
|
├── docker-compose.yml # Runtipi compose (uses Runtipi vars)
|
||||||
├── docker-compose.external-db.yml # Alternative with external DB
|
├── 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
|
├── description.md # App description for Runtipi UI
|
||||||
├── .env.example # Example environment variables
|
├── .env.example # Example environment variables
|
||||||
└── README.md # This file
|
└── README.md # This file
|
||||||
@@ -82,27 +99,29 @@ onlyoffice-docs/
|
|||||||
|
|
||||||
## Data Persistence
|
## Data Persistence
|
||||||
|
|
||||||
Data is stored in `${APP_DATA_DIR}/data/`:
|
**Standalone:** Data is stored in `./data/` (relative to compose file):
|
||||||
- `logs/` - Application logs
|
- `logs/` - Application logs
|
||||||
- `data/` - Certificates and configuration
|
- `data/` - Certificates and configuration
|
||||||
- `lib/` - File cache and temporary files
|
- `lib/` - File cache and temporary files
|
||||||
- `db/` - PostgreSQL database (basic config)
|
- `db/` - PostgreSQL database (basic config)
|
||||||
- `fonts/` - Custom fonts
|
- `fonts/` - Custom fonts
|
||||||
|
|
||||||
|
**Runtipi:** Data is stored in `${APP_DATA_DIR}/data/` (managed by Runtipi)
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
### Container won't start
|
### Container won't start
|
||||||
- Check logs: `docker logs onlyoffice-docs`
|
- Check logs: `docker logs onlyoffice-docs`
|
||||||
- Ensure port 8044 is not in use
|
- Ensure port 8044 is not in use
|
||||||
- Verify JWT_SECRET is set
|
- Verify `JWT_SECRET` is set (required)
|
||||||
|
|
||||||
### Integration issues with Nextcloud
|
### Integration issues with Nextcloud
|
||||||
- Ensure both services can reach each other
|
- Ensure both services can reach each other
|
||||||
- If using self-signed certs, enable `USE_UNAUTHORIZED_STORAGE`
|
- If using self-signed certs, set `USE_UNAUTHORIZED_STORAGE=true`
|
||||||
- Check that JWT secrets match exactly
|
- Check that JWT secrets match exactly
|
||||||
|
|
||||||
### Performance issues
|
### Performance issues
|
||||||
- Use the `docker-compose.external-db.yml` configuration
|
- Use the external-db compose variant
|
||||||
- Increase container memory limits
|
- Increase container memory limits
|
||||||
- Check disk I/O performance
|
- Check disk I/O performance
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user