Initial commit
This commit is contained in:
361
assets/templates/README-SERVICES.md.optional
Normal file
361
assets/templates/README-SERVICES.md.optional
Normal file
@@ -0,0 +1,361 @@
|
||||
# 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/
|
||||
Reference in New Issue
Block a user