---
title: "Instalación con Docker"
description: "Instalar Shopware con Docker"
type: "docs"
category: "doc"
tags: []
authors: [Anonymous]
date: "2026-09-25"
last_update: "2026-09-25"
time_minutes: 3
draft: false
unlisted: false
url: "https://www.billmysales.com/docs/datasources/shopware/docker"
---

# Instalar Shopware con Docker

Sigue la [guía de los stacks de Docker](https://www.billmysales.com/docs/stacks) para instalar Shopware con nuestro [stack](https://github.com/BillMySales/billmysales-docker-shopware) y ten en cuenta lo propio de esta plataforma. El detalle completo está en el README del repositorio.

## Recursos

Reserva cerca de 1 GB de RAM para el stack. En reposo usa unos 700 MiB: 15 MiB en Caddy, 160 MiB en Shopware, 175 MiB en el worker de colas, 140 MiB en el scheduler y 210 MiB en MariaDB. El primer `up` construye la imagen y tarda alrededor de un minuto, porque descarga Shopware con Composer.

## Variables obligatorias

| Variable | Qué debe contener |
|---|---|
| `SW_URL` | URL pública de la tienda, por ejemplo `https://tienda.example.com`. |
| `SITE_ADDRESS` | El dominio de la tienda, por ejemplo `tienda.example.com`. |
| `APP_SECRET` | Clave secreta de la aplicación. Genérala con `openssl rand -hex 32`. |
| `INSTANCE_ID` | Identificador de la instalación. Genéralo con `openssl rand -hex 16` y no lo cambies después. |
| `DB_PASSWORD` | Contraseña de la base de datos. Va dentro de una URL, así que usa solo caracteres hexadecimales: genérala con `openssl rand -hex 24`. |
| `DB_ROOT_PASSWORD` | Contraseña de root de la base de datos. |
| `SW_ADMIN_PASSWORD` y `SW_ADMIN_EMAIL` | Contraseña y correo del administrador. Solo se usan al instalar (igual que `SW_ADMIN_USER`): si los cambias después en el `.env`, la cuenta no cambia (hazlo desde la administración). |
| `SMTP_HOST` | **Recomendada:** el stack arranca sin ella, pero la plataforma no podrá enviar correos. Servidor SMTP. Completa también `SMTP_PORT`, `SMTP_SECURE` (por defecto `tls`), `SMTP_USER`, `SMTP_PASSWORD` y `SMTP_FROM` según tu proveedor. |

## Configuración inicial de la tienda

La tienda se crea con moneda `CLP` e idioma `en-GB`. Cambia `SW_CURRENCY`, `SW_LOCALE` (y el nombre en `SW_SHOP_NAME`) **antes** del primer arranque: estos valores solo se aplican en la instalación inicial y después se modifican desde la administración. `SW_LOCALE` acepta `en-GB` o `de-DE`; otros idiomas requieren un plugin de paquete de idioma.

## Acceso

Cuando `setup` termina, la tienda queda disponible en tu dominio y la administración en `/admin`, con el usuario `admin` (configurable con `SW_ADMIN_USER`).

## Actualizaciones

Shopware se actualiza cambiando `SW_VERSION` en el `.env` y ejecutando:

```shell
docker compose up -d --build
```

Se construye una imagen nueva y `setup` aplica las migraciones de la base de datos. Respalda antes de actualizar.

El código vive en la imagen, así que para recibir las correcciones de seguridad de PHP y del sistema operativo reconstrúyela periódicamente:

```shell
docker compose build --pull && docker compose up -d
```

## Restaurar un respaldo

Los respaldos incluyen la base de datos, los archivos privados (por ejemplo, facturas) y los archivos multimedia; el tema, las miniaturas y los sitemaps se regeneran. Para restaurar uno:

```shell
docker compose stop shopware worker scheduler
docker compose run --rm --no-deps backup restore <fecha>
docker compose start shopware worker scheduler
docker compose run --rm console cache:clear
docker compose run --rm console media:generate-thumbnails
```

El último comando solo es necesario si faltan miniaturas.

## Notas

- Las tareas en segundo plano (como el envío de correos) las procesa el servicio `worker`, no el navegador de la administración.
- La búsqueda usa la base de datos; el stack no incluye OpenSearch.

## Siguiente paso

Con la tienda funcionando, instala el plugin de BillMySales y conéctalo a tu pasarela de facturación siguiendo la [configuración inicial](https://www.billmysales.com/docs/datasources/shopware/configuracion-inicial).



---
Última actualización el 25/09/2026

