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

# Instalar Bagisto con Docker

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

## Recursos

El stack necesita unos 512 MB de RAM y 1 GB de disco para las imágenes. En reposo usa unos 320 MiB en total (MariaDB ~120 MiB, PHP-FPM ~65 MiB, worker ~60 MiB, scheduler ~55 MiB y Caddy ~15 MiB).

La imagen de Bagisto se construye en tu servidor, por lo que el stack se levanta con `docker compose up -d --build` en vez de `docker compose up -d`. La primera construcción tarda aproximadamente un minuto y medio y genera una imagen de unos 430 MB.

## Variables obligatorias

| Variable | Qué debe contener |
|---|---|
| `BAGISTO_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`. |
| `BAGISTO_ADMIN_PATH` | Ruta del panel de administración (letras, números, `-` y `_`). No uses `admin`. |
| `APP_KEY` | Clave de cifrado de Laravel: el texto `base64:` seguido del resultado de `openssl rand -base64 32`. Guarda una copia, porque no se incluye en los respaldos. |
| `DB_PASSWORD` y `DB_ROOT_PASSWORD` | Contraseñas de la base de datos. |
| `BAGISTO_ADMIN_EMAIL` y `BAGISTO_ADMIN_PASSWORD` | Correo y contraseña del primer administrador. La contraseña solo se aplica en la instalación inicial, y el correo recibe las notificaciones de la tienda. |
| `SMTP_HOST` | **Recomendada:** el stack arranca sin ella, pero la plataforma no podrá enviar correos. Servidor SMTP. Completa también `SMTP_PORT`, `SMTP_SECURE`, `SMTP_USER`, `SMTP_PASSWORD`, `SMTP_FROM` y `SMTP_FROM_NAME` según tu proveedor. |

Bagisto solo responde al dominio de `BAGISTO_URL`. Si la tienda también se usa con otro nombre (por ejemplo, `www`), agrégalo en `BAGISTO_EXTRA_HOSTS`.

## Configuración inicial de la tienda

La tienda se crea configurada para Chile: idioma `es`, moneda `CLP` con formato `$9.990`, país `CL` con origen de envíos en Santiago, IVA de 19 % incluido en los precios, un método de envío gratuito "Despacho" y "Transferencia bancaria" como único medio de pago. Si vendes en otro país, ajusta `BAGISTO_LOCALE`, `BAGISTO_CURRENCY`, `BAGISTO_COUNTRY`, `BAGISTO_CITY`, las variables `BAGISTO_TAX_*` y `BAGISTO_PRICES_INCLUDE_TAX` **antes** del primer arranque. `BAGISTO_COUNTRY`, `BAGISTO_CITY`, `BAGISTO_TAX_*` y `BAGISTO_PRICES_INCLUDE_TAX` solo se aplican en la instalación inicial y después se modifican desde el panel.

`BAGISTO_LOCALE` (idioma por defecto) y `BAGISTO_CURRENCY` (moneda base) se leen en cada arranque: no los cambies después de la instalación, porque la base de datos debe tener ese idioma y esa moneda. `BAGISTO_STORE_NAME` también se lee en cada arranque como nombre de la aplicación en el panel; en la instalación inicial se usa además como nombre de la tienda y título de la página de inicio, que después se editan desde el panel.

## Acceso

Cuando `setup` termina, la tienda queda disponible en tu dominio y el panel de administración en `/<BAGISTO_ADMIN_PATH>`, con el usuario `BAGISTO_ADMIN_EMAIL`.

## Actualizaciones

Bagisto se actualiza cambiando la versión en el `.env`. Respalda primero y, si es una nueva versión menor, revisa el `UPGRADE.md` de Bagisto. Luego cambia `BAGISTO_VERSION` y `BAGISTO_SHA256` (el SHA-256 del archivo de la nueva versión) y ejecuta `docker compose up -d --build`: la imagen se reconstruye y `setup` aplica las migraciones antes de que arranque PHP-FPM.

Las extensiones, temas y métodos de pago son paquetes de Laravel que se agregan a la imagen: con `composer require` en `image/Dockerfile`, o copiándolos a `packages/` y registrando su provider en `bootstrap/providers.php`; luego ejecuta `docker compose up -d --build`. Reconstrúyela también periódicamente con `docker compose build --pull` para recibir las correcciones de seguridad de PHP y Alpine.

## Restaurar un respaldo

Los respaldos incluyen la base de datos y los archivos de la tienda (archivos subidos, imágenes del tema, importaciones y facturas). `APP_KEY` no se incluye: conserva tu `.env`. Para restaurar uno:

```shell
docker compose stop php worker scheduler
docker compose run --rm --no-deps backup restore <fecha>
docker compose up -d
```

Al volver a levantar el stack, `setup` limpia las cachés. La base de datos debe estar en ejecución (`docker compose up -d db` si el stack está detenido). La restauración borra primero todas las tablas, así que no queda nada de lo creado después del respaldo.

## Notas

- Si la primera instalación falla, los siguientes arranques se detienen sin cambiar nada (la base de datos tiene tablas pero no hay administrador). Para reintentar, borra los datos con `docker compose down -v` y vuelve a levantar el stack. Hazlo solo en una instalación nueva, nunca en una tienda con datos.
- La configuración de SMTP que guardes en el panel (Configuration > Emails) tiene prioridad sobre las variables `SMTP_*`.
- Bagisto guarda en caché las páginas completas para los visitantes. Si modificas contenido directamente en la base de datos, límpiala con `docker compose run --rm console responsecache:clear`.
- La instalación incluye el contenido de demostración del tema ("Tienda de Demostración"); edítalo en Appearance > Sections.

## Siguiente paso

Con Bagisto funcionando, configúralo como origen de datos en BillMySales siguiendo la [configuración inicial](https://www.billmysales.com/docs/datasources/bagisto/configuracion-inicial).



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

