
opensoho v0.15.0
Plataforma leve de gerenciamento de dispositivos OpenWRT para redes pequenas. Configuração centralizada, monitoramento e gerenciamento WiFi para 2 a 20 dispositivos com implantação simples e compatibilidade com OpenWISP.
Aviso: esta é uma versão inicial, por favor leia as notas de versão de TODAS as versões até agora
OpenSOHO
O OpenSOHO foi criado para gerenciar um pequeno número de dispositivos de rede baseados em OpenWRT. Daí o nome SOHO, de Small Office Home Office (SOHO) Networks.
- De 2 a 20 dispositivos (não há limite rígido)
- Sem multi-inquilino (multi-tenancy)
- Compatível com openwisp-config e openwisp-monitoring.
- Simples de implantar
É inspirado no OpenWISP, mas tem como objetivo redes que são muito pequenas para serem mantidas com OpenWISP. Como mencionado pelo OpenWISP:
No entanto, o OpenWISP pode não ser a melhor opção para redes muito pequenas (menos de 20 dispositivos), organizações sem conhecimento técnico em TI ou empresas que buscam alternativas open-source apenas para redução de custos.
As seguintes versões são testadas
- OpenWRT 24.10.x DSA
- OpenWRT 25.12.x DSA (suporte beta)
Primeiros passos com OpenSOHO
Visão geral
Configurar o OpenSOHO requer alguns passos simples, cada um detalhado nas seções abaixo:
- Instale o OpenSOHO no seu servidor.
- Instale os pacotes OpenWisp nos seus dispositivos OpenWRT.
- Configure o OpenWisp em cada um dos seus dispositivos OpenWRT para conectar ao OpenSOHO.
- Comece a configurar no OpenSOHO!
Instalar o OpenSOHO
-
Baixe a versão mais recente do OpenSOHO (ou use um contêiner docker)
-
Inicie o OpenSOHO
Primeiro, escolha um segredo compartilhado (shared secret) que permita que os dispositivos OpenWRT (usando openwisp-config) se registrem no OpenSOHO.
Escolha uma longa string aleatória para segurança ideal.
Ele deve corresponder ao que você configurar no LuCI nas próximas etapas.
OPENSOHO_SHARED_SECRET=randompassphrase ./opensoho serve --http 0.0.0.0:8090
Agora, o OpenSOHO exibe uma URL na linha de comando que permite criar a conta de administrador. Simplesmente abra a URL no seu navegador.
Alternativamente, crie a conta de administrador via linha de comando:
./opensoho superuser upsert EMAIL PASS
Configurando (adotando) os dispositivos OpenWRT
Instalar os pacotes OpenWISP
opkg install openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 24.10
apk add openwisp-config openwisp-monitoring luci-app-openwisp # OpenWRT 25.12+
Se você quiser usar o client steering 802.11v, o wpad-mbedtls completo é necessário.
No OpenWRT 24.10
opkg remove wpad-basic-mbedtls && \
opkg install wpad-mbedtls && \
service wpad restart
No OpenWRT 25.12+
apk del wpad-basic-mbedtls && \
apk add wpad-mbedtls && \
service wpad restart
Após a instalação do wpad-mbedtls, tente service restart wpad primeiro, caso contrário, pode ser necessário reiniciar para alternar para o novo binário wpad. Caso contrário, você pode receber um erro como daemon.notice netifd: radio1 (28210): WARNING (wireless_add_process): executable path /usr/sbin/wpad does not match process 1842 path (/usr/sbin/wpad (deleted)).
(Observe que o client steering 802.11v ainda está em desenvolvimento)
Configurar o OpenWISP no LuCI:
- Defina apenas a
Server URLe oShared secret.- NÃO adicione uma barra no final da
Server URL. Exemplo de URL:http://192.168.1.1:8090 - O shared secret é o valor que você escolheu anteriormente (
OPENSOHO_SHARED_SECRET).
- NÃO adicione uma barra no final da
- Opcionalmente, reduza o
Update Intervalpara 30 segundos para atualizações mais rápidas. (O OpenSOHO faz isso por você se não alterar) - O OpenSOHO também ativa o monitoramento e reduz o intervalo de monitoramento para 15 segundos para atualizações mais rápidas do estado da rede.
É altamente recomendável ativar o monitoramento, pois o OpenSOHO deduz muitas das configurações atuais do OpenWRT e as preenche para facilitar a configuração.
Configurar o OpenSOHO
- Aguarde os dispositivos OpenWrt se auto-registrarem usando o shared secret.
- Defina a flag
Enableddo dispositivo como verdadeiro. - Defina o
numradiospara o valor correto. Por exemplo, para um dispositivo 2.4 + 5GHz, esse valor seria 2. - Configure um ponto de acesso Wi-Fi (SSID+KEY). Este procedimento permite que o OpenSOHO detecte a configuração de rádio corretamente no registro do dispositivo.
- Anexe o ponto de acesso Wi-Fi configurado a um dispositivo para configurá-lo.
- Atualmente, cada rede será configurada automaticamente em todos os rádios (configurados usando
numradios). - Opcionalmente, os LEDs também podem ser ligados ou desligados (apenas configuração estática por enquanto).
- Configurar frequências de rádio agora é suportado. O OpenSOHO lê a configuração de rádio atual uma vez e a disponibiliza na configuração de rádios. Pode levar um minuto ou dois para que a configuração de rádio apareça (as etapas de configuração e monitoramento precisam de algum tempo para serem concluídas).
Painel
O OpenSOHO vem com um painel básico. Ele é acessível através do botão na barra lateral esquerda, logo abaixo do logotipo do OpenSOHO.
Observe que isso não se destina a substituir ferramentas de gráficos mais avançadas, é e continuará sendo mantido básico propositalmente.
Configurar
O OpenSoho agora pode ser acessado via http://ipaddress:8090/_/
Existem várias coleções de configuração:
Clientes
Estes são os clientes conectados ao Wi-Fi. Esta tabela é somente leitura, exceto pelo alias. Pode ser usado para dar aos dispositivos um nome legível por humanos. Isso só funciona corretamente quando o cliente não randomiza seu endereço MAC.
Clientes conectados
Contém a lista de clientes atualmente conectados ao seu Wi-Fi. Para mostrar o endereço IP do dispositivo, o OpenSOHO precisa de acesso às suas concessões DHCP. Para isso, você precisa ter o daemon de monitoramento openwisp em execução no dispositivo que contém o servidor DHCP. Dispositivos com IP estático não receberão um IP. Esta é uma limitação conhecida a partir da versão 0.12.0.
Dispositivos
Estes são os dispositivos conectados.
- Use ativar/desativar para desabilitar atualizações de configuração. Isso é útil para evitar atualizar todos os dispositivos de uma vez. O monitoramento permanece ativo.
- O status de saúde é um campo somente leitura.
healthysignifica que o dispositivo se comunicou no último minuto. Se não o fez, o status de saúde se tornaunhealthye pode haver algo errado com o dispositivo ou sua conexão. - LEDs permite escolher configurações de LED
- Numradios permite definir o número de rádios no dispositivo. Isso não é enviado inicialmente pelo OpenWisp, então precisa ser definido pelo usuário.
- Wi-Fi permite selecionar SSIDs para aplicar neste dispositivo.
LEDs
- Configuração básica de LED (mais uma prova de conceito no momento)
Rádios
- Permite definir a frequência de cada rádio.
- A banda não deve ser modificada, pois isso permite que o OpenSOHO verifique a configuração de frequência. Isso é necessário devido a limitações dentro do PocketBase.
Wi-Fi
- Permite configurar vários SSIDs. A seleção de modos de criptografia é atualmente limitada. WEP ou Aberto não são suportados por design.
Monitoramento
Monitoramento de dispositivos
Verifique se a saúde do dispositivo está healthy.
Clientes conectados
Esta visualização mostra todos os clientes Wi-Fi que ainda estão conectados nos últimos 30 segundos.
Integração com Home Assistant
O monitoramento do OpenSOHO pode ser integrado com Home Assistant. (Mais informações) Esta API REST foi projetada para uso com Home Assistant, mas também pode ser integrada com outras ferramentas.
Solução de problemas
Re-registrar um dispositivo
Quando alterar a Server URL do OpenWISP no LuCI não parece registrar corretamente no novo controlador.
Para corrigir isso:
uci delete openwisp.http.uuid
uci delete openwisp.http.key
/etc/init.d/openwisp-config restart
Primeiro SSID não é ativado
Parece haver um problema no OpenWRT onde o primeiro SSID configurado em um dispositivo Wi-Fi não é ativado automaticamente. Solução alternativa: clique no botão ativar no LuCI.
Desenvolvedores
- Instale as dependências
go mod tidy
- Inicie o OpenSOHO
O shared secret é usado pelo openwisp-config para registrar. Escolha uma longa string aleatória para segurança ideal.
Executando os testes unitários:
go test -cover -v -coverprofile=coverage.out
go tool cover -html=coverage.out
Escopo
Funcionalidades
Algumas funcionalidades do OpenWISP são (atualmente) consideradas fora do escopo do OpenSOHO
- Atualizações de firmware: OpenWRT não precisa de atualizações frequentes; use o recurso Attended sysupgrade em cada dispositivo manualmente.
- Multi-inquilino
- Templates: OpenWISP possui um mecanismo de templates poderoso e versátil, isso é substituído por um subconjunto mais opinativo de funcionalidades para proporcionar uma experiência de configuração mais fácil.
Desenvolvimento
O objetivo é aproveitar ao máximo o PocketBase. Pequenas modificações podem ser feitas, já que o back-end do PocketBase atualmente carece de um sistema de plugins. Mas não é o objetivo criar um fork do PocketBase, para que a mesclagem de alterações upstream permaneça direta.
Lançamento
GITHUB_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa goreleaser release