Configuração de Deploy Automático para o DreamHost



Este repositório já vem configurado com uma rotina do GitHub Actions (.github/workflows/deploy.yml) que faz o deploy automático para o seu servidor compartilhado na DreamHost toda vez que houver um novo *push* ou *merge* na branch main (ou master).

A configuração foi pensada para o uso com banco de dados SQLite sem apagar os dados existentes, o que o torna ideal para a versão do Form Manager que não utiliza MySQL.

Como o Deploy Funciona



1. Rsync (via SSH): Utiliza um conector para copiar os arquivos do repositório para o seu servidor.
2. Arquivos Preservados: Os arquivos do seu banco de dados SQLite (data/), os uploads (uploads/) e as configurações (config.php) não são substituídos pelo deploy. O banco continuará seguro de versão para versão.
3. Instalação Automática: Se o arquivo config.php ainda não existir no servidor durante a primeira instalação, a rotina copia automaticamente o config.example.php para começar a rodar o sistema com SQLite.

Passo a Passo: Configurando os Segredos do GitHub (Secrets)



Para que o GitHub Actions consiga acessar e enviar arquivos ao seu DreamHost via SSH/SFTP, você precisa configurar os seguintes Secrets na aba de configurações do seu repositório do GitHub (Settings -> Secrets and variables -> Actions):

1. SSH_PRIVATE_KEY
* Você precisará gerar uma chave SSH (se ainda não tiver). Recomendamos usar o seguinte comando no seu terminal/CMD:

ssh-keygen -t rsa -b 4096 -m PEM -f github_deploy_key

* Após gerar a chave, você deve copiar o conteúdo da chave pública (github_deploy_key.pub) e colar dentro do arquivo /home/[seu_usuario_dh]/.ssh/authorized_keys no seu servidor da DreamHost.
* O valor do Secret deve ser o conteúdo integral da sua chave privada (github_deploy_key), que você tem no seu computador local.
* Importante: certifique-se de que a DreamHost aceita logins SSH para o usuário escolhido (habilite no painel se necessário).

2. SSH_HOST
* O endereço do seu servidor FTP/SSH da DreamHost. Exemplo: seusite.com ou s123456.dreamhostps.com.

3. SSH_USER
* O seu nome de usuário SSH/SFTP na DreamHost. Exemplo: meu_usuario_dh.

4. SSH_TARGET_PATH
* O caminho absoluto onde o site deve ser hospedado no seu servidor.
* Na DreamHost, o caminho padrão geralmente segue o formato /home/[seu_usuario_dh]/[seu_dominio]/. Exemplo: /home/meu_usuario_dh/formmanager.dlawe.com/.
* O importante é apontar para a pasta raiz do seu site.
* A rotina irá jogar todos os arquivos dentro desse diretório.

Modificando as Configurações (config.php)



Como a rotina não sobrescreve o arquivo config.php se ele já existir, caso você queira fazer mudanças sensíveis de credenciais (email, domínios, etc.):

- 1ª Opção: Altere e mande os arquivos via FTP / gerenciador de arquivos diretamente na hospedagem.
- 2ª Opção: Renomear/deletar temporariamente o arquivo na DreamHost (para a automação colocar o do repositório no lugar na próxima vez), ou rodar comandos na própria hospedagem para alterá-lo.

Atualizações de Banco de Dados



Atualmente o sistema já é capaz de criar o .sqlite e suas respectivas tabelas automaticamente se não existirem através do bloco de código em config.php. Caso hajam novas tabelas futuramente, a migração pode ser atualizada nesse mesmo bloco que criará as novas tabelas, garantindo que versões futuras sejam compatíveis com o banco de dados anterior automaticamente.

Primeiro Acesso e Configuração Inicial



Após o deploy ter sido concluído com sucesso, siga os passos abaixo para configurar o seu painel do Form Manager pela primeira vez:

1. Acesse o Painel Administrativo:
Abra o seu navegador e acesse a URL do admin. Se você instalou no domínio principal, será algo como:
https://formmanager.dlawe.com/admin/
*(Se a pasta form-manager foi colocada diretamente na raiz do seu site, ajuste o caminho conforme necessário)*.

2. Faça o Login Inicial:
Utilize as credenciais padrão:
* Usuário: admin
* Senha: admin

3. Altere sua Senha (IMPORTANTE):
Logo após acessar pela primeira vez, clique em "Change Password" no menu do painel e defina uma senha forte e segura.

4. Crie seu Primeiro Formulário:
Clique em "Manage Forms" -> "Create New Form" para gerar um novo ID de formulário e começar a capturar os dados do seu site.

5. Ajuste as Configurações (Opcional):
O deploy cria automaticamente um arquivo config.php baseado no config.example.php. Se você precisar alterar as configurações de envio de e-mail (por exemplo, EMAIL_NOTIFICATIONS ou ADMIN_EMAIL), você pode fazê-lo de duas formas:
* Via FTP/Gerenciador de Arquivos: Acesse o painel da DreamHost, encontre o arquivo config.php e edite os valores desejados.
* Localmente: Você também pode alterar localmente e subir, mas lembre-se que, por padrão, a action do GitHub preserva o config.php no servidor para não sobrescrever o banco de dados e suas credenciais entre atualizações.