Sylius: alternativa Open-Core a Shopify en 2026
Sylius es un framework de e-commerce construido sobre Symfony, orientado a desarrolladores que necesitan máxima flexibilidad para tiendas B2B o B2C complejas.
El núcleo es open source, pero puede haber funciones avanzadas o soporte empresarial de pago — revisa la licencia.
ℹ️ No existe una imagen oficial todo-en-uno "sylius:latest": Sylius es un framework para construir tu tienda encima (como Symfony), y su artefacto real es la imagen base de PHP-FPM ghcr.io/sylius/sylius-php, que necesita tu propio código de aplicación y un servidor web delante. Este docker-compose no es desplegable tal cual — sigue la guía oficial de instalación de Sylius para generar tu propio proyecto.
Audit Snapshot
Ver notas →Licencia — Coincide con GitHub
GitHub — Activo
Último release — v2.3.0 · hace 15 días
Docker Compose — No verificado
Producción — No probado por AltFreeStack
Sylius vs. Shopify
Ventajas
- Máxima flexibilidad para lógica de negocio compleja
A tener en cuenta
- Requiere experiencia sólida en Symfony para sacarle partido
- No hay imagen todo-en-uno oficial (ver nota arriba) — hay que generar el proyecto siguiendo la guía de instalación
Guía rápida de instalación con Docker
Copia este docker-compose.yml, ajusta las contraseñas de ejemplo y ejecuta docker compose up -d en tu servidor. Ver la guía completa paso a paso →
💡 ¿SaaS oficial o self-hosted con AltFreeStack?
- En la nube oficial: una cuota mensual recurrente y límites de uso en Shopify.
- En tu propio VPS: el núcleo es gratis y auto-hospedable en tu propio servidor — sin la cuota mensual del SaaS, aunque algunas funciones avanzadas siguen de pago.
version: "3.9"
services:
sylius:
image: ghcr.io/sylius/sylius:latest
restart: unless-stopped
ports:
- "8080:80"
environment:
- DATABASE_URL=mysql://sylius:change-me-mysql-password@sylius-db:3306/sylius # password must match the canonical db password below
depends_on:
- sylius-db
sylius-db:
image: mariadb:11
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=change-me-mysql-root-password # REQUIRED: generate a random secret before first run
- MYSQL_DATABASE=sylius
- MYSQL_USER=sylius
- MYSQL_PASSWORD=change-me-mysql-password # REQUIRED: generate a random secret before first run
volumes:
- sylius_db_data:/var/lib/mysql
volumes:
sylius_db_data:
🚀 Despliegue en 1 comando
Recomendado para novatosCopia este único comando y pégalo en la consola de tu VPS recién creado (Vultr, DigitalOcean...). Descarga el script, lo muestra en pantalla para que veas exactamente qué va a hacer (nunca un pipe directo a ciegas) y, solo entonces, instala Docker si hace falta, crea los archivos con los secretos ya generados y arranca todo — sin nano, sin copiar y pegar bloques de código.
curl -sSL ".../api/deploy?stack=sylius" -o deploy.sh && cat deploy.sh && bash deploy.shEste docker-compose corresponde a un proyecto con actividad reciente en GitHub — último commit hoy.
¿Este docker-compose no te funciona? Repórtalo en GitHub →Ficha técnica
- Licencia
- MIT
- Categoría
- E-commerce
- Sustituye a
- Shopify
- Stack técnico
- PHPSymfonyMySQL
Bajo el capó
Base de datos
MySQL
Lenguaje
PHP (Symfony)
Plataformas
Web
Funcionalidades principales
- Arquitectura Symfony extensible
- Soporta tiendas B2B y B2C
- API REST completa
Vista previa

Imagen pública proporcionada por Sylius en su propio sitio web.
💾 Copias de seguridad en 3 pasos (Día 2)
Mientras la carpeta ./data (el "volumen" mapeado al contenedor) exista en tu servidor, tus datos sobreviven a cualquier reinicio o actualización — es lo único que necesitas respaldar.
1. Crea una copia comprimida en el servidor
tar -czvf backup-$(date +%F).tar.gz ./data2. Descárgala a tu ordenador
Desde la terminal de tu ordenador (no la de tu servidor):
scp root@TU_IP:~/app/backup-*.tar.gz ./3. Restaura en caso de emergencia
tar -xzvf backup-archivo.tar.gz🌐 Conectar tu dominio con SSL gratis
Paso 1 — Configura el DNS
En el panel de tu registrador de dominio (Cloudflare, Namecheap, GoDaddy...), crea un registro:
- Tipo
- A
- Nombre/Host
- @ (dominio raíz) o un subdominio, ej. app
- Contenido/Valor
- La IP pública de tu servidor
Espera entre 5 y 15 minutos a que el registro se propague por internet.
Paso 2 — Proxy inverso automático con Caddy
Un solo archivo, sin configurar Nginx ni certificados manuales — Caddy emite y renueva el HTTPS de Let's Encrypt solo.
Crea un archivo llamado Caddyfile:
tudominio.com {
reverse_proxy localhost:8080
}Levanta Caddy con este comando (descarga la imagen y arranca en segundo plano):
docker run -d -p 80:80 -p 443:443 --name caddy --restart always -v $PWD/Caddyfile:/etc/caddy/Caddyfile -v caddy_data:/data caddy