Servidor - 07/01/2026
Apresentação:
-
Esse tutorial ensinará como configurar um ambiente de criação de um servidor completo com as melhores ferramentas disponíveis no momento visando portabilidade, velocidade, segurança, organização e manutenção.
O ambiente será montado no WSL do Windows, visando compatibilidade com o ambiente de produção pois se for feito em windows para rodar em linux acontecerão vários poblemas.
Onde estiver descrito como DEV se referirá ao WSL, quando PROD se referenciará do servidor com Debian Net Inst.
Pacotes:
-
Em modo Dev no WSL, instale os o wget para downloads via link, o git para mandar o projeto pro Github e o libnss3-tools para o certificado simulado para Https.
Obs.: Antes de Começar veja como instalar o DOCKER AQUI.
Em modo PROD no servidor Debian Netinst, instale o openssh-server para acesso via ssh e fillezila, o certbot para gerar o certificado para Https da lets'encrypt e o git para pegas as alterações do projeto no Github.
Configurações:
-
Configurações de acesso modo Dev (Somente WSL)
-
Criar arquivos de configuração NGINX:
Conteúdo para servidor padrão localhost para ser usado em DEV:
Arquivo do DEV para ser usando com os certificados para https.
Conteúdo:
-
RusDesk Server:
Servidor do Rustdesk semelhante ao Anydesk e outros mas open source direto do seu próprio servidor.
Aqui você colocará seus arquivos id_25519 e id_25519.pub caso vc queira restringir o tráfego do seu servidor apenas a clientes que posuam sua chave pública.
Certificado Fake Local Https:
-
Para não precisar ficar alterando o arquivo de config do NGINX, pode se gerar certificados que simulam o certificado da letsencrypt localmente para isso acesse o repositorio do Filippo Valsorda no GitHub e baixe com o wget o binário ...linux-amd64.
https://github.com/FiloSottile/mkcert/releases
Depois crie o diretório idêntico ao criado no servidor PROD entre dentro dele e gere os arquivos:
Por último baixe o binário ...windows-amd64.exe no windows e instale pelo PowerShell.
Certbot:
-
Para que o https funcione precisa criar o certificado da Let's Encrypt com o nginx parado.
docker-compose.yml:
-
O docker-compose.yml é o arquivo principal, ele que dirá quais containers serão usados, seus comportamentos e como seus arquivos internos serão sobrescritos pelos externos.
-
Observações NGINX:
O app defaul deve estar funcionando corretamente na pasta padrãp /var/www/ para que os demais funcionem também.
-
Observações Samba:
No GROUPID=1001 deve ir o id do grupo que foi escolinho para o diretório compartilhado assim como o USERID=1000.
Caso ao tentar acessar pelo windows de alguns erros execute no cmd do windows:
Evitar usar o samba para acesso externo limitando no UFW o acesso a sua rede local:
-
Observações Postgres
A ports: para ser acessada apenas via ssh ou pela app deve ter o 127.0.0.1: antes da porta, para acesso externo via DBeaver por exemplo retire esse ip.
Primeira Execução:
-
Tudo pronto agora subir os containers para começar o desenvolvimento.
Esses comando iniciará o servidor, mas para que funcione os containers das aplicações em Laravel indicadas no diretório docker/nginx precisam estar rodando.
VS Code:
-
Instalando a extenção WSL da Microsoft no VSCode, será possível editar os arquivos do projeto no WSL a partir do VSCode no Windows.
Para isso pelo terminal no WSL dentro da pasta do projeto basta digitar Code . e pronto, o VSCode se iniciará automaticamente no Windows já na area de trabalho do projeto por conexão remota.
Ao instalar o Git e inicia-lo dentro da pasta do projeto tambem no WSL, o VSCode cuidará do vercionamento e enviará as alterações para o Github apenas por cliques de forma bem intuitiva.
Para ir acompanhando o desenvolvimento do projeto basta abrir qualquer navegador no Windows e acessa-lo pelo localhost.
Passar o Projeto para Produção:
-
SSH
Para acessar o servidor a partir do Windows, usando o ip 192.168.1.4 como exemplo usa-se o comando:
Quando se conecta em um dispositivo por ssh, o windows registra a conexão em um arquivo chamado known_hosts localizado em C:\Users\usuario\.ssh para evitar que vc se conecte ao mesmo ip no futuro mas em uma máquina diferente, evitando assim que vc sofra um ataque "man-in-the-middle" (MITM), caso isso aconteça ou simplemente ele detecte que a máquina destino não é a mesma da última vez, por motivo de formatação por exemplo, aparecerá um alerta WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! e não permitira a conexão.
Para contornar isso se vc tem certeza que a máquina destino é a pretendida, vc pode apagar as linhas referentes ao acesso anterior no arquivo known_hosts ou simplesmente dar o comando:
Ele resetará o acesso e perguntará se vc quer registrar um novo acesso fingerprint basta digitar yes e precionar Enter, em seguida digitar a senha de usuário e pronto, a conexão foi bem sucedida!
Caso vc não queira ficar digitando a senha para se conectar, basta instalar o editor de arquivos nano caso ele ainda não esteja instalado e copiar sua chave pública do windows localizada em C:\Users\usuario\.ssh\id_ed25519.pub e colar no arquivo ~/.ssh/authorized_keys.
Depois só digitar Ctrl + x, y, Enter para salvar e pronto.
Caso vc ainda não tenha uma chave id_ed25519 no windows, basta criar:
Para mandar ou receber arquivos do GitHub pelo comando git adicione a chave pública criada AQUI.
-
Mando o Projeto para o Github:
-
Trazer o projeto para o servidor de produção:
-
Atualizar Site:
Crie um alias "atalho" chamdo gp para sempre que tiver alterações no Dev e enviar para o Github, no Servidor PROD se consiga baixar as alterações de forma simples, segura e sem contratempos:
-
Restaurar banco de dados:
Criar banco para outro projeto:
-
Quando for usar o mesmo servidor para varios projetos ele precisaram estar em um rede_global_postgrees e os bancos, usuarios e senhas deverão estar em .env do projetos e serem criados manualmente.
A rede global precisara estar no docker-compose.yml de todos os projetos.