DEV Community

Ortiz de Arcanjo António David
Ortiz de Arcanjo António David

Posted on

1

Como fazer Deploy de uma Aplicação Golang no Windows Server?

1. Preparar o Ambiente (Cliente e Servidor)

Servidor

Image description

Endereço IP do Servidor: 192.168.179.142

Image description

Endereço IP do Cliente: 192.168.179.1

Image description

2. Instalar NSSM

O NSSM (Non-Sucking Service Manager) é necessário para configurar a aplicação como serviço.
Download: http://nssm.cc/download

Image description

Localização do Download

Image description

Extrair os ficheiros da pasta Zipada para um novo Directório
Neste caso, a pasta no directório C:\Program Files\nssm-2.24

Image description

Adicionar o caminho do executável na variável de ambiente: PATH
Caminho: C:\Program Files\nssm-2.24\win64

Image description

Image description

Image description

Image description

3. Fazer o Build da Aplicação

A aplicação tem 2 endpoints:

  • / - Retorna o título da aplicação
  • /api – Retorna um JSON com as informações básicas

Image description

Executar aplicação

Image description

Image description

Gerar o binário para Windows
Comando: GOOS=windows go build –o NOME_EXECUTAVEL.exe

Image description

Image description

4. Implantar a Aplicação no Servidor

Copiar Executável para um directório do servidor. Criamos o directório C:\Applications\Golang-Windows copiamos o executável da aplicação.

Image description

5. Criar um Serviço do Windows com NSSM

Sintaxe: nssm install NOME-SERVIÇO “Directorio\NOME_EXECUTAVEL.exe”
Comadndo: nssm install Golang-Windows "C:\Applications\Golang-Windows\Golang-Windows.exe"

Image description

Image description

Image description

Image description

6. Testar Aplicação dentro do Servidor

http://localhost:9000/api

Image description

7. Configurar Firewall (Habilitar uma porta para a aplicação)

Passos: Windows Defender Firewall > Inbound Rules > New Rule

Image description

Seleccionar a opção Port

Image description

Seleccionar a opção TCP e definir o nº da porta local. Ex: 9000

Image description

Seleccionar a opção Allow the Connection

Image description

Seleccionar as opções: Domain, Private e Public.

Image description

Atribuir um nome a Regra do FireWall Ex: Golang Windows App

Image description

Image description

8. Testar a aplicação na Máquina Cliente

Checar o IP do servidor

Image description

Fazer o acesso da máquina cliente (ex: http://IP_SERVIDOR:Porta)
URL: http://192.168.179.143:9000

Image description

URL: http://192.168.179.143:9000/api

Image description

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay