Desenvolvimento Local com Banco Remoto
Esta nota explica como rodar o projeto localmente usando o banco PostgreSQL real da VPS, sem expor a porta do banco na internet.
Leitura pensada para explicar responsabilidades, ordem de execução e trechos reais do código com foco no fluxo da implementação.
Objetivo
Esta nota explica como rodar o projeto localmente usando o banco PostgreSQL real da VPS, sem expor a porta do banco na internet.
Caminho recomendado
O fluxo recomendado é:
- manter o PostgreSQL da VPS ouvindo apenas em
127.0.0.1; - abrir um túnel SSH local para essa porta;
- apontar o painel local para o túnel via
.env.local.
Variáveis do runtime do painel
O runtime do admin aceita três modos:
auto: tenta usar a conexão ativa doData Studio; se ela não estiver pronta, usa as variáveis de ambiente;snapshot: usa apenas a conexão principal salva noData Studio;env: usa apenas as variáveis do.env.local.
Para desenvolvimento local com banco remoto, o modo mais previsível é:
ECOMMPANEL_DB_RUNTIME_MODE=envScript de túnel
O projeto inclui:
npm run panel:db:tunnelAntes de abrir o túnel, defina:
export PANEL_DB_TUNNEL_HOST=SEU_IP_OU_HOST
export PANEL_DB_TUNNEL_USER=root
export PANEL_DB_LOCAL_PORT=55432O script cria:
127.0.0.1:55432local- apontando para
127.0.0.1:5432na VPS
Exemplo de `.env.local`
ECOMMPANEL_DB_RUNTIME_MODE=env
ECOM_SITE_PERSISTENCE_MODE=database
ECOM_STOREFRONT_PERSISTENCE_MODE=database
ECOM_BLOG_PERSISTENCE_MODE=database
APP_DB_LABEL=Postgres remoto via tunel
APP_DB_HOST=127.0.0.1
APP_DB_PORT=55432
APP_DB_NAME=app_hub
APP_DB_USER=app_hub
APP_DB_PASSWORD=preencher_com_a_senha_do_app
APP_DB_SSL_MODE=disableSe você quiser continuar desenvolvendo o blog sem depender do banco ativo:
ECOM_BLOG_PERSISTENCE_MODE=filesPara a fase de transição, mantendo banco preferencial e arquivos como rede de segurança:
ECOM_BLOG_PERSISTENCE_MODE=hybridResultado esperado
Quando o túnel estiver aberto e as variáveis estiverem corretas:
- o login do
EcommPanellocal usa a base real; - a lista de usuários, sessões e auditoria passa a refletir o ambiente provisionado;
- páginas dinâmicas, rotas, template, tema, textos e mega menu também passam a usar o PostgreSQL como fonte administrativa;
- a loja continua lendo snapshots publicados, mas esses snapshots passam a ser atualizados a partir do banco;
- o fallback mock deixa de ser usado para autenticação.
Quando usar `auto`
Use auto quando você quiser:
- continuar aproveitando a conexão principal registrada no
Data Studio; - permitir que o runtime local caia para
.env.localapenas quando a conexão salva ainda não estiver pronta.
Quando usar `snapshot`
Use snapshot quando:
- a conexão principal do
Data Studiojá está consolidada; - o processo já tem a senha disponível em
passwordReference; - você quer evitar qualquer override acidental por
.env.local.
Regra de segurança
Para desenvolvimento contra VPS:
- preferir túnel SSH;
- não abrir a porta
5432publicamente; - não salvar senhas reais em arquivos versionados.