feat: production-ready deployment with multi-language UI
- Add multi-language support (NL, AR, EN) with RTL
- Improve health checks (SSL-tolerant, multi-endpoint)
- Add DELETE /api/stack/:name for cleanup
- Add persistent storage (portal-ai-workspace-{name})
- Improve rollback (delete domain, app, project)
- Increase SSE timeout to 255s
- Add deployment strategy documentation
This commit is contained in:
@@ -1,58 +1,53 @@
|
||||
# START HERE
|
||||
# AI Stack Deployer
|
||||
|
||||
🚨🚨🚨🚨 ***PRINCIPLE RULES ALWAYS FIRST*** 🚨🚨🚨🚨
|
||||
## Quick Start
|
||||
|
||||
## What Happened Last Session
|
||||
|
||||
**Last Session** (2026-01-09 21:48):
|
||||
- Fixed CI workflow in `oh-my-opencode-free` project
|
||||
- Changed trigger from `master` → `main` to enable `:latest` tag
|
||||
- Build successful: `git.app.flexinit.nl/oussamadouhou/oh-my-opencode-free:latest`
|
||||
- Commit: `bdfa5c1`
|
||||
|
||||
## Current Task
|
||||
|
||||
**Build is successful** - Now need to:
|
||||
1. ✅ Create `.gitea/workflows/docker-publish.yaml` for THIS project
|
||||
2. ✅ Initialize git repo
|
||||
3. 🔧 Create repository on Gitea: https://git.app.flexinit.nl (repo: ai-stack-deployer)
|
||||
4. Push to trigger build and enable `:latest` tag
|
||||
|
||||
## Quick Reference
|
||||
|
||||
**Working Workflow**: `/home/odouhou/locale-projects/oh-my-opencode-free/.gitea/workflows/docker-publish.yaml`
|
||||
|
||||
**Key Config**:
|
||||
- Triggers on `main` branch (not master)
|
||||
- Registry: `git.app.flexinit.nl`
|
||||
- Auth: `oussamadouhou` + `REGISTRY_TOKEN` secret
|
||||
- Tags: `:latest` + `:<sha>`
|
||||
|
||||
## DOCUMENTATION
|
||||
|
||||
**Git Repository**:
|
||||
```bash
|
||||
# Remote URL pattern
|
||||
ssh://git@git.app.flexinit.nl:22222/oussamadouhou/{repo-name}.git
|
||||
bun run dev # Start server at http://localhost:3000
|
||||
bun run typecheck # Verify TypeScript
|
||||
```
|
||||
|
||||
# This project
|
||||
## Current Status
|
||||
|
||||
| Component | Status |
|
||||
|-----------|--------|
|
||||
| HTTP Server | ✅ Running |
|
||||
| Dokploy API | ✅ Connected |
|
||||
| Frontend | ✅ Redesigned (Antigravity style) |
|
||||
| Multi-language | ✅ NL/AR/EN with auto-detect |
|
||||
|
||||
## Stack
|
||||
|
||||
- **Backend**: Bun + Hono
|
||||
- **Frontend**: Vanilla JS (no frameworks)
|
||||
- **Deployment**: Dokploy → Traefik
|
||||
- **Styling**: Dark theme, IBM Plex Mono
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `src/index.ts` | HTTP server + API routes |
|
||||
| `src/frontend/` | UI (index.html, style.css, app.js) |
|
||||
| `src/api/dokploy-production.ts` | Dokploy client with retry logic |
|
||||
| `src/orchestrator/production-deployer.ts` | Deployment orchestration |
|
||||
|
||||
## Environment
|
||||
|
||||
```bash
|
||||
DOKPLOY_URL=https://app.flexinit.nl
|
||||
DOKPLOY_API_TOKEN=<from .env>
|
||||
STACK_DOMAIN_SUFFIX=ai.flexinit.nl
|
||||
```
|
||||
|
||||
## Git
|
||||
|
||||
```bash
|
||||
origin: ssh://git@git.app.flexinit.nl:22222/oussamadouhou/ai-stack-deployer.git
|
||||
```
|
||||
|
||||
**Environment**:
|
||||
```bash
|
||||
STACK_IMAGE=git.app.flexinit.nl/oussamadouhou/oh-my-opencode-free:latest
|
||||
DOKPLOY_URL=https://app.flexinit.nl
|
||||
```
|
||||
## Docs
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
# Dev server
|
||||
bun run dev
|
||||
|
||||
# Docker
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
See `CLAUDE.md` for full documentation.
|
||||
- `CLAUDE.md` - Full project documentation
|
||||
- `docs/TESTING.md` - Test procedures and results
|
||||
- `docs/AGENTS.md` - AI agent guidelines
|
||||
|
||||
Reference in New Issue
Block a user