From f0f6db06c9df11db9413ac532f6c30012681abc2 Mon Sep 17 00:00:00 2001 From: JRike24 <88691077+JRike24@users.noreply.github.com> Date: Sat, 27 Jun 2026 21:35:48 -0500 Subject: [PATCH] ci: workflow Forgejo Actions para publicar imagen en registry + compose por env var N8N_WEBHOOK_URL --- .forgejo/workflows/build.yml | 32 ++++++++++++++++++++++++++++++++ Dockerfile | 3 +++ README.md | 31 +++++++++++++++++++------------ compose.yaml | 6 +++--- docker-entrypoint.sh | 10 ++++++++++ 5 files changed, 67 insertions(+), 15 deletions(-) create mode 100644 .forgejo/workflows/build.yml create mode 100644 docker-entrypoint.sh diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..2ec122f --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,32 @@ +name: build-and-push-image + +on: + push: + branches: [main] + workflow_dispatch: + +jobs: + build: + runs-on: docker + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Forgejo Container Registry + uses: docker/login-action@v3 + with: + registry: forgejo.ikeforge.com + username: ${{ gitea.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push image + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: | + forgejo.ikeforge.com/ike/webchatv2:latest + forgejo.ikeforge.com/ike/webchatv2:${{ gitea.sha }} diff --git a/Dockerfile b/Dockerfile index 028f646..8094e6a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,5 +8,8 @@ RUN npm run build FROM nginx:1.27-alpine AS runtime COPY nginx.conf /etc/nginx/conf.d/default.conf COPY --from=builder /app/dist /usr/share/nginx/html +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh +RUN chmod +x /usr/local/bin/docker-entrypoint.sh EXPOSE 80 +ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] CMD ["nginx", "-g", "daemon off;"] diff --git a/README.md b/README.md index c8334a4..396c485 100644 --- a/README.md +++ b/README.md @@ -38,19 +38,26 @@ npm run build # typecheck + build -> dist/ Configura la URL del webhook en `public/config.js` (runtime) o `.env` (`VITE_N8N_WEBHOOK_URL`). Ver `docs/N8N_CONTRACT.md` para el formato request/response. -## Docker (Dockge) +## Despliegue (Forgejo Actions + Dockge) -El archivo de compose es `compose.yaml` (nombre que Dockge reconoce por defecto). -En Dockge: crea un stack llamado `webchatv2` y copia el contenido del repo en su -carpeta (`~/.dockge/stacks/webchatv2/`), o clona el repo ahí. Dockge detectará el -`compose.yaml` y podrás levantar/compilar desde la UI. +La imagen se construye y publica automáticamente en el **Container Registry de Forgejo** +mediante Forgejo Actions (ver `.forgejo/workflows/build.yml`). En Dockge solo necesitas +pegar este `compose.yaml`: -Por CLI equivalente: - -```bash -docker compose -f compose.yaml up -d --build +```yaml +services: + chat-ui: + image: forgejo.ikeforge.com/ike/webchatv2:latest + container_name: webchatv2 + restart: unless-stopped + ports: + - "8080:80" + environment: + - N8N_WEBHOOK_URL=https://n8n.ikeforge.com/webhook/chat ``` -Expone el sitio en `http://localhost:8080`. Para cambiar la URL del webhook sin -reconstruir, edita `public/config.js` del repo (ya montado como volumen en -`/usr/share/nginx/html/config.js`) y recarga la página. +- La imagen se actualiza sola con cada push a `main` ( Forgejo Actions la reconstruye y + publica como `forgejo.ikeforge.com/ike/webchatv2:latest`). En Dockge pulsa + **Update / Deploy** para refrescar. +- La URL del webhook de n8n se configura con la env var `N8N_WEBHOOK_URL` directamente + desde el compose (sin reconstruir la imagen). diff --git a/compose.yaml b/compose.yaml index ada88f4..54cb377 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,9 +1,9 @@ services: chat-ui: - build: . + image: forgejo.ikeforge.com/ike/webchatv2:latest container_name: webchatv2 restart: unless-stopped ports: - "8080:80" - volumes: - - ./public/config.js:/usr/share/nginx/html/config.js:ro + environment: + - N8N_WEBHOOK_URL=https://n8n.ikeforge.com/webhook/chat diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..ea30036 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e + +cat > /usr/share/nginx/html/config.js <