362 lines
6.5 KiB
Plaintext
362 lines
6.5 KiB
Plaintext
# DDEV Services Documentation
|
|
|
|
This DDEV setup includes additional services for TYPO3 extension development.
|
|
|
|
## Included Services
|
|
|
|
### 1. Redis (Caching)
|
|
|
|
**Container**: `ddev-rte-ckeditor-image-redis`
|
|
**Image**: `redis:7-alpine`
|
|
**Port**: 6379 (internal)
|
|
|
|
**Purpose**: High-performance caching for TYPO3
|
|
|
|
**Access**:
|
|
```bash
|
|
# From host
|
|
ddev redis-cli
|
|
|
|
# From web container
|
|
ddev ssh
|
|
redis-cli -h redis
|
|
```
|
|
|
|
**Configuration**:
|
|
- See `.ddev/config.redis.yaml` for TYPO3 configuration example
|
|
- Add to `/var/www/html/v13/config/system/additional.php`
|
|
|
|
**Testing**:
|
|
```bash
|
|
ddev ssh
|
|
redis-cli -h redis ping
|
|
# Should return: PONG
|
|
```
|
|
|
|
---
|
|
|
|
### 2. MailPit (Email Testing)
|
|
|
|
**Container**: `ddev-{{DDEV_SITENAME}}-mailpit`
|
|
**Image**: `axllent/mailpit`
|
|
**Ports**:
|
|
- 1025 (SMTP)
|
|
- 8025 (Web UI)
|
|
|
|
**Purpose**: Catch all emails sent by TYPO3 for testing
|
|
|
|
**Access**:
|
|
- **Web UI**: `http://rte-ckeditor-image.ddev.site:8025`
|
|
- **SMTP**: `mailpit:1025` (from containers)
|
|
|
|
**TYPO3 Configuration**:
|
|
Already configured in `.ddev/docker-compose.web.yaml`:
|
|
```yaml
|
|
TYPO3_INSTALL_MAIL_TRANSPORT: smtp
|
|
TYPO3_INSTALL_MAIL_TRANSPORT_SMTP_SERVER: mailpit:1025
|
|
```
|
|
|
|
Or manually in `AdditionalConfiguration.php`:
|
|
```php
|
|
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport'] = 'smtp';
|
|
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_smtp_server'] = 'mailpit:1025';
|
|
```
|
|
|
|
**Testing**:
|
|
```bash
|
|
# Send test email from TYPO3
|
|
ddev ssh
|
|
cd /var/www/html/v13
|
|
vendor/bin/typo3 mailer:spool:send
|
|
|
|
# View in MailPit UI
|
|
open http://rte-ckeditor-image.ddev.site:8025
|
|
```
|
|
|
|
---
|
|
|
|
### 3. Ofelia (Cron/Scheduler)
|
|
|
|
**Container**: `ddev-rte-ckeditor-image-ofelia`
|
|
**Image**: `ghcr.io/netresearch/ofelia:latest`
|
|
|
|
**Purpose**: Run TYPO3 scheduler tasks automatically
|
|
|
|
**Configuration**: `.ddev/docker-compose.ofelia.yaml`
|
|
|
|
**Scheduled Jobs**:
|
|
- TYPO3 scheduler for v11, v12, v13: Every 1 minute
|
|
- Cache warmup for v13: Every 1 hour
|
|
|
|
**View Logs**:
|
|
```bash
|
|
# Check if Ofelia is running
|
|
docker ps | grep ofelia
|
|
|
|
# View Ofelia logs
|
|
docker logs -f ddev-rte-ckeditor-image-ofelia
|
|
|
|
# Check scheduler execution
|
|
ddev ssh
|
|
cd /var/www/html/v13
|
|
vendor/bin/typo3 scheduler:list
|
|
```
|
|
|
|
**Manual Execution**:
|
|
```bash
|
|
ddev ssh
|
|
t3-scheduler-v13 # alias for scheduler:run on v13
|
|
t3-scheduler-all # run scheduler on all versions
|
|
```
|
|
|
|
---
|
|
|
|
## Alternative: Traditional Cron in Web Container
|
|
|
|
If you prefer traditional cron instead of Ofelia:
|
|
|
|
1. **Enable cron in Dockerfile**:
|
|
|
|
Edit `.ddev/web-build/Dockerfile` and add:
|
|
```dockerfile
|
|
RUN apt-get update && apt-get install -y cron
|
|
COPY install-cron.sh /opt/install-cron.sh
|
|
RUN chmod +x /opt/install-cron.sh && /opt/install-cron.sh
|
|
```
|
|
|
|
2. **Restart DDEV**:
|
|
```bash
|
|
ddev restart
|
|
```
|
|
|
|
3. **Verify cron**:
|
|
```bash
|
|
ddev ssh
|
|
crontab -l
|
|
service cron status
|
|
```
|
|
|
|
---
|
|
|
|
## Service Management
|
|
|
|
### Start/Stop Services
|
|
|
|
```bash
|
|
# Restart all services
|
|
ddev restart
|
|
|
|
# Stop DDEV (keeps volumes)
|
|
ddev stop
|
|
|
|
# Remove containers (keeps volumes)
|
|
ddev delete
|
|
|
|
# Remove everything including volumes
|
|
ddev delete --omit-snapshot --yes
|
|
docker volume rm rte-ckeditor-image-redis-data
|
|
```
|
|
|
|
### View Service Status
|
|
|
|
```bash
|
|
# All DDEV containers
|
|
ddev describe
|
|
|
|
# All containers
|
|
docker ps | grep rte-ckeditor-image
|
|
|
|
# Service logs
|
|
docker logs ddev-rte-ckeditor-image-redis
|
|
docker logs ddev-{{DDEV_SITENAME}}-mailpit
|
|
docker logs ddev-rte-ckeditor-image-ofelia
|
|
```
|
|
|
|
### Access Services
|
|
|
|
```bash
|
|
# Redis CLI
|
|
ddev redis-cli
|
|
|
|
# Or from web container
|
|
ddev ssh
|
|
redis-cli -h redis
|
|
|
|
# MailPit web interface
|
|
open http://rte-ckeditor-image.ddev.site:8025
|
|
|
|
# Check Redis connection from TYPO3
|
|
ddev ssh
|
|
cd /var/www/html/v13
|
|
vendor/bin/typo3 cache:flush
|
|
```
|
|
|
|
---
|
|
|
|
## TYPO3 Scheduler Configuration
|
|
|
|
### Enable Scheduler Tasks
|
|
|
|
1. **Access TYPO3 Backend**: https://v13.rte-ckeditor-image.ddev.site/typo3/
|
|
2. **Login**: admin / Password:joh316
|
|
3. **System → Scheduler**
|
|
4. **Create tasks** (examples):
|
|
- Table garbage collection
|
|
- Index queue worker
|
|
- File abstraction layer indexing
|
|
- Import/Export tasks
|
|
|
|
### Verify Scheduler is Running
|
|
|
|
```bash
|
|
ddev ssh
|
|
cd /var/www/html/v13
|
|
|
|
# List all scheduler tasks
|
|
vendor/bin/typo3 scheduler:list
|
|
|
|
# Run manually (for testing)
|
|
vendor/bin/typo3 scheduler:run
|
|
|
|
# Check last execution time
|
|
vendor/bin/typo3 scheduler:list --verbose
|
|
```
|
|
|
|
---
|
|
|
|
## Performance Tuning
|
|
|
|
### Redis
|
|
|
|
**Memory Limit**: Currently 256MB
|
|
**Eviction Policy**: `allkeys-lru` (Least Recently Used)
|
|
|
|
To adjust:
|
|
```yaml
|
|
# .ddev/docker-compose.services.yaml
|
|
environment:
|
|
- REDIS_MAXMEMORY=512mb # Increase if needed
|
|
```
|
|
|
|
### MailPit
|
|
|
|
No tuning needed for development. All emails are stored in memory.
|
|
|
|
### Ofelia/Cron
|
|
|
|
**Frequency**: Default is every 1 minute
|
|
To adjust, edit `.ddev/docker-compose.ofelia.yaml`:
|
|
|
|
```yaml
|
|
# Every 5 minutes instead
|
|
ofelia.job-exec.typo3-scheduler-v13.schedule: "@every 5m"
|
|
|
|
# Specific time (e.g., 2am daily)
|
|
ofelia.job-exec.cache-warmup.schedule: "0 2 * * *"
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Redis Not Connecting
|
|
|
|
```bash
|
|
# Test Redis
|
|
ddev ssh
|
|
redis-cli -h redis ping
|
|
|
|
# Should return: PONG
|
|
# If not, check Redis container
|
|
docker logs ddev-rte-ckeditor-image-redis
|
|
```
|
|
|
|
### MailPit Not Receiving Emails
|
|
|
|
```bash
|
|
# Check TYPO3 mail configuration
|
|
ddev ssh
|
|
cd /var/www/html/v13
|
|
vendor/bin/typo3 configuration:show MAIL
|
|
|
|
# Test email sending
|
|
vendor/bin/typo3 mailer:spool:send
|
|
```
|
|
|
|
### Scheduler Not Running
|
|
|
|
```bash
|
|
# Check Ofelia logs
|
|
docker logs -f ddev-rte-ckeditor-image-ofelia
|
|
|
|
# Manually run scheduler
|
|
ddev ssh
|
|
t3-scheduler-v13
|
|
|
|
# Check for errors
|
|
cd /var/www/html/v13
|
|
vendor/bin/typo3 scheduler:list --verbose
|
|
```
|
|
|
|
### Remove Service
|
|
|
|
To remove a service, comment it out in `.ddev/docker-compose.services.yaml` and restart:
|
|
|
|
```bash
|
|
ddev restart
|
|
```
|
|
|
|
---
|
|
|
|
## Additional Services (Optional)
|
|
|
|
### Adminer (Database GUI)
|
|
|
|
```bash
|
|
ddev get ddev/ddev-adminer
|
|
ddev restart
|
|
# Access: https://rte-ckeditor-image.ddev.site:9999
|
|
```
|
|
|
|
### Elasticsearch
|
|
|
|
```yaml
|
|
# Add to .ddev/docker-compose.services.yaml
|
|
elasticsearch:
|
|
image: elasticsearch:8.10.2
|
|
environment:
|
|
- discovery.type=single-node
|
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
|
ports:
|
|
- "9200"
|
|
```
|
|
|
|
### Solr
|
|
|
|
```yaml
|
|
# Add to .ddev/docker-compose.services.yaml
|
|
solr:
|
|
image: solr:9
|
|
ports:
|
|
- "8983"
|
|
volumes:
|
|
- solr-data:/var/solr
|
|
```
|
|
|
|
---
|
|
|
|
## Quick Reference
|
|
|
|
| Service | Access | Purpose |
|
|
|---------|--------|---------|
|
|
| Redis | `redis-cli -h redis` | Caching |
|
|
| MailPit UI | http://localhost:8025 | Email testing |
|
|
| MailPit SMTP | `mailpit:1025` | Email delivery |
|
|
| Ofelia | Background | Cron jobs |
|
|
| Web | https://*.ddev.site | TYPO3 instances |
|
|
| Database | `ddev mysql` | MariaDB |
|
|
|
|
---
|
|
|
|
**Questions?** Check DDEV docs: https://ddev.readthedocs.io/
|