Pampling utiliza una infraestructura centralizada basada en un servidor local Ubuntu, donde se ejecutan contenedores Docker gestionados por Coolify. Todas las aplicaciones comparten la misma infraestructura base, aunque cada equipo puede elegir el stack tecnológico que mejor se adapte a su proyecto.
Todos los proyectos de Pampling usan estos componentes. No son negociables:
| Componente | Tecnología | Descripción |
|---|---|---|
| Servidor | Ubuntu 24.04 (192.168.1.10) | Servidor físico en red local |
| Deploy | Coolify (Docker) vía API REST | Gestión y despliegue de contenedores |
| Base de datos | PostgreSQL (una DB por aplicación) | Contenedor compartido en Coolify |
| Build system | Nixpacks | Detecta el lenguaje y construye la imagen automáticamente |
| Repositorio | Bitbucket (workspace pampling) |
Control de versiones, deploy keys |
| Herramienta IA | Claude Code (Anthropic) | Desarrollo asistido por IA |
| Parámetro | Valor |
|---|---|
| Host | 192.168.1.10 |
| Sistema | Ubuntu 24.04 LTS |
| Panel Coolify | http://192.168.1.10:8000 |
| PostgreSQL | 192.168.1.10:5432 |
El puerto 8000 de Coolify está expuesto a la red local. Las llamadas a la API se hacen directamente sin necesidad de SSH.
Esta es la combinación de tecnologías que recomendamos para proyectos nuevos. La mayoría de aplicaciones existentes usan este stack, por lo que hay más ejemplos, documentación y soporte interno.
| Capa | Tecnología recomendada | Alternativas válidas |
|---|---|---|
| Backend | Python 3.12 + FastAPI + Uvicorn | Node.js, Go, o cualquier lenguaje que Nixpacks soporte |
| Frontend | HTML/CSS/JS vanilla + ApexCharts | React, Vue, Svelte — cualquier framework JS |
| Estilos | Design system Pampling (ver Guía de Estética) | Tailwind, Bootstrap — respetando la paleta de colores |
No es obligatorio usar Python/FastAPI. Si un proyecto tiene requisitos que encajan mejor con otra tecnología, úsala. Lo importante es que se despliegue en Coolify y siga las convenciones de infraestructura.
Para proyectos Python/FastAPI:
proyecto/
├── backend/
│ ├── main.py # App FastAPI, rutas, static files
│ ├── database.py # Conexión PostgreSQL
│ └── routers/ # Endpoints agrupados por dominio
├── frontend/
│ ├── css/
│ ├── js/
│ └── *.html
├── requirements.txt # Dependencias (en la raíz para Nixpacks)
├── Procfile # web: uvicorn backend.main:app --host 0.0.0.0 --port 8000
├── CLAUDE.md # Info del proyecto (compartido, ver checklist)
└── CLAUDE.local.md # Credenciales locales (gitignored)
Importante: El fichero de dependencias (
requirements.txt,package.json, etc.) debe estar en la raíz del proyecto. Nixpacks lo busca ahí para detectar el lenguaje y resolver las dependencias.
Para otros stacks, adaptar la estructura manteniendo:
Procfile con el comando de arranqueCLAUDE.md del proyecto (ver Checklist)