Atualizar README.md
This commit is contained in:
parent
6077572a69
commit
0eb351ddcf
117
README.md
117
README.md
|
|
@ -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).
|
||||
Loading…
Reference in New Issue