Instalação completa em produção

Seu StartFinance online, do zero ao HTTPS.

Um roteiro visual para preparar o código, contratar a VPS, conectar pelo Bitvise e executar o instalador automático com segurança.

1 domínioWeb, painel, API e PWA
1 comandoAtiva o instalador
HTTPS grátisLet's Encrypt automático
Dados protegidosBackup em reinstalações

Personalize os comandos

Preencha os dados públicos abaixo. Todos os comandos do tutorial serão ajustados automaticamente.

Nada é enviado ou salvo
00
Antes de começar

Separe tudo o que será necessário

Tenha estes itens em mãos antes de abrir o terminal. Isso evita interromper a instalação no meio do processo.

Checklist principal

i

Requisitos técnicos

O instalador foi preparado para Ubuntu 22.04 ou superior e Debian 11 ou superior, usando apt-get e systemd.

Configuração mínima recomendada1 vCPU, 1 GB de RAM, 10 GB de disco e IPv4 público.
!
Um único domínio é suficienteLogin, painel, superadmin, API e PWA funcionam no mesmo endereço.
01
Código privado

Crie um repositório no GitHub

O repositório guarda o código que será clonado na VPS. Mantenha-o privado para não expor o sistema.

1

Entre ou crie sua conta

Acesse github.com/signup e conclua a verificação da conta.

2

Abra “New repository”

Use o botão abaixo ou, no GitHub, clique no sinal de + e depois em New repository.

3

Configure como privado

Informe o nome StartFinance, selecione Private e não adicione README, licença ou .gitignore nessa tela.

!
Não inicialize o repositório onlineDeixá-lo vazio evita conflito quando o código local for enviado pela primeira vez.
02
Preparar o Windows

Instale o Git no computador

O Git envia sua pasta local para o repositório privado. Use sempre o instalador oficial.

Opção visual

Baixe o Git para Windows, execute o instalador e mantenha as opções recomendadas.

›_

Opção pelo PowerShell

Em computadores com Windows Package Manager, abra o PowerShell como administrador e execute:

PowerShell
winget install --id Git.Git -e --source winget

Depois da instalação, abra o Git Bash dentro da pasta do sistema e confirme:

Git Bash
git --version
03
Primeira publicação

Envie o código para o GitHub

Abra o Git Bash na pasta raiz do StartFinance — a mesma pasta que contém install.sh e package.json.

!
Nunca envie dados de produçãoConfirme que não existem arquivos .env, tokens, senhas, bancos .db ou uploads de clientes preparados para commit.

1. Configure sua identificação no Git

Git Bash — execute uma vez
git config --global user.name "Seu Nome"
git config --global user.email "seu-email@exemplo.com"

2. Crie o histórico e faça o primeiro commit

Git Bash — dentro da pasta StartFinance
git init -b master
git status
git add .
git commit -m "Primeira versão do StartFinance"

3. Conecte e envie ao repositório privado

Git Bash
git remote add origin https://github.com/seu-usuario/StartFinance.git
git push -u origin master
i
Se aparecer “remote origin already exists”Não crie outro remote. Use git remote set-url origin https://github.com/seu-usuario/StartFinance.git e execute o push novamente.
04
Acesso privado na VPS

Crie um token de leitura no GitHub

Como o repositório é privado, a VPS precisará de um token para fazer o primeiro clone. O token substitui a senha do GitHub.

1

Crie um Fine-grained token

Defina um nome como Instalação StartFinance e uma data de expiração curta.

2

Restrinja ao repositório correto

Em Repository access, escolha Only select repositories e marque somente StartFinance.

3

Libere apenas leitura

Em permissões do repositório, deixe Contents: Read-only. Gere e copie o token para um local seguro.

!
Não cole o token dentro da URLUse o token somente quando o Git solicitar a senha. Colocá-lo no comando pode gravá-lo no histórico do terminal.
05
Servidor de produção

Compre e configure a VPS na Hetzner

Crie a conta pelo link indicado, abra um projeto e adicione um Cloud Server com os parâmetros abaixo.

CampoEscolha recomendadaObservação
LocalizaçãoPróxima da maioria dos clientesReduz a latência de acesso.
ImagemUbuntu 24.04 LTSUbuntu 22.04 LTS também é compatível.
RecursosMínimo 1 vCPU, 1 GB RAM e 10 GBAumente conforme o número de empresas e usuários.
RedeIPv4 público habilitadoSerá usado no DNS e no Bitvise.
SSHSem chave SSH, neste roteiroA Hetzner enviará a senha inicial de root por e-mail.
BackupsRecomendadoProteção adicional fora do backup do instalador.
NomestartfinanceFacilita reconhecer a VPS no painel.
!
Acesso por senhaSe você selecionar uma chave SSH durante a criação, a Hetzner não enviará as credenciais de root por e-mail. Este tutorial segue o acesso por senha solicitado.

Firewall da Hetzner

22

TCP 22

Entrada SSH para acessar o servidor pelo Bitvise.

80

TCP 80

Entrada HTTP usada também na validação do certificado.

443

TCP 443

Entrada HTTPS para o sistema em produção.

06
DNS

Aponte o domínio para a VPS

No painel onde seu domínio é administrado, crie um registro do tipo A antes de rodar o instalador.

TipoNome/HostValor/DestinoTTL
Afinance203.0.113.10Automático ou 300
i
ExemploSe o endereço for finance.seudominio.com.br, normalmente o campo Nome/Host recebe apenas finance. O formato pode variar conforme o provedor de DNS.

Após alguns minutos, confirme no PowerShell do Windows:

PowerShell
nslookup finance.seudominio.com.br

O endereço retornado deve ser o IPv4 203.0.113.10. Não continue com o HTTPS enquanto o domínio apontar para outro IP.

07
Acesso SSH no Windows

Instale o Bitvise SSH Client

O Bitvise oferece terminal SSH e transferência SFTP em uma interface visual para Windows.

Baixe pelo site oficial

Execute o instalador assinado pela Bitvise, aceite a licença e conclua com as opções recomendadas.

Antes de abrir

Separe o IPv4 da VPS, o usuário root e a senha inicial enviada pela Hetzner ao e-mail principal da conta.

Cliente gratuitoO Bitvise SSH Client pode ser usado gratuitamente.
08
Primeiro acesso

Conecte-se à VPS pelo Bitvise

1

Abra a aba Login

Em Host, informe 203.0.113.10. Use a porta 22.

2

Informe o usuário

Em Username, digite root. Em Initial method, mantenha password.

3

Clique em Log in

Confirme a identidade do servidor na primeira conexão e informe a senha enviada pela Hetzner.

4

Troque a senha inicial

No primeiro acesso por senha, a VPS pode solicitar a senha atual e uma nova senha forte duas vezes.

5

Abra o terminal

Clique em New terminal console. Os próximos comandos serão executados nessa janela.

!
A senha não aparece enquanto você digitaIsso é normal em terminais Linux. Digite com atenção e pressione Enter.
09
Comando principal

Baixe o código e rode o instalador

Execute os comandos no terminal SSH da VPS. O primeiro instala o Git; o segundo clona o repositório; o terceiro inicia o assistente.

Terminal SSH — VPS
sudo apt-get update && sudo apt-get install -y git
git clone https://github.com/seu-usuario/StartFinance.git startfinance-source
cd startfinance-source
sudo bash install.sh
i
Quando o GitHub pedir autenticaçãoEm Username, informe seu-usuario. Em Password, cole o token criado na etapa 04 — não use a senha normal da conta.

Versão em uma única linha

Terminal SSH — opção rápida
sudo apt-get update && sudo apt-get install -y git && git clone https://github.com/seu-usuario/StartFinance.git startfinance-source && cd startfinance-source && sudo bash install.sh
!
Não feche o terminalAguarde a mensagem “Instalação concluída com sucesso”. Interromper durante a configuração pode deixar a instalação incompleta.
10
Assistente interativo

Responda às perguntas do instalador

As perguntas aparecem exatamente nesta ordem. Pressionar Enter aceita o valor indicado entre colchetes.

Domínio do sistema (ex.: financeiro.empresa.com): finance.seudominio.com.br
Porta interna do Node.js [3000]: Enter
Configurar HTTPS gratuito com Let's Encrypt agora? [S/n]: S
E-mail para avisos do certificado SSL: seu-email@exemplo.com
Criar o super admin da plataforma agora? [S/n]: S
E-mail do super admin: admin@suaempresa.com.br
Nome do super admin [Super Admin]: Seu nome
Senha do super admin (mínimo 8 caracteres): a senha não aparece
Confirme a senha: digite novamente
Confirma a instalação? [S/n]: S
O superadmin não é aleatórioVocê escolhe e-mail, nome e senha. A senha fica oculta, não entra no log e não é gravada no arquivo de ambiente.

O que o instalador fará automaticamente

01
Verifica a VPSSistema, terminal, domínio e porta.
02
Instala dependênciasNginx, SQLite, Certbot, Git e utilitários.
03
Instala Node.js 22Somente se a versão correta ainda não existir.
04
Prepara e validaExecuta npm ci e verifica os JavaScripts.
05
Protege instalações existentesCria backup do banco, uploads e configuração.
06
Publica com segurançaPreserva banco de dados, .env e uploads.
07
Cria o serviçoSystemd inicia o sistema e reinicia em falhas.
08
Configura o NginxProxy público sem interferir em outros sites.
09
Gera o HTTPSCertificado Let's Encrypt e renovação automática.
10
Valida tudoServiço, banco, API local e domínio externo.
11
Conferência final

Valide o sistema e faça o primeiro acesso

Quando o terminal exibir a confirmação, abra o domínio no navegador e entre com o superadmin criado na etapa anterior.

Seu endereço de acesso

Abra o link abaixo somente depois que o instalador terminar e o DNS estiver apontado corretamente.

finance.seudominio.com.br

Comandos de diagnóstico

Status do serviço
sudo systemctl status startfinance --no-pager
Saúde da API
curl -fsS http://127.0.0.1:3000/api/health
Últimos logs
sudo journalctl -u startfinance -n 100 --no-pager
Resposta esperada da APIUm objeto semelhante a {"ok":true,"ts":...} confirma que o processo Node.js está respondendo.
12
Manutenção

Atualize o sistema no futuro

Depois que uma nova versão for enviada ao GitHub, entre novamente na VPS e execute:

Terminal SSH — atualizações
cd ~/startfinance-source
git pull
sudo bash update.sh
Atualização protegidaO atualizador usa o mesmo processo do instalador: preparação isolada, backup, preservação do banco e restauração automática em caso de falha.

Problemas mais comuns

DNS

Certificado não foi emitido

Confirme se o registro A aponta para a VPS e aguarde a propagação. Depois execute:

Terminal SSH
sudo certbot --nginx -d finance.seudominio.com.br
502

Página mostra erro 502

Consulte o serviço e os logs. Eles mostrarão o motivo da aplicação não estar respondendo.

Terminal SSH
sudo systemctl status startfinance --no-pager
sudo journalctl -u startfinance -n 100 --no-pager
Git

GitHub recusou o clone

Use seu usuário do GitHub e o token como senha. Confirme que o token tem leitura no repositório privado selecionado.

3000

Porta interna ocupada

Execute novamente o instalador e informe outra porta entre 1024 e 65535. Não use a porta 8080.

Links oficiais úteis