fix: resolve 4 UI/UX issues
1. Fix typewriter double-letter bug (race condition) 2. Replace flag emojis with text labels (NL/AR/EN) 3. Fix health check TLS options for Bun compatibility 4. Translate 'yourname' placeholder per language
This commit is contained in:
@@ -108,3 +108,71 @@ source .env && curl -s -H "x-api-key: $DOKPLOY_API_TOKEN" \
|
||||
| Health check timeout | Container startup can take 1-2 min, timeout is 3 min |
|
||||
| SSL cert errors | Health check treats SSL errors as "alive" during provisioning |
|
||||
| SSE disconnects | idleTimeout set to 255s (max), long deployments should complete |
|
||||
|
||||
---
|
||||
|
||||
## Production Verification (2026-01-10)
|
||||
|
||||
### Verified Working
|
||||
|
||||
| Component | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| Portal Health | ✅ | `https://portal.ai.flexinit.nl/health` returns healthy |
|
||||
| Name Validation | ✅ | `/api/check/:name` validates correctly |
|
||||
| Frontend UI | ✅ | 3 languages (NL, AR, EN), RTL support, typewriter animation |
|
||||
| Stack Deployment | ✅ | Full flow: project → app → domain → deploy → health check |
|
||||
| Stack Cleanup | ✅ | `DELETE /api/stack/:name` removes all resources |
|
||||
| SSL/HTTPS | ✅ | Wildcard cert working for all `*.ai.flexinit.nl` |
|
||||
|
||||
### Critical Configuration
|
||||
|
||||
```bash
|
||||
# These settings are REQUIRED for deployment to work
|
||||
DOKPLOY_URL=https://app.flexinit.nl # Public URL, NOT internal 10.100.0.20
|
||||
STACK_IMAGE=git.app.flexinit.nl/oussamadouhou/oh-my-opencode-free:latest
|
||||
STACK_REGISTRY_ID=bKDYM5X7NN34x_lRDjWbz # Registry ID for Docker auth
|
||||
```
|
||||
|
||||
### Known Gotchas (Fixed)
|
||||
|
||||
1. **Registry URL format** - Use `git.app.flexinit.nl`, NOT `https://git.app.flexinit.nl`
|
||||
2. **Username in image path** - Must be `oussamadouhou`, not `odouhou`
|
||||
3. **Dokploy URL** - Must use public URL for container-to-container communication
|
||||
4. **Health check** - SSL errors treated as "alive" during cert provisioning
|
||||
|
||||
### Test Commands
|
||||
|
||||
```bash
|
||||
# Quick health check
|
||||
curl -s https://portal.ai.flexinit.nl/health | jq .
|
||||
|
||||
# Full deployment test
|
||||
NAME="test-$(date +%s | tail -c 5)"
|
||||
RESULT=$(curl -s -X POST https://portal.ai.flexinit.nl/api/deploy \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"name\": \"$NAME\"}")
|
||||
echo $RESULT | jq .
|
||||
|
||||
# Monitor deployment (use deploymentId from above)
|
||||
curl -N "https://portal.ai.flexinit.nl/api/status/$(echo $RESULT | jq -r .deploymentId)"
|
||||
|
||||
# Verify stack accessible (after deployment completes)
|
||||
curl -s -k https://$NAME.ai.flexinit.nl | head -5
|
||||
|
||||
# Cleanup
|
||||
curl -s -X DELETE https://portal.ai.flexinit.nl/api/stack/$NAME | jq .
|
||||
```
|
||||
|
||||
### Dokploy Direct Commands
|
||||
|
||||
```bash
|
||||
# List all ai-stack projects
|
||||
source .env && curl -s -H "x-api-key: $DOKPLOY_API_TOKEN" \
|
||||
https://app.flexinit.nl/api/project.all | \
|
||||
jq '[.[] | select(.name | startswith("ai-stack-")) | {name: .name, id: .projectId}]'
|
||||
|
||||
# Get application status
|
||||
source .env && curl -s -H "x-api-key: $DOKPLOY_API_TOKEN" \
|
||||
"https://app.flexinit.nl/api/project.one?projectId=<PROJECT_ID>" | \
|
||||
jq '.environments[0].applications[0] | {name: .name, status: .applicationStatus}'
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user