Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CI/CD Example

CI CD Pages

API REST mínima para demostrar un flujo completo de CI/CD con GitHub Actions y Docker, publicada en internet junto con un sitio estático.

Superficies públicas

Superficie Dónde vive URL
Sitio web GitHub Pages https://developabba.github.io/ci-cd-example/
API Servidor Ubuntu propio vía Tailscale Funnel https://abbadeslinux01.tail7bd986.ts.net
Documentación interactiva Swagger UI servida por la API https://abbadeslinux01.tail7bd986.ts.net/docs
Especificación OpenAPI 3 servida por la API https://abbadeslinux01.tail7bd986.ts.net/openapi.json

Flujo de trabajo

feature/* ──→ develop ──→ main
                  ↓           ↓
             CI pipeline   CD pipeline ──→ ghcr.io ──→ servidor Ubuntu
            (lint + test)  (lint + test              (docker + funnel)
                            + build + push)
                              ↓
                          Pages pipeline ──→ sitio estático

Endpoints

Método Ruta Descripción
GET /health Estado de la app
GET /items Lista todos los items
GET /items/count Número total de items
POST /items Crea un item — body: { "name": "..." }
DELETE /items/:id Elimina un item por id
GET /openapi.json Especificación OpenAPI 3
GET /docs Swagger UI

Los items viven en memoria: se reinician con el proceso. Es intencional.

Postura de seguridad

  • Cabeceras de helmet (CSP, HSTS, nosniff, X-Frame-Options), sin X-Powered-By.
  • Rate limiting de 300 peticiones cada 15 minutos por IP.
  • Body JSON limitado a 10 kB, con 400 explícito ante JSON malformado.
  • CORS restringido al origen del sitio; configurable con CORS_ORIGINS.
  • Contenedor sin root, read_only, cap_drop: ALL, no-new-privileges.

Desarrollo local

npm install
npm run dev

Correr con Docker

docker compose up --build

Desplegar en producción

Ver deploy/README.md.

Tests

npm test

Linter

npm run lint

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages