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

Ortiz de Arcanjo Antonio David - Dec 4 '23 - - Dev Community

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player