Skip to content

Solução de problemas ​

SintomaCausa provável / correção
port is already allocatedA porta (80/443/5454) está em uso por outra coisa. Execute ./setup.sh de novo e escolha outra porta.
O Chrome/Edge não abre o app, mas o Safari abreO navegador força o endereço para https://, que os modos HTTP simples não servem. Digite http:// explicitamente, ou mude para o modo LAN + HTTPS.
Funciona em localhost, mas não pelo IP da máquina (macOS)O firewall do macOS bloqueia as conexões de entrada do Docker. Ajustes do Sistema → Rede → Firewall → Opções… → defina o Docker como Permitir conexões de entrada.
LAN + HTTPS: certificado não emitidoVerifique docker compose logs caddy. O token do DuckDNS/Cloudflare deve ser válido e o domínio escrito exatamente.
LAN + HTTPS: o domínio não resolve em alguns dispositivosSeu resolvedor bloqueia respostas com IP privado (proteção contra DNS rebind). Veja as correções.
O assistente de configuração nunca aparece / core: offline na barra superiorO core não alcança o Postgres. Verifique docker compose logs core e logs postgres; confirme que DATABASE_URL corresponde a POSTGRES_PASSWORD em deploy/.env.
Erro de POSTGRES_PASSWORD na inicializaçãoO deploy/.env está ausente ou vazio. Execute ./setup.sh, ou copie .env.example para .env e preencha.
Modo público: certificado HTTPS não emitidoO DNS do domínio deve resolver para este servidor, e as portas 80/443 devem estar acessíveis pela internet.
Mudanças no código não aparecemRecompile: docker compose up --build -d.
Bloqueado, senha esquecidaRedefina-a pelo shell do host, veja Esqueci minha senha.
Não consigo acessar o app após escolher o modo de rede erradoEdite deploy/network.env à mão e reinicie, veja alterar o modo pela CLI.

Esqueci minha senha ​

Não há e-mail de redefinição nem formulário de redefinição sem autenticação: o OTW roda no seu próprio servidor, então qualquer endpoint que pudesse alterar uma senha sem estar conectado seria uma porta de entrada. A redefinição fica no shell do host, e o link Esqueceu a senha? da página de login descreve os mesmos passos.

Abra um shell na máquina que roda o OTW e gere uma senha de uso único:

bash
docker exec -it opentraderworld-core-1 /app/otw-core reset-password USERNAME

Entre com ela; o app pede uma nova imediatamente.

CasoO que executar
Esqueci o nome de usuário tambémdocker exec opentraderworld-core-1 /app/otw-core list-users
Escolher a senha eu mesmoprintf '%s' 'my-new-password' | docker exec -i opentraderworld-core-1 /app/otw-core reset-password USERNAME --stdin
Contêiner com outro nomedocker ps, depois use o do core no lugar de opentraderworld-core-1.
Sem usar DockerExecute o binário otw-core com os mesmos argumentos e DATABASE_URL definida.

Nunca passe uma senha como argumento de linha de comando: a linha de comando de um processo é legível no host, e é por isso que --stdin existe.

Notas: uma redefinição desconecta todos os dispositivos, e nada se perde. O cofre e as chaves de provedores armazenadas são seladas com OTW_SECRET_KEY, não com a sua senha.

Perdi meu autenticador ​

Mesmo princípio da senha: recupere pelo shell do host.

bash
docker exec -it opentraderworld-core-1 /app/otw-core disable-totp USERNAME

O segundo fator é removido e todas as sessões são encerradas. Entre com a sua senha, depois configure-o de novo no novo dispositivo em Configurações → Segurança. Veja Autenticação em dois fatores.

Bloqueado do social login ​

A conta do provedor vinculado está bloqueada, excluída ou inacessível: na página de login, Usar um código de recuperação. O login por senha volta a funcionar.

Perdeu os códigos de recuperação também? No host:

bash
docker exec -it opentraderworld-core-1 /app/otw-core disable-social USERNAME

Remove o vínculo, ativa o login por senha e encerra todas as sessões. Perdeu a senha também: Esqueci minha senha. Detalhes: Social login.

Uma requisição longa é cortada ​

Um backtest, varredura ou importação grande que responde com this request took longer than the Ns limit atingiu o timeout de requisição, não é um bug. Aumente-o em Configurações → Segurança; vale imediatamente, sem reiniciar. Veja Timeout de requisição.

Lendo os logs ​

bash
cd deploy
docker compose ps              # are all containers up?
docker compose logs -f core    # API server
docker compose logs -f caddy   # proxy / certificates
docker compose logs -f postgres

O app também mantém sua própria visualização de logs em Configurações → Registros (com busca e nível de captura configurável).

Recomeçar do zero ​

Isto apaga todos os dados

bash
cd deploy
docker compose down -v
./setup.sh

Ainda travado? ​

Abra uma issue no GitHub com o sintoma e as linhas de log relevantes.