Processing Server Como Serviço No Windows
Instalação de um servidor de processamento permanente no Windows.
Para Quem É
Use este caminho quando quiser usar uma máquina Windows como servidor remoto de processamento para o Toposync.
O script cria um serviço Windows chamado ToposyncProcessingServer.
Para suporte por arquitetura e GPU no Windows, consulte Compatibilidade.
Pré-requisitos
- Windows 10/11.
- PowerShell.
- Permissão de administrador.
- Checkout do repositório Toposync.
- Rede liberada entre o origin e o Windows.
O script instala uv e Python 3.12 se necessário.
Instalação
Abra PowerShell como Administrador na raiz do repositório.
Instalação automática:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle auto -Version latest -PreferLocalPackages:$false
O modo auto escolhe:
cuda, se encontrarnvidia-smi;directml, caso contrário.
Para forçar CPU:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle cpu -Version latest -PreferLocalPackages:$false
Para forçar DirectML:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle directml -Version latest -PreferLocalPackages:$false
Para forçar CUDA:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle cuda -Version latest -PreferLocalPackages:$false
Se precisar anunciar um IP específico para o origin:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle auto -Version latest -PreferLocalPackages:$false -AdvertiseHost 192.168.1.50
Como Rodar
O script cria e inicia o serviço automaticamente.
Ver status:
Get-Service ToposyncProcessingServer
Reiniciar:
Restart-Service ToposyncProcessingServer
Parar:
Stop-Service ToposyncProcessingServer
Como Acessar
Por padrão, o serviço escuta em:
http://<ip-do-windows>:49321
O script salva os dados em:
%ProgramData%\Toposync\ProcessingServer
O payload de registro fica em:
%ProgramData%\Toposync\ProcessingServer\processing-server-registration.json
Como Verificar
Veja o JSON de registro:
Get-Content "$env:ProgramData\Toposync\ProcessingServer\processing-server-registration.json"
Se instalou com -NoAuth, teste o status local:
Invoke-RestMethod -Uri http://127.0.0.1:49321/api/processing/status
Por padrão, o script gera Basic Auth. Use o usuário e senha salvos no JSON:
$pair = "toposync:<senha-do-json>"
$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($pair))
Invoke-RestMethod -Uri http://127.0.0.1:49321/api/processing/status -Headers @{ Authorization = "Basic $token" }
Registrar No Origin
Use o payload salvo em:
%ProgramData%\Toposync\ProcessingServer\processing-server-registration.json
O script também imprime um exemplo de Invoke-RestMethod para registrar o servidor no origin.
Depois valide no origin:
Invoke-RestMethod http://ORIGIN_HOST:8000/api/processing-servers/<server-id>/status
Nos pipelines, use processing_server_id igual ao id registrado.
Como Atualizar
Rode o instalador novamente:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle auto -Version latest -PreferLocalPackages:$false
Para recriar o ambiente virtual:
powershell -ExecutionPolicy Bypass -File .\scripts\install_windows_processing_server.ps1 -Bundle auto -Version latest -PreferLocalPackages:$false -RecreateVenv
Como Desinstalar
Remover serviço e arquivos de runtime, preservando dados e logs:
powershell -ExecutionPolicy Bypass -File .\scripts\uninstall_windows_processing_server.ps1
Remover também dados e logs:
powershell -ExecutionPolicy Bypass -File .\scripts\uninstall_windows_processing_server.ps1 -RemoveData
Se o serviço estiver preso:
powershell -ExecutionPolicy Bypass -File .\scripts\uninstall_windows_processing_server.ps1 -Force
Remova também o processing server registrado no origin.
Troubleshooting
O serviço não inicia
Veja os logs em:
%ProgramData%\Toposync\ProcessingServer\logs
Também confira:
Get-Service ToposyncProcessingServer
Porta ocupada
O instalador tenta escolher a próxima porta livre quando -AutoSelectPort está ativo. Confira a porta final no arquivo processing-server-registration.json.
O origin não consegue conectar
Confirme o IP em url dentro do JSON de registro, a porta escolhida e a regra de firewall criada pelo instalador.
Escolheu bundle errado
Rode o instalador novamente com -Bundle cpu, -Bundle directml ou -Bundle cuda.