nopComerce é uma plataforma de e-commerce que ocupa uma posição de liderança em um nicho muito específico: soluções de e-commerce de código aberto construídas com a stack .NET.
Inicialmente desenvolvida para uso com o Microsoft SQL Server, hoje é compatível também com MySQL e PostgreSQL. Pareceu um projeto interessante porque eu buscava algo que eu pudesse implantar com IIS, o servidor web da Microsoft.
Isso também seria possível com o WordPress, que conta com o plugin WooCommerce, de longe uma das soluções mais populares de e-commerce, mas eu sinto que já escrevi demais sobre WordPress aqui e queria explorar algo diferente.
Apesar do foco dessa vez ser o Windows Server, o nopCommerce também pode ser hospedado em Linux utilizando Kestrel em vez do IIS, já que o ASP.NET Core é multiplataforma.
Os requisitos de software para a execução do nopCommerce são detalhados na página abaixo:
Eu segui com todas as versões mais recentes: nopCommerce na versão 4.90, que exige o runtime .NET 9.0, seguido do Microsoft SQL Server Express 2025.
Para o sistema operacional, foi utilizado o Windows Server 2025 Core (sem o ambiente gráfico), exigindo que boa parte da configuração seja feita através da linha de comando, utilizando o PowerShell.
O .NET pode ser baixado através dos links da página de requisitos do nopCommerce, que já aponta para a versão requerida.
O Microsoft SQL Server é um software proprietário, mas com dois tipos de edições gratuitas: SQL Server Developer e SQL Server Express.
O SQL Server Express tem algumas limitações em relação às edições pagas SQL Server Standard e SQL Server Enterprise, como a limitação de processamento a até 1 socket ou 4 núcleos e a limitação do tamanho do banco de dados a até 50 GB, o que pode ser suficiente para lojas de pequeno e médio porte.
As edições SQL Server Developer não têm nenhuma limitação, mas suas licenças não permitem a utilização em ambientes de produção, diferente da licença do SQL Server Express.
O download pode ser feito através do link a seguir:
O nopCommerce não tem um link aberto para download, sendo necessário se cadastrar no site. O download pode ser feito através da página:
Já com os arquivos na pasta de download, seguiremos para a instalação do Internet Information Services (IIS):
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Após a instalação, é possível verificar que ele está em execução com:
Get-Service W3SVC
Fazendo a configuração do firewall para abrir a porta HTTP para sua rede local:
netsh advfirewall firewall add rule name="HTTP" action=allow dir=in localport=80 protocol=tcp
Ao acessar o seu servidor via HTTP, é possível ver a página de boas-vindas, que é site padrão, localizado em C:\inetpub\wwwroot.

Você pode listar os websites e deletar o site padrão com:
Get-Website
Remove-Website "Default Web Site"
Instale o runtime do .NET e reinicie os IIS.
iisreset
Então, crie a pasta onde os arquivos do nopCommerce vão ficar e extraia nela o arquivo ZIP da aplicação.
mkdir C:\inetpub\nopCommerce
Expand-Archive -Path ".\Downloads\nopCommerce_4.90.6_NoSource_win_x64.zip" -DestinationPath "C:\inetpub\nopCommerce\"
Agora, deve-se criar o pool de aplicação do IIS. O pool de aplicação é como um usuário do sistema operacional que vai executar o serviço web. Isso pode ser feito com:
New-WebAppPool -Name "nopCommerce"
Set-ItemProperty "IIS:\AppPools\nopCommerce" `
-Name "managedRuntimeVersion" `
-Value ""
Set-ItemProperty "IIS:\AppPools\nopCommerce" `
-Name "managedPipelineMode" `
-Value "Integrated"
Após isso, é necessário conceder ao pool de aplicação a permissão de modificação na pasta da aplicação:
icacls C:\inetpub\nopCommerce /grant "IIS AppPool\nopCommerce:(OI)(CI)(M)"
Para criar o site no IIS:
New-Website `
-Name "nopCommerce" `
-PhysicalPath "C:\inetpub\nopCommerce" `
-ApplicationPool "nopCommerce" `
-Port 80
No entanto, se você acessar agora vai receber um erro HTTP 500. Isso é porque nas configurações do site ele tenta sobrescrever a configuração de módulo do servidor. Isso pode ser verificado no arquivo de configuração C:\inetpub\nopCommerce\web.config, que funciona como algo similar ao .htaccess do Apache.
Para desbloquear e permitir que a aplicação faça isso:
& "C:\Windows\System32\inetsrv\appcmd.exe" unlock config /section:system.webServer/modules
Ao acessar a página web, podemos ver a página de configuração, onde são solicitadas as informações para conexão ao banco de dados.
Uma opção interessante na página a caixa “Use integrated Windows Authentication”. Isso funciona de forma similar à conexão do tipo peer do PostgreSQL, no sentido de que o usuário é autenticado pela sua identificação no sistema operacional, não exigindo uma senha para a conexão, o que é considerado um método mais simples e mais seguro.
Seguindo com a instalação do Microsoft SQL Server Express, selecione a opção Basic.

Ao fim, o instalador retorna algumas informações sobre o sevidor instalado, como o nome da instância, SQLEXPRESS, e o banco de dados criado, master.

O Microsoft SQL Server tem instâncias que são processos diferentes que funcionam como servidores diferentes. Para se conectar, o servidor é especificado como:
<endereço do servidor>\<nome da instância>
Para configurar a autenticação integrada ao Windows para a conexão do nopCommerce, precisamos criar o login no servidor a partir da identidade existente no Windows para então criar o usuário no banco de dados – o Microsoft SQL Server tem essa separação entre o login no servidor e o usuário no banco de dados, diferente do PostgreSQL e MySQL em que os usuários são criados apenas no escopo do servidor.
Para se conectar servidor de banco de dados:
sqlcmd -S localhost\SQLEXPRESS -No -E
É possivel que a variável PATH não tenha atualizado na sua sessão após a instalação. Nesse caso você pode encontrar o caminho completo do sqlcmd com:
Get-ChildItem "C:\Program Files\Microsoft SQL Server\" -Filter "sqlcmd.exe" -Recurse
Os comandos em SQL para configuração ficam:
CREATE DATABASE nopCommerce
CREATE LOGIN [IIS APPPOOL\nopCommerce] FROM WINDOWS
GO
USE nopCommerce
CREATE USER [IIS APPPOOL\nopCommerce] FOR LOGIN [IIS APPPOOL\nopCommerce]
GO
ALTER ROLE db_owner ADD MEMBER [IIS APPPOOL\nopCommerce]
GO
Esse comando GO se faz necessário porque, diferente do MySQL ou PostgreSQL, que enviam os comandos ao servidor a cada ponto e vírgula, o Microsoft SQL envia os comandos em lotes. Os lotes são enviados com GO. E esse comando precisa ser enviado entre alguns outros comandos por causa de como o servidor processa e compila os lotes.
Por exemplo: se você envia “USE nopCommerce” no mesmo lote em que esse banco de dados é criado, ele dá um erro nesse comando justamente porque o banco de dados ainda não existe ainda.
Finalizada a configuração do banco de dados, a página de setup do nopCommerce pode ser acessada para a configuração da conexão.
No entanto, o nopCommerce utiliza o nome de domínio ou endereço de IP através do qual o servidor está sendo acessado e utiliza para definir algumas variáveis como site da loja e alguns links. Como eu não encontrei informações sobre como fazer a alteração de forma apropriada, recomendo que o setup na página web seja realizado já através do domínio que será utilizado.
Para expor o serviço na internet, eu utilizei o serviço Cloudflare Tunnel em vez do meu proxy reverso. Para que o serviço possa ser utilizado, o seu domínio precisa ser hospedado com a Cloudflare e ambos os serviços são gratuitos.
A partir daqui, a configuração é mais gráfica: no dashboard da Cloudflare, busque no menu lateral esquerdo a opção Networking > Tunnels.
Adicione um túnel no botão “Create Tunnel”:

Para configurar o túnel, selecione um sistema operacional. A Cloudflare vai oferecer intruções de como instalar o serviço com o seu token.

Criado o túnel, abra as configurações do túnel e adicione uma rota:


Ao escolher o tipo de rota, selecione “Published Application”.

E então defina a rota, como a aplicação deve ser acessada através do serviço de túnel sendo executado na sua máquina:

A Cloudflare irá automaticamente criar o subdomínio e atribuir os próprios IPs que irão encaminhar as requisições ao seu servidor através do túnel.
Aguarde uns minutos para que a mudança se propague através dos servidores de DNS e então acesse o nopCommerce através do seu nome de domínio para retomar a configuração.
Note que, ao marcar a opção de usar a autenticação integrada ao Windows, os campos de usuário e senha são omitidos.

Após a finalização da configuração, você será levado a página inicial da plataforma, que mostra um exemplo de loja.
Para acessar o painel de administração da plataforma, utilize o endpoint /Admin no endereço enquanto estiver logado na sua conta.

Para fazer a plataforma ficar “ciente” de que está sendo acessada por HTTPS em vez de HTTP, edite o arquivo
C:\inetpub\nopCommerce\App_Data\appsettings.json
para que contenha os seguintes parâmetros:
"HostingConfig": {
"UseProxy": true,
"ForwardedProtoHeaderName": "X-Forwarded-Proto"
}
Por fim, no painel de administração, vá no item “2. Adicione informações da sua loja” e clique em “Ativar SSL”.

E agora basta configurar e customizar a plataforma de acordo com a necessidade. No entanto, vale notar que ele tem uma limitação problemática para uso no Brasil: ele não parece ter integração oficial com nenhum provedor de pagamentos brasileiro, tendo como principais opções PayPal e Braintree.
Post scriptum