Docker CPU
Instalação com Docker Compose, sem GPU.
Para Quem É
Use este caminho quando quiser rodar o Toposync isolado em container.
A imagem padrão é:
ghcr.io/toposync/toposync:0.8.0
Ela inclui o bundle toposync-streaming, FFmpeg, go2rtc embutido e o toolchain
mínimo para preparo local de RF-DETR. Você não precisa de checkout do
repositório no caminho normal de instalação.
Para suporte por arquitetura, consulte Compatibilidade.
Pré-requisitos
- Docker.
- Docker Compose.
Instalação
Crie uma pasta de deploy e um arquivo Compose:
services:
toposync:
image: ghcr.io/toposync/toposync:0.8.0
ports:
- "${TOPOSYNC_PORT:-8000}:8000"
volumes:
- ${TOPOSYNC_DATA_VOLUME:-./toposync-data}:/data
restart: unless-stopped
Suba o Toposync:
docker compose up -d
Se você estiver usando o checkout do repositório, o docker-compose.yml da raiz
já usa a mesma imagem pública por padrão.
Por padrão:
- porta pública:
8000; - pasta de dados no host:
./toposync-data; - pasta de dados no container:
/data.
Como Rodar
Subir:
docker compose up -d
Parar:
docker compose stop
Ver logs:
docker compose logs -f toposync
Alterar porta pública:
TOPOSYNC_PORT=8080 docker compose up -d
Alterar pasta de dados:
TOPOSYNC_DATA_VOLUME=/caminho/para/toposync-data docker compose up -d
Como Acessar
No host:
http://127.0.0.1:8000/
Na rede local:
http://<ip-do-servidor>:8000/
Como Verificar
curl -I http://127.0.0.1:8000/
curl http://127.0.0.1:8000/api/health
curl http://127.0.0.1:8000/api/auth/status
O esperado:
/responde200;/api/healthresponde200;/api/auth/statusresponde JSON e pode indicarrequires_setup: trueno primeiro acesso.
Depois de concluir o setup/login pela UI, a API autenticada passa a responder as rotas protegidas, como /api/extensions.
Primeira câmera e streaming
Streaming já vem incluído na imagem CPU pública. O FFmpeg está no PATH, e o
go2rtc fica embutido em /usr/local/bin/go2rtc.
Se você ainda não tem uma câmera real pronta, comece pelo caminho RTSP sintético:
Esse guia inicia uma fonte RTSP local, adiciona ela como câmera manual, inicia a engine de streaming, reconcilia as publicações ao vivo e confirma a tela Câmeras ao vivo.
Como Atualizar
Baixe a nova imagem e recrie o container:
docker compose pull
docker compose up -d
Para uma release fixa, pinne a tag exata no docker-compose.yml, por exemplo
ghcr.io/toposync/toposync:0.8.0.
Avançado: build local
Use o caminho de build local apenas quando estiver desenvolvendo o Toposync a partir de um checkout do repositório ou testando mudanças ainda não publicadas:
docker compose -f docker-compose.yml -f docker-compose.local-build.yml up -d --build
Isso cria toposync:local a partir do Dockerfile do monorepo em vez de puxar a
imagem pública do GHCR.
Como Desinstalar
Parar e remover o container:
docker compose down
Remover também os dados locais:
rm -rf ./toposync-data
Troubleshooting
Porta 8000 ocupada
Use outra porta no host:
TOPOSYNC_PORT=8080 docker compose up -d
Container não fica saudável
Veja os logs:
docker compose logs -f toposync
Teste o healthcheck:
curl http://127.0.0.1:8000/api/health
curl http://127.0.0.1:8000/api/auth/status
Quero GPU
Este guia é CPU-only. Para NVIDIA em Docker, use o guia Docker CUDA.