Implement robust Redis URL parsing and connection checking

This commit is contained in:
Andreas Dueren
2025-07-15 08:25:26 -06:00
parent 6656311f89
commit 34c2d30c0c
3 changed files with 160 additions and 16 deletions

93
DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,93 @@
# Docmost Cloudron Package - Deployment Status
## Current Status: 🔄 In Progress
The Docmost Cloudron package has been successfully created with all required components but is experiencing a Redis URL parsing issue preventing startup.
## Package Components Created ✅
### Core Files
- **CloudronManifest.json** - Complete app configuration with all addons
- **Dockerfile** - Production build with Node.js 20 and pnpm
- **start.sh** - Initialization script with database setup
- **nginx.conf** - Reverse proxy with WebSocket support
- **supervisord.conf** - Process management configuration
- **README.md** - Comprehensive documentation
### Features Implemented
- ✅ PostgreSQL database integration
- ✅ Email notifications via Cloudron SMTP
- ✅ File storage in persistent directory
- ✅ Health checks and logging
- ✅ Production-ready build process
- ✅ WebSocket support for real-time collaboration
- ⚠️ Redis integration (currently blocked by URL parsing issue)
## Current Issue 🔧
**Problem**: Redis URL parsing incompatibility
- **Error**: `RangeError [ERR_SOCKET_BAD_PORT]: Port should be >= 0 and < 65536. Received type number (NaN)`
- **Root Cause**: Cloudron Redis URL format differs from what Docmost expects
- **Impact**: App cannot start due to Redis validation failure
## Build Information
**Latest Version**: andreasdueren/docmost-cloudron:0.1.8
**Status**: App installs and runs but returns 502 due to Redis parsing issue
### Build Commands
```bash
# Build
cloudron build --set-build-service builder.docker.due.ren \
--build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \
--set-repository andreasdueren/docmost-cloudron --tag 0.1.8
# Install
cloudron install --location docmost.due.ren \
--image andreasdueren/docmost-cloudron:0.1.8
```
## Next Steps 🎯
1. **Debug Redis URL format** - Add logging to understand Cloudron Redis URL structure
2. **Fix URL parsing** - Implement correct Redis URL transformation
3. **Test without Redis** - Investigate if Docmost can run without Redis for basic functionality
4. **Final deployment** - Complete working package
## Repository Structure
```
docmost-cloudron/
├── CloudronManifest.json # App configuration
├── Dockerfile # Container build
├── start.sh # Startup script
├── nginx.conf # Reverse proxy
├── supervisord.conf # Process management
├── oidc-middleware.js # Authentication (future)
├── package.json # Dependencies
├── README.md # Documentation
└── DEPLOYMENT.md # This file
```
## Troubleshooting
**For Redis URL Issues:**
```bash
# Check logs
cloudron logs --app docmost.due.ren
# Shell into container
cloudron exec --app docmost.due.ren
# Check Redis URL format
echo $CLOUDRON_REDIS_URL
```
**For Build Issues:**
```bash
# Clean build
git clean -fdx
cloudron build --tag $(date +%s)
```
The package is 95% complete with all infrastructure in place. Only the Redis URL compatibility issue remains to be resolved for full functionality.