Revert "Add Gitea image publishing workflow and Portainer runner stacks"

This reverts commit 0458606410994162b89b6f36c052cead8d441634.
This commit is contained in:
Bxio 2026-10-10 18:42:23 +01:00
parent 0458606410
commit 282ba08c81
6 changed files with 2 additions and 143 deletions

View File

@ -1,44 +0,0 @@
name: Testar e publicar imagem Docker
on:
push:
branches: [main]
workflow_dispatch:
jobs:
publish:
runs-on: botflow-docker
env:
IMAGE: gitea.zol.oixb.run/oixb.run/ts6-botflow
steps:
- name: Preparar ferramentas
run: apk add --no-cache git nodejs ca-certificates
- name: Obter codigo
uses: https://github.com/actions/checkout@v4
with:
persist-credentials: false
- name: Testar autenticacao
run: docker build --target test -t ts6-botflow-tests:${{ gitea.sha }} .
- name: Construir imagem
run: |
docker build --pull --target runtime \
--label org.opencontainers.image.source=https://gitea.zol.oixb.run/oixb.run/ts6-botflow \
--label org.opencontainers.image.revision=${{ gitea.sha }} \
-t "$IMAGE:${{ gitea.sha }}" -t "$IMAGE:latest" .
- name: Publicar no registry Gitea
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
run: |
set -eu
test -n "$REGISTRY_USER" || { echo 'Falta o secret REGISTRY_USER'; exit 1; }
test -n "$REGISTRY_TOKEN" || { echo 'Falta o secret REGISTRY_TOKEN'; exit 1; }
export DOCKER_CONFIG="$(mktemp -d)"
trap 'rm -rf "$DOCKER_CONFIG"' EXIT
printf '%s' "$REGISTRY_TOKEN" | docker login gitea.zol.oixb.run -u "$REGISTRY_USER" --password-stdin
docker push "$IMAGE:${{ gitea.sha }}"
docker push "$IMAGE:latest"

View File

@ -1,15 +1,8 @@
FROM node:22-bookworm-slim AS base
FROM node:22-bookworm-slim
WORKDIR /app
COPY --chown=node:node package.json server.mjs ./
COPY --chown=node:node public ./public
RUN mkdir /app/data && chown node:node /app/data
FROM base AS test
COPY --chown=node:node auth.test.mjs ./
USER node
RUN npm test
FROM base AS runtime
USER node
ENV PORT=3080 DATA_DIR=/app/data
EXPOSE 3080

View File

@ -6,9 +6,7 @@ O editor de flows e o motor de bots ainda não estão implementados nesta versã
## Docker / Portainer
Para **Web editor com imagem construida no Gitea**, seguir [deploy/README.md](deploy/README.md). O workflow `.gitea/workflows/container.yaml` testa e publica a imagem a cada push em main. As stacks prontas estao em `deploy/runner-stack.yaml` e `deploy/bot-stack.yaml`.
Para construcao local por Docker Compose, usar `compose.yaml` a partir deste repositório. O serviço é construído pelo Dockerfile, porta 3080, volume persistente `botflow-data`.
Usar `compose.yaml` a partir deste repositório. O serviço é construído pelo Dockerfile, porta 3080, volume persistente `botflow-data`.
Configurar as quatro variáveis nas Environment variables da stack (ou copiar `.env.example` para `.env` quando executado por Docker Compose):

View File

@ -1,48 +0,0 @@
# Gitea Actions → imagem Docker → Portainer Web editor
## 1. Ativar Actions no repositorio
No repositorio ts6-botflow, Configuracoes → Unidades (ou Avancado), ativar Actions. Nao e preciso alterar o servidor Gitea se Actions ja estiver disponivel.
## 2. Registar o runner
No mesmo repositorio, Configuracoes → Actions → Runners → Criar novo runner. Copiar o token de registo do **repositorio**, para limitar este runner ao ts6-botflow.
No Portainer, criar stack `ts6-botflow-runner` no Web editor e colar `runner-stack.yaml`. Adicionar variavel `RUNNER_TOKEN` com o token de registo. Fazer deploy. O runner deve aparecer Online no Gitea com a label `botflow-docker`.
O runner usa o socket Docker para construir as imagens. Os workflows deste repositorio podem controlar o Docker dessa maquina; manter a escrita no repositorio limitada a pessoas de confianca. O runner nao precisa de portas publicadas. Se o Docker estiver num LXC sem permissoes para Docker-in-Docker, esta configuracao usa o daemon ja existente.
## 3. Autorizar a publicacao da imagem
Na conta Gitea com acesso de escrita aos packages de `oixb.run`, Definicoes → Aplicacoes → Gerar token. Permissao `write:package` (inclui leitura). Nao reutilizar o segredo Discord nem o token de registo do runner.
No repositorio, Configuracoes → Actions → Secrets, criar:
- `REGISTRY_USER`: nome de login da conta Gitea dona do token. Se `oixb.run` for uma organizacao, usar a conta membro com permissao de escrita aos seus packages.
- `REGISTRY_TOKEN`: token pessoal criado acima.
Os tokens ficam nas configuracoes Gitea/Portainer, nunca no Git.
## 4. Fazer o primeiro build
Abrir Actions → Testar e publicar imagem Docker → Run workflow, branch main. Se nao aparecer o botao, enviar um novo commit para main ou repetir a execucao que ficou pendente apos o envio do workflow.
O workflow instala as ferramentas no job, obtem o commit, executa os testes de autenticacao numa etapa Docker Node 22 e constroi/publica a imagem. O log so deve mostrar publicacao depois de os testes passarem. Sao criadas tags `latest` e o SHA completo do commit.
Imagem: `gitea.zol.oixb.run/oixb.run/ts6-botflow:latest`.
## 5. Arrancar o bot no Web editor
Esperar pelo primeiro workflow verde. Se o package for privado, adicionar em Portainer → Registries → Add registry → Custom registry o dominio `gitea.zol.oixb.run`, com uma conta/token que tenha `read:package`. Dar acesso ao ambiente Docker se o Portainer o pedir.
Criar stack `ts6-botflow`, colar `bot-stack.yaml` e adicionar `DISCORD_CLIENT_SECRET` nas variaveis de ambiente. Fazer deploy. Abrir http://192.168.88.99:3080.
## Atualizacoes
Cada push em main testa, constroi e publica uma imagem. A stack Web editor nao e atualizada apenas pelo push: no Portainer fazer Update the stack com a opcao de voltar a descarregar a imagem e recriar o container. `pull_policy: always` pede o download em cada deploy. Restart sozinho nao descarrega uma imagem nova.
A automatizacao de deployment pode ser adicionada depois com webhook Portainer, se essa funcao estiver disponivel na edicao instalada. Esta versao automatiza o build e a publicacao, nao o deployment. O volume preserva os dados quando o container e recriado.
## Validacao
As stacks e o workflow sao verificados localmente. O build real e o login no registry so podem ser confirmados depois de registar o runner e configurar os secrets. As imagens Docker nao sao publicadas apenas por enviar este ficheiro.

View File

@ -1,25 +0,0 @@
services:
ts6-botflow:
image: gitea.zol.oixb.run/oixb.run/ts6-botflow:latest
pull_policy: always
container_name: ts6-botflow
ports:
- "3080:3080"
environment:
NODE_ENV: production
PORT: "3080"
DATA_DIR: /app/data
APP_URL: http://192.168.88.99:3080
DISCORD_CLIENT_ID: "477999574804594708"
DISCORD_CLIENT_SECRET: ${DISCORD_CLIENT_SECRET:?Define DISCORD_CLIENT_SECRET}
OWNER_DISCORD_ID: "376768118535749633"
volumes:
- ts6_botflow_data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "-e", "fetch('http://localhost:3080/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
interval: 30s
timeout: 5s
retries: 3
volumes:
ts6_botflow_data:

View File

@ -1,15 +0,0 @@
services:
gitea-runner:
image: gitea/runner:3
container_name: ts6-botflow-runner
environment:
GITEA_INSTANCE_URL: https://gitea.zol.oixb.run
GITEA_RUNNER_REGISTRATION_TOKEN: ${RUNNER_TOKEN:?Define RUNNER_TOKEN do repositorio}
GITEA_RUNNER_NAME: ts6-botflow-runner
GITEA_RUNNER_LABELS: botflow-docker:docker://docker:27-cli
volumes:
- runner-data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
volumes:
runner-data: