Atualizar README.md

This commit is contained in:
Brasdrive 2025-11-04 22:25:56 -04:00
parent 6077572a69
commit 0eb351ddcf
1 changed files with 117 additions and 0 deletions

117
README.md
View File

@ -0,0 +1,117 @@
# Flysystem Offload — Almacenamiento universal para WordPress
Flysystem Offload sustituye el sistema de archivos local de WordPress por un backend remoto operado con Flysystem v3. Los medios se suben, sirven y eliminan directamente desde el proveedor seleccionado (S3 y compatibles en la primera versión) sin modificar el flujo editorial.
## Características
- **Proveedor seleccionable:** Amazon S3 y endpoints compatibles (MinIO, DigitalOcean Spaces, Wasabi, etc.).
- **Integración transparente:** hooks de `upload_dir`, `wp_get_attachment_url`, stream wrapper `fly://` y borrado sincronizado.
- **Arquitectura modular:** preparada para añadir SFTP, WebDAV y otros adaptadores en iteraciones futuras.
- **Panel de ajustes:** selector de proveedor y credenciales gestionadas desde la administración.
## Requisitos
- PHP 8.0+
- WordPress 6.0+
- Extensiones PHP: `curl`, `mbstring`, `xml`
- Acceso a Composer durante la construcción del paquete (o usar la imagen Docker proporcionada)
- Credenciales válidas de S3 o servicio compatible
## Instalación
### Opción A · Proyecto existente de WordPress
1. Clona este repositorio dentro del árbol de tu sitio:
`git clone https://git.brasdrive.com.br/Brasdrive/flysystem-offload.git`
2. Entra en la carpeta del plugin y ejecuta Composer para traer las dependencias:
```bash
cd flysystem-offload
composer install --no-dev --optimize-autoloader
```
3. Empaqueta el plugin con la carpeta `vendor/` incluida y súbelo a `/wp-content/plugins/` del sitio que corresponda (vía SCP, rsync o panel de hosting).
4. Activa **Flysystem Offload** desde **Plugins > Plugins instalados** en el escritorio de WordPress.
### Opción B · Imagen Docker (multi-stage)
El repositorio incluye un Dockerfile que construye una imagen basada en `wordpress:6.8.3-php8.4-apache` y prepara el plugin en tiempo de build:
```Dockerfile
# Etapa 1: composer:2.8.12 instala las dependencias en /app/wp-content/plugins/flysystem-offload
# Etapa 2: copia el plugin con vendor/ dentro de /usr/src/wordpress y /var/www/html
# Instala redis, WP-CLI y algunas utilidades
# Habilita módulos de Apache y carga configuraciones personalizadas de PHP/Apache
```
Pasos para usarla:
```bash
# Desde la raíz del repositorio
docker build -t flysystem-offload-wp .
# Arranca el contenedor exponiendo el puerto 80 (puedes convertirlo en un stack Compose si lo prefieres)
docker run --rm -p 8080:80 flysystem-offload-wp
```
La imagen resultante ya contiene:
- El plugin con todas sus dependencias PHP en `/usr/src/wordpress/wp-content/plugins/flysystem-offload`.
- Copia pre-sincronizada en `/var/www/html/wp-content/plugins` para que esté disponible desde el primer arranque.
- Extensión Redis habilitada, WP-CLI disponible y módulos `rewrite`, `headers`, `expires`, `deflate` activos.
### Nota sobre Composer
En entornos que no usan Docker, asegúrate de ejecutar `<plugin>/composer install` antes de empaquetar o desplegar. WordPress no ejecuta Composer automáticamente durante la activación de un plugin.
## Configuración inicial (S3 / compatible)
1. En el escritorio de WordPress abre **Ajustes > Flysystem Offload**.
2. Selecciona **Amazon S3 / Compatible**.
3. Completa los campos:
- Access Key
- Secret Key (permanece oculta tras guardarla)
- Región (`us-east-1`, `eu-west-1`, etc.)
- Bucket
- Prefijo opcional (subcarpeta dentro del bucket)
- Endpoint personalizado (solo para servicios compatibles con S3)
- URL CDN opcional (sustituye la URL pública del bucket por tu dominio CDN)
4. Guarda los cambios. El plugin reconstruye automáticamente el filesystem y el stream wrapper.
**Prefijo base:** Puedes definir un prefijo global (`wordpress/uploads/`) que se añadirá a todas las rutas remotas antes de delegar en el adaptador.
## Flujo de funcionamiento
- WordPress sigue usando `wp_handle_upload()`.
- Los filtros de `upload_dir` cambian `basedir` a `fly://...`.
- El stream wrapper reenvía lecturas/escrituras a Flysystem y este al cliente S3.
- `wp_get_attachment_url` reescribe la URL base con el dominio del bucket o el CDN configurado.
- Al eliminar un adjunto, se borran el archivo principal y sus derivadas desde el almacenamiento remoto.
## Roadmap inmediato
- Campos y validaciones para SFTP y WebDAV.
- Health check vía WP-CLI.
- Herramientas de migración para copiar la biblioteca existente al proveedor remoto.
- Adaptadores adicionales (GCS, Azure Blob) y conectores OAuth (Drive, OneDrive, Dropbox).
## Contribuir
1. Haz fork y crea una rama (`feature/tu-feature`).
2. Sigue los [WordPress Coding Standards](https://developer.wordpress.org/coding-standards/).
3. Ejecuta tests si están disponibles y actualiza la documentación si corresponde.
4. Abre un Pull Request describiendo el cambio.
- Issues: [GitLab Issues](https://git.brasdrive.com.br/Brasdrive/flysystem-offload/-/issues)
- Documentación: [docs.brasdrive.com.br/flysystem-offload](https://docs.brasdrive.com.br/flysystem-offload)
- Contacto: soporte@brasdrive.com.br
## Licencia
GPL v2. Consulta [LICENSE](LICENSE) para más detalles.
---
Desarrollado por [Brasdrive](https://brasdrive.com.br).