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

# Instalar nopCommerce con Docker

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

## Recursos

El stack necesita cerca de 1 GB de disco para las imágenes y 1 GB de RAM. En reposo usa unos 470 MiB en total (unos 400 MiB nopCommerce, 50 MiB PostgreSQL y 13 MiB Caddy). El primer arranque tarda cerca de un minuto.

## Variables obligatorias

| Variable | Qué debe contener |
|---|---|
| `NOP_URL` | URL pública de la tienda, por ejemplo `https://tienda.example.com`. |
| `NOP_HOST` | El nombre de host de `NOP_URL`, por ejemplo `tienda.example.com`. nopCommerce ejecuta sus tareas programadas (como el envío de correos) llamando a su propia URL. |
| `SITE_ADDRESS` | El dominio de la tienda, por ejemplo `tienda.example.com`. |
| `DB_PASSWORD` | Contraseña de la base de datos. |
| `NOP_ADMIN_EMAIL` y `NOP_ADMIN_PASSWORD` | Correo y contraseña del primer administrador. Solo se usan al crearlo: cambiarlos después en el `.env` no modifica la cuenta. |
| `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` y `SMTP_FROM` según tu proveedor. Mientras no lo configures, los correos quedan en cola. Por defecto, `SMTP_FROM` es `noreply@example.com`. `SMTP_FROM` también recibe las notificaciones de la tienda (nuevos pedidos). |

## Configuración inicial de la tienda

`NOP_COUNTRY_CULTURE` define el país y el idioma de la tienda, con el formato país-cultura del instalador de nopCommerce: `CL-es-CL` (por defecto), `US-en-US`, `ES-es-ES`, `DE-de-DE`, etc. Debe ser uno de los valores de la lista del instalador; con cualquier otro, `setup` se detiene antes de instalar. La tienda queda con el idioma de esa cultura y la moneda del país como únicos publicados. El paquete de idioma se descarga desde nopcommerce.com; si no se puede descargar, la tienda queda en inglés y `setup` muestra una advertencia.

Con el valor por defecto, la tienda se crea configurada para Chile: idioma español, moneda `CLP`, IVA de 19 % incluido en los precios, un método de envío "Despacho", el pago por "Transferencia bancaria", correos en español y código postal opcional. Si el idioma de la tienda es español, se usan esos nombres y los correos en español (`NOP_EMAILS_SPANISH`); en otro idioma, las categorías de impuestos y el envío quedan en inglés ("Taxable"/"Exempt", "Shipping"), el pago conserva los textos del instalador y las plantillas de correo quedan en inglés. El código postal opcional es solo para Chile.

Ajusta `NOP_COUNTRY_CULTURE`, `NOP_STORE_NAME`, `NOP_TAX_RATE`, `NOP_PRICES_INCLUDE_TAX` y `NOP_EMAILS_SPANISH` **antes** del primer arranque: estos valores solo se aplican en la instalación inicial y después se modifican desde el panel de nopCommerce. `NOP_STORE_NAME` además se usa en cada arranque como nombre del remitente de los correos, si no defines `SMTP_FROM_NAME`. `TIMEZONE` define la zona horaria de los contenedores en cada arranque y la de la tienda solo en la instalación inicial.

## Acceso

Cuando `setup` termina, la tienda queda disponible en tu dominio y el panel de administración en `/admin`, con el correo y la contraseña de `NOP_ADMIN_EMAIL` y `NOP_ADMIN_PASSWORD`.

## Actualizaciones

nopCommerce se actualiza cambiando `NOP_VERSION` en el `.env` y ejecutando `docker compose up -d --build`: la imagen se reconstruye con la nueva versión oficial y `setup` aplica las migraciones. Respalda antes y lee las notas de la versión. Los plugins nuevos de una versión no se instalan al actualizar; si los necesitas, instálalos desde el panel (Configuration > Local plugins).

Reconstruye la imagen periódicamente para recibir los parches de seguridad de .NET y Alpine:

```shell
docker compose build --pull
```

## Restaurar un respaldo

Los respaldos incluyen la base de datos (con las imágenes de los productos), la carpeta `App_Data` (con las claves de las sesiones) y los archivos subidos. Para restaurar uno:

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

## Notas

- El stack construye su propia imagen de nopCommerce (la aplicación oficial sobre el runtime de .NET actualizado), así que para instalar y actualizar usa `docker compose up -d --build` en lugar de `docker compose up -d`.
- **Detrás de Traefik**, además de las variables que indica la guía general, deja `NOP_HOST` con el host de la tienda: nopCommerce se llama a sí mismo a través de Traefik.
- Caddy solo acepta el host de `NOP_HOST`; cualquier otro responde con error 400. Si la tienda también responde en otro nombre (por ejemplo, `www`), agrégalo en `NOP_EXTRA_HOSTS`, separado por espacios.
- La licencia de nopCommerce exige mantener el enlace "Powered by nopCommerce" en el pie de la tienda, salvo que compres su eliminación.

## Siguiente paso

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



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

