Introdução
Desenvolver uma aplicação C# é apenas metade do trabalho. Para que seu projeto se torne acessível aos usuários na internet, é necessário implantá-lo em um servidor. Um Servidor Virtual Privado (VPS) é a solução ideal para hospedar aplicações .NET, pois oferece controle total sobre o ambiente e permite configurar tudo de acordo com necessidades específicas.
Neste artigo, vamos abordar o processo completo de deploy de uma aplicação C# (ASP.NET Core) em um VPS rodando Linux (Ubuntu 22.04). Você aprenderá como preparar o servidor, instalar o software necessário, publicar a aplicação e configurar o web server para trabalhar com ela. Todas as etapas são acompanhadas de exemplos de código e comandos.
1. Preparação do VPS e instalação do .NET SDK
O primeiro passo é a preparação do servidor. Usaremos o Ubuntu 22.04 LTS, pois é um dos sistemas operacionais mais populares e estáveis para servidores. Conecte-se ao VPS via SSH:
ssh user@your-server-ipApós o login, atualize a lista de pacotes e instale as dependências necessárias:
sudo apt updatesudo apt upgrade -ysudo apt install wget apt-transport-https software-properties-common -yAgora, adicione o repositório Microsoft e instale o .NET SDK. Para .NET 8, execute:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debsudo apt updatesudo apt install dotnet-sdk-8.0 -yVerifique a instalação:
dotnet --versionSe você vir o número da versão (por exemplo, 8.0.100), tudo foi instalado corretamente.
Importante: Se sua aplicação usa um banco de dados (por exemplo, PostgreSQL ou SQLite), instale o pacote correspondente. Para PostgreSQL:
sudo apt install postgresql postgresql-contrib -y2. Publicação e upload da aplicação para o servidor
Agora, prepare a própria aplicação para o deploy. No seu computador local (onde o desenvolvimento é feito), abra o terminal na raiz do projeto e execute a publicação no modo Release:
dotnet publish -c Release -o ./publishEste comando criará uma pasta publish com todos os arquivos necessários para executar a aplicação no servidor. Agora, é preciso fazer o upload desta pasta para o VPS. Use SCP ou SFTP. Exemplo com SCP:
scp -r ./publish user@your-server-ip:/home/user/myappOnde myapp é o nome da pasta onde sua aplicação será armazenada no servidor.
Após o upload, conecte-se ao servidor e mova os arquivos para um local mais adequado, por exemplo, /var/www/myapp:
sudo mkdir -p /var/www/myappsudo cp -r /home/user/myapp/* /var/www/myapp/Não se esqueça de definir as permissões corretas para a pasta:
sudo chown -R www-data:www-data /var/www/myappsudo chmod -R 755 /var/www/myapp3. Configuração do systemd para inicialização automática
Para que sua aplicação seja iniciada automaticamente na inicialização do sistema e reiniciada em caso de falha, vamos criar um serviço systemd. Crie um arquivo de configuração:
sudo nano /etc/systemd/system/myapp.serviceInsira o seguinte conteúdo (substitua os caminhos e o nome de usuário pelos seus):
[Unit]Description=My ASP.NET Core ApplicationAfter=network.target
[Service]WorkingDirectory=/var/www/myappExecStart=/usr/bin/dotnet /var/www/myapp/YourApp.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=www-dataEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]WantedBy=multi-user.targetSalve o arquivo (Ctrl+O, depois Enter) e saia (Ctrl+X). Agora, recarregue o systemd e inicie o serviço:
sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myappVerifique o status: