---
title: "Instalación con Docker"
description: "Instalar PrestaShop 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/prestashop/docker"
---

# Instalar PrestaShop con Docker

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

## Recursos

En reposo el stack usa unos 18 MiB en Caddy, unos 220 MiB en PHP-FPM y unos 170 MiB en MariaDB. El primer `up` construye la imagen de PrestaShop y tarda algunos minutos, porque compila las extensiones de PHP.

## Variables obligatorias

| Variable | Qué debe contener |
|---|---|
| `PS_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`. |
| `DB_PASSWORD` y `DB_ROOT_PASSWORD` | Contraseñas de la base de datos. |
| `PS_ADMIN_EMAIL` y `PS_ADMIN_PASSWORD` | Correo y contraseña del administrador del back office. Solo se usan al instalar: si los cambias después en el `.env`, la cuenta no cambia (hazlo desde el back office). |
| `PS_FOLDER_ADMIN` | Nombre del directorio del back office. Usa uno difícil de adivinar, por ejemplo `admin-$(openssl rand -hex 4)`. |
| `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 configurada para Chile (idioma `es`, país `cl` y zona horaria `America/Santiago`), sin productos de demostración. Si vendes en otro país, cambia `PS_LANGUAGE`, `PS_COUNTRY` y `PS_TIMEZONE` (y el nombre en `PS_SHOP_NAME`) **antes** del primer arranque: estos valores solo se usan en la instalación inicial y después se modifican desde el back office.

## Acceso

Cuando `setup` termina, la tienda queda disponible en tu dominio y el back office en `/<PS_FOLDER_ADMIN>/`, donde ingresas con `PS_ADMIN_EMAIL` y `PS_ADMIN_PASSWORD`. Puedes cambiar el nombre del directorio en cualquier momento: `setup` lo renombra en el siguiente `up`.

## Actualizaciones

PrestaShop se actualiza desde el back office, con el módulo Update Assistant. `PS_VERSION` solo se usa al crear el volumen de la tienda. Para actualizar PHP, reconstruye la imagen con un nuevo `PHP_VERSION`.

## Restaurar un respaldo

Los respaldos incluyen la base de datos y la carpeta completa de la tienda, sin cachés ni registros. Para restaurar uno:

```shell
docker compose stop prestashop
docker compose run --rm --no-deps backup restore <fecha>
docker compose start prestashop
```

## Notas

- El núcleo de PrestaShop no necesita tareas programadas, por lo que el stack no incluye cron. Si un módulo las necesita (por ejemplo, tasas de cambio), prográmalas en el cron del servidor con `docker compose exec prestashop php <script>`.
- El dominio y el SSL de la tienda se toman de `PS_URL` en cada arranque, y los datos SMTP de `SMTP_*` cuando `SMTP_HOST` está definido: los cambios que hagas en esos ajustes desde el back office se reemplazan en el siguiente `up`.

## 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/prestashop/configuracion-inicial).



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

