feat: Add Dockerfile and initial Docker setup files

This commit is contained in:
komkida91
2026-01-31 16:04:55 +01:00
parent 70c533e755
commit 59812e547e
31 changed files with 7720 additions and 1776 deletions

173
README.md
View File

@@ -1,98 +1,75 @@
# WordPress con Docker Compose
Ejemplo básico de WordPress usando Docker Compose con MySQL y phpMyAdmin.
## 🚀 Inicio Rápido
### Requisitos
- Docker instalado
- Docker Compose instalado
### Instalación
1. **Clonar o descargar este proyecto**
2. **Iniciar los contenedores:**
```bash
docker-compose up -d
```
3. **Acceder a WordPress:**
- Abre tu navegador en: http://localhost:8080
- Sigue el asistente de instalación de WordPress
4. **Acceder a phpMyAdmin (opcional):**
- Abre tu navegador en: http://localhost:8081
- Usuario: `root`
- Contraseña: `root_password`
## 📝 Configuración
### Cambiar puertos
Si los puertos 8080 o 8081 están ocupados, edita `docker-compose.yml`:
```yaml
ports:
- "TU_PUERTO:80" # Cambia TU_PUERTO por el que prefieras
```
### Cambiar credenciales
Edita las variables de entorno en `docker-compose.yml`:
- `MYSQL_PASSWORD`: Contraseña del usuario de WordPress
- `MYSQL_ROOT_PASSWORD`: Contraseña del root de MySQL
- `WORDPRESS_DB_PASSWORD`: Debe coincidir con `MYSQL_PASSWORD`
## 🛠️ Comandos Útiles
### Ver logs
```bash
docker-compose logs -f
```
### Detener contenedores
```bash
docker-compose down
```
### Detener y eliminar volúmenes (⚠️ borra los datos)
```bash
docker-compose down -v
```
### Reiniciar un servicio específico
```bash
docker-compose restart wordpress
```
### Ver contenedores en ejecución
```bash
docker-compose ps
```
## 📁 Estructura
```
.
├── docker-compose.yml # Configuración de servicios
├── wp-content/ # Temas y plugins personalizados (se crea automáticamente)
└── README.md # Este archivo
```
## 🔒 Seguridad
⚠️ **IMPORTANTE**: Este es un ejemplo básico para desarrollo. Para producción:
- Cambia todas las contraseñas por defecto
- Usa variables de entorno seguras
- Configura SSL/TLS
- Implementa un firewall
- Usa secrets de Docker o un gestor de secretos
## 🐳 Servicios Incluidos
- **WordPress**: Aplicación principal (puerto 8080)
- **MySQL 8.0**: Base de datos (puerto interno)
- **phpMyAdmin**: Administrador de base de datos (puerto 8081)
## 📚 Recursos
- [Documentación de WordPress](https://wordpress.org/support/)
- [Documentación de Docker Compose](https://docs.docker.com/compose/)
# GKACHELE™ Agent - Configuración del Asistente y Documentación del Proyecto
Este archivo define las reglas, el contexto y el flujo principal para el asistente de IA (y cualquier desarrollador) trabajando en el ecosistema GKACHELE™.
## 🎯 Misión del Proyecto
GKACHELE™ es un sistema SaaS modular para la creación y gestión de sitios web, enfocado en la flexibilidad, el control de versiones mediante Gitea y el despliegue optimizado en Raspberry Pi/Linux.
## ⚠️ REGLAS CRÍTICAS (NUNCA ROMPER)
### 1. Prohibición de Referencias Externas
- **NUNCA** mencionar "WordPress", "wordpress", "WP" o "wp-" en el código fuente.
- Este es un sistema **propio e independiente**.
- **Reemplazos**:
- "WordPress" -> "GKACHELE™" o "Sistema Modular".
- "wp-admin" -> "/dashboard".
- "wp_options" -> "tabla settings".
### 2. Metodología GKACHELE™
- **Prioridad 1: Funcionalidad**. Hacer que el código funcione y sea verificado en producción (Raspberry).
- **Prioridad 2: Limpieza**. Refactorizar y optimizar SOLO después de que la funcionalidad sea confirmada.
- **Flujo**: `Funcionalidad -> Probar -> Funciona -> Limpieza -> Documentar`.
## 🛠️ Skills & Infraestructura
### Gestión de Repositorios (Gitea)
- Uso de `gitea_connector.py` para automatizar la creación de organizaciones y repositorios por cliente.
- Workflows de auto-commit y auto-deploy tras cambios en el customizer.
### Infraestructura (Raspberry Pi & Docker)
- Despliegue mediante `docker-compose`.
- Scripts de sincronización: `sync-to-raspberry.sh`, `update-code-pi.sh`.
- Dominios gestionados via DuckDNS.
## 📝 Guías de Trabajo para el Agente
- **Análisis antes de actuar**: Siempre revisar la carpeta `memoria/` antes de realizar cambios estructurales.
- **Verificación de reglas**: Antes de cada commit, realizar un grep para asegurar que no se colaron referencias prohibidas.
- **Persistencia**: Actualizar `task.md` y la memoria del proyecto tras completar hitos importantes.
---
## 🔄 Flujo Principal de la Aplicación GKACHELE™
Este es el proceso completo, desde un nuevo visitante hasta un sitio web publicado:
1. **Visita a la Landing Page (`/`):**
* Un cliente potencial visita la página principal del servicio.
2. **Solicitud de Plan y Configuración Inicial:**
* Desde la Landing Page, el cliente selecciona un plan (Base, Pro, Premium).
* Rellena un formulario emergente (menú desplegable) con información inicial (nombre, email, rubro, etc.).
* Este proceso redirige al usuario a la página de registro con los datos pre-cargados.
3. **Registro de Cliente (`/register`):**
* El cliente finaliza su registro en la plataforma.
4. **Creación del Sitio en Borrador (`/customizer`):**
* Una vez registrado y/o logueado, el cliente es dirigido al "Customizer". Aquí puede diseñar y personalizar su sitio web, que permanece en estado de borrador y no es público.
5. **Envío de Solicitud de Publicación:**
* Cuando el cliente considera que su sitio en borrador está listo, lo envía para tu revisión y aprobación.
6. **Revisión en el Dashboard del Administrador (`/dashboard`):**
* Tú, como administrador del sistema, recibes esta solicitud en tu panel principal. Aquí puedes ver todos los sitios pendientes de aprobación.
7. **Aprobación o Rechazo Manual:**
* Revisas el sitio del cliente. Desde tu dashboard, decides si **apruebas** o **rechazas** la solicitud de publicación.
8. **Panel de Cliente (`/admin`) y Publicación del Sitio:**
* Si la solicitud es **aprobada**, el sitio web del cliente se **publica**, y se habilita un panel de administración específico para ese cliente (`/admin`), desde donde puede gestionar su sitio en línea.
9. **Visualización Pública del Sitio:**
* El sitio web aprobado y publicado es ahora accesible para cualquier usuario de internet en su dominio asignado.
---
**© 2025 GKACHELE™. Todos los derechos reservados.**