feat: Gitea Actions CI/CD pipeline with container registry builds
Some checks failed
Build and Push Docker Image / Build & push to Gitea registry (push) Has been cancelled
Some checks failed
Build and Push Docker Image / Build & push to Gitea registry (push) Has been cancelled
- .gitea/workflows/docker.yml: builds and pushes image to devops.cloudhost.es/malin/paste.es on every push to main, tags as :latest and :<short-sha>, uses GHA layer cache - docker-compose.yml: updated to pull pre-built image from Gitea container registry instead of building locally - docker-compose.build.yml: new override file for local dev builds (docker compose -f docker-compose.yml -f docker-compose.build.yml up --build) - docker-compose.runner.yml: act_runner service — mount docker socket, auto-registers with RUNNER_REGISTRATION_TOKEN from .env - .env.example: added RUNNER_REGISTRATION_TOKEN section - README.md: document CI/CD setup, runner registration, and updated quick-start to use registry pull workflow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
76
README.md
76
README.md
@@ -34,37 +34,43 @@ Servicio de compartición de secretos efímeros y cifrados para el público hisp
|
||||
|
||||
## Inicio rápido
|
||||
|
||||
### Docker Compose (recomendado)
|
||||
### Docker Compose — imagen desde el registro (recomendado en producción)
|
||||
|
||||
Cada push a `main` construye y publica automáticamente la imagen en el registro de contenedores de Gitea. En el servidor de producción solo necesitas hacer pull:
|
||||
|
||||
```bash
|
||||
git clone https://devops.cloudhost.es/Malin/paste.es.git
|
||||
cd paste.es
|
||||
|
||||
# Autentícate en el registro de Gitea
|
||||
docker login devops.cloudhost.es
|
||||
|
||||
# Copia y edita el fichero de entorno
|
||||
cp .env.example .env
|
||||
# Edita .env con tus valores (ver sección Configuración)
|
||||
|
||||
# Construye y arranca
|
||||
docker compose up -d --build
|
||||
# Descarga la imagen y arranca
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Para actualizar a la última versión:
|
||||
|
||||
```bash
|
||||
docker compose pull && docker compose up -d
|
||||
```
|
||||
|
||||
### Docker Compose — compilación local (desarrollo)
|
||||
|
||||
```bash
|
||||
git clone https://devops.cloudhost.es/Malin/paste.es.git
|
||||
cd paste.es
|
||||
cp .env.example .env
|
||||
|
||||
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build
|
||||
```
|
||||
|
||||
El servicio quedará disponible en `http://localhost:3000`.
|
||||
|
||||
### Docker (imagen directa)
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
--name paste-es \
|
||||
-p 3000:3000 \
|
||||
-v paste-data:/app/database \
|
||||
-v paste-uploads:/app/uploads \
|
||||
-e DATABASE_URL="file:/app/database/paste.db" \
|
||||
-e BETTER_AUTH_SECRET="$(openssl rand -base64 32)" \
|
||||
-e BETTER_AUTH_URL="https://paste.es" \
|
||||
-e HEMMELIG_INSTANCE_NAME="paste.es" \
|
||||
ghcr.io/cloudhost-es/paste.es:latest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuración
|
||||
@@ -106,6 +112,38 @@ npm run dev # Terminal 2 — cliente Vite con HMR
|
||||
|
||||
---
|
||||
|
||||
## CI/CD — Gitea Actions + registro de contenedores
|
||||
|
||||
El repositorio incluye un pipeline en `.gitea/workflows/docker.yml` que:
|
||||
|
||||
1. Se activa en cada push a `main` (o manualmente desde la UI de Gitea)
|
||||
2. Construye la imagen Docker con caché de capas
|
||||
3. La publica en el registro de contenedores de Gitea como `devops.cloudhost.es/malin/paste.es:latest` y `devops.cloudhost.es/malin/paste.es:<sha>`
|
||||
|
||||
### Requisitos previos
|
||||
|
||||
**1. Habilitar Gitea Actions** en el repositorio:
|
||||
> Settings → Actions → Enable repository actions
|
||||
|
||||
**2. Arrancar un act_runner** (ejecutor del pipeline). Obtén el token en:
|
||||
> Settings → Actions → Runners → Create Runner Token
|
||||
|
||||
Añádelo a `.env` y arranca el runner:
|
||||
|
||||
```bash
|
||||
# En .env:
|
||||
RUNNER_REGISTRATION_TOKEN=<token>
|
||||
|
||||
docker compose -f docker-compose.runner.yml up -d
|
||||
```
|
||||
|
||||
El runner se registra automáticamente y queda disponible para ejecutar workflows.
|
||||
|
||||
**3. El siguiente push a `main`** disparará la build automáticamente. Puedes seguirla en:
|
||||
> Gitea → Actions → Workflows
|
||||
|
||||
---
|
||||
|
||||
## Despliegue en producción
|
||||
|
||||
### Detrás de un proxy inverso (Nginx / Caddy)
|
||||
|
||||
Reference in New Issue
Block a user