feat: Add Dockerfile and initial Docker setup files
This commit is contained in:
173
README.md
173
README.md
@@ -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.**
|
||||
Reference in New Issue
Block a user