Ir al contenido

Resumen del alojamiento propio

solyto se puede alojar completamente por tu cuenta. Todos los componentes se publican como imágenes Docker, y el repositorio selfhosted proporciona una pila completa de Docker Compose con todo interconectado.

  • Control total — tus datos permanecen en tu propio hardware
  • Sin acceso de terceros — nadie más tiene acceso a tus datos, nunca
  • Personalización — configura funciones, desactiva las que no necesites
  • Sin dependencia de un proveedor — pila Docker estándar, fácil de migrar o respaldar
  • Gratis — sin suscripciones, sin límites

El único requisito de software es Docker y Docker Compose — todo lo demás se ejecuta dentro de contenedores. solyto es ligero: funciona perfectamente en una Raspberry Pi, y cualquier VPS o servidor dedicado es más que suficiente.

También necesitas:

  • Un servidor accesible desde internet (VPS, servidor dedicado o servidor doméstico con redirección de puertos)
  • Tres nombres de dominio apuntando a la IP de tu servidor (app, api, dav)
  • Una dirección de correo válida para la generación de certificados TLS (Let’s Encrypt)

solyto se ejecuta como 10 servicios Docker:

ServicioImagenDescripción
traefiktraefik:v3Proxy inverso con HTTPS automático vía Let’s Encrypt
nginxsolyto/api-nginxServidor web para la API y DAV, comprobación de estado en /api/v1/health
apisolyto/api-phpBackend Laravel PHP-FPM, ejecuta startup.sh y luego php-fpm
davsolyto/api-phpServicio WebDAV/CalDAV/CardDAV (misma imagen, configuración distinta)
queuesolyto/api-phpTrabajador de cola de Laravel (queue:work --tries=3 --timeout=300)
appsolyto/appFrontend SvelteKit con SSR, se ejecuta en el puerto 3000
imgproxydarthsim/imgproxyProcesamiento de imágenes opcional (solo si IMAGE_DRIVER=imgproxy)
mariadbmariadb:12Base de datos principal de la API
postgrespostgres:17Base de datos para CalDAV/CardDAV (SabreDAV)
redisredis:7.4.1Caché, backend de colas y almacenamiento de sesiones

El proyecto solyto publica y mantiene tres imágenes:

ImagenBasePropósito
solyto/appNode 22 AlpineFrontend SvelteKit con SSR, puerto 3000
solyto/api-phpPHP 8.4 FPMBackend de la aplicación Laravel
solyto/api-nginxNginx AlpineSirve archivos estáticos y actúa de proxy hacia PHP-FPM

Tres redes Docker aíslan los servicios por función:

RedServiciosPropósito
publictraefik, nginx, appServicios accesibles desde el exterior
apinginx, api, dav, queue, imgproxyComunicación interna de la API
dbapi, dav, queue, mariadb, postgres, redisSolo acceso a bases de datos

Flujo de tráfico: Internet → Traefik → Nginx → PHP-FPM (api/dav) y Internet → Traefik → App (puerto 3000).

VolumenUsado porPropósito
mariadb_datamariadbPersistencia de datos de MariaDB
pg_datapostgresPersistencia de datos de PostgreSQL
redis_dataredisPersistencia de datos de Redis
traefik_acmetraefikCertificados TLS de Let’s Encrypt
./storage/api, dav, queue, nginx, imgproxyAlmacenamiento de archivos compartido (subidas, registros, caché del framework)