feat(rede): placa em carinha.local e app que acha a placa sozinho
- sistema/rede: a placa vira "carinha" na rede (avahi), http://carinha.local na porta 80 (nftables redireciona para a 8100, sem tocar no 192.168.4.1 do portal Carinha-Config) e anúncio "_carinha._tcp" na 8100; - app 0.9.1: quando o endereço salvo não responde, procura o anúncio na rede (NsdManager), testa o endereço achado e passa a usar e guardar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
# Carinha: http://carinha.local (porta 80) leva ao painel na 8100.
|
||||
# O 192.168.4.1 fica de fora: é a página de configuração do Wi-Fi no modo ponto de acesso.
|
||||
table ip carinha {
|
||||
chain entrada {
|
||||
type nat hook prerouting priority dstnat; policy accept;
|
||||
ip daddr != 192.168.4.1 tcp dport 80 redirect to :8100
|
||||
}
|
||||
chain local {
|
||||
type nat hook output priority -100; policy accept;
|
||||
ip daddr 127.0.0.0/8 tcp dport 80 redirect to :8100
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
||||
<!-- Anúncio na rede: http://carinha.local (porta 80) e "_carinha._tcp" (porta 8100), que o app do
|
||||
celular procura quando o endereço salvo não responde. -->
|
||||
<service-group>
|
||||
<name>Carinha</name>
|
||||
<service><type>_http._tcp</type><port>80</port></service>
|
||||
<service><type>_carinha._tcp</type><port>8100</port></service>
|
||||
</service-group>
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
# Nome na rede: a placa vira "carinha" e responde em http://carinha.local (rodar como root, desta pasta).
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
apt-get install -y --no-install-recommends avahi-daemon libnss-mdns nftables
|
||||
hostnamectl set-hostname carinha
|
||||
sed -i "s/^127\.0\.1\.1.*/127.0.1.1 carinha/" /etc/hosts
|
||||
grep -q "^127.0.1.1 carinha" /etc/hosts || echo "127.0.1.1 carinha" >> /etc/hosts
|
||||
install -m 644 carinha.service.avahi /etc/avahi/services/carinha.service
|
||||
install -m 644 carinha.nft /etc/nftables.d-carinha.nft
|
||||
grep -q "nftables.d-carinha.nft" /etc/nftables.conf || echo 'include "/etc/nftables.d-carinha.nft"' >> /etc/nftables.conf
|
||||
nft -c -f /etc/nftables.conf
|
||||
systemctl enable --now avahi-daemon nftables
|
||||
systemctl restart avahi-daemon nftables
|
||||
echo "pronto: http://carinha.local"
|
||||
Reference in New Issue
Block a user