dla local-ai-packaged na
Wprowadzenie
Po uruchomieniu usług pakietu local-ai-packaged (https://github.com/coleam00/local-ai-packaged) na Ubuntu Server, takich jak Supabase, n8n, Flowise, czy Open WebUI, musisz upewnić się, że odpowiednie porty w firewallu są otwarte, aby umożliwić dostęp do tych usług. Bez prawidłowej konfiguracji firewalla dostęp do interfejsów, takich jak Supabase Studio czy n8n, może być zablokowany, szczególnie jeśli pracujesz na zdalnym serwerze. Ten artykuł przedstawia idiotoodporną instrukcję konfiguracji portów w firewallu na Ubuntu Server z użyciem ufw, zgodnie z wytycznymi projektu i dokumentacją Supabase (https://supabase.com/docs/guides/self-hosting/docker).
Dlaczego konfiguracja firewalla jest ważna?
Pakiet local-ai-packaged uruchamia wiele usług, z których każda działa na określonym porcie (np. 8000 dla Supabase Studio, 5678 dla n8n, 3001 dla Flowise). Jeśli firewall blokuje te porty, dostęp do usług będzie niemożliwy z zewnątrz lub nawet lokalnie na serwerze. Konfiguracja firewalla za pomocą ufw (Uncomplicated Firewall) zapewnia, że tylko niezbędne porty są otwarte, minimalizując ryzyko ataków w środowisku publicznym, a jednocześnie umożliwiając dostęp do kluczowych komponentów AI.
Uwaga: Dokumentacja projektu podkreśla, że w środowisku publicznym należy ograniczyć otwarte porty do 80 i 443, jeśli używasz Caddy do zarządzania HTTPS. Jednak w środowisku lokalnym lub podczas testów możesz potrzebować otworzyć dodatkowe porty.
Krok po kroku: Konfiguracja portów w firewallu dla local-ai-packaged
1. Sprawdzenie statusu firewalla
Upewnij się, że jesteś w katalogu projektu local-ai-packaged, choć w tym kroku nie jest to konieczne:
cd ~/local-ai-packagedSprawdź, czy ufw jest zainstalowany i aktywny:
sudo ufw statusJeśli zobaczysz komunikat Status: inactive, oznacza to, że firewall nie jest włączony. Jeśli ufw nie jest zainstalowany, zainstaluj go:
sudo apt update
sudo apt install -y ufw2. Włączenie firewalla
Włącz ufw, aby zacząć zarządzać regułami firewalla:
sudo ufw enableOstrzeżenie: Włączenie ufw może zablokować wszystkie połączenia przychodzące, jeśli nie skonfigurowano żadnych reguł. Upewnij się, że masz dostęp do serwera (np. przez SSH na porcie 22) przed kontynuacją.
3. Otwarcie portu SSH
Aby nie utracić dostępu do serwera przez SSH, otwórz port 22:
sudo ufw allow 22Zweryfikuj, czy reguła została dodana:
sudo ufw statusPowinieneś zobaczyć linię podobną do:
22 ALLOW Anywhere4. Identyfikacja portów używanych przez local-ai-packaged
Pakiet local-ai-packaged używa kilku portów dla różnych usług. Kluczowe porty, które mogą wymagać otwarcia, to:
80: Dla Caddy (HTTP, przekierowanie na HTTPS) – wymagane w środowisku publicznym.
443: Dla Caddy (HTTPS) – wymagane w środowisku publicznym.
8000: Supabase Studio (interfejs zarządzania bazą danych).
5678: n8n (platforma low-code do przepływów pracy).
3000: Open WebUI (interfejs do interakcji z modelami AI).
3001: Flowise (narzędzie low-code do agentów AI).
11434: Ollama (lokalne modele językowe).
6333: Qdrant (magazyn wektorowy).
7474: Neo4j (silnik grafów wiedzy, interfejs HTTP).
Uwaga: W środowisku lokalnym ( –environment private) możesz otworzyć wszystkie powyższe porty dla łatwiejszego dostępu. W środowisku publicznym ( –environment public) ogranicz się do portów 80 i 443, jeśli używasz Caddy, zgodnie z dokumentacją.
Sprawdź, które porty są używane przez usługi, przeglądając plik docker-compose.yml:
cat ~/local-ai-packaged/docker-compose.yml | grep portsZwróć uwagę na sekcje ports dla każdej usługi (np. 8000:8000, 5678:5678).
5. Otwarcie portów dla środowiska lokalnego
Jeśli pracujesz w środowisku lokalnym lub testowym ( –environment private), otwórz wszystkie niezbędne porty:
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8000
sudo ufw allow 5678
sudo ufw allow 3000
sudo ufw allow 3001
sudo ufw allow 11434
sudo ufw allow 6333
sudo ufw allow 74746. Otwarcie portów dla środowiska publicznego
Jeśli wdrażasz w środowisku publicznym ( –environment public) i używasz Caddy do zarządzania HTTPS, otwórz tylko porty 80 i 443:
sudo ufw allow 80
sudo ufw allow 443Ważne: W środowisku publicznym Caddy obsługuje przekierowania i certyfikaty SSL, więc wszystkie usługi (np. Supabase, n8n, Flowise) powinny być dostępne przez subdomeny skonfigurowane w pliku .env (np. n8n.yourdomain.com, supabase.yourdomain.com). Upewnij się, że sekcja Caddy Config w pliku .env jest poprawnie skonfigurowana (patrz wcześniejszy artykuł).
7. Przeładowanie reguł firewalla
Po dodaniu reguł przeładuj ufw, aby zastosować zmiany:
sudo ufw reloadZweryfikuj, czy porty są otwarte:
sudo ufw statusPowinieneś zobaczyć listę otwartych portów, np.:
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
8000 ALLOW Anywhere
5678 ALLOW Anywhere
3000 ALLOW Anywhere
3001 ALLOW Anywhere
11434 ALLOW Anywhere
6333 ALLOW Anywhere
7474 ALLOW Anywhere8. Weryfikacja dostępu do usług
Sprawdź, czy możesz uzyskać dostęp do usług przez przeglądarkę:
Supabase Studio: http://localhost:8000 lub http://<your-server-ip>:8000.
n8n: http://localhost:5678 lub http://<your-server-ip>:5678.
Open WebUI: http://localhost:3000 lub http://<your-server-ip>:3000.
Flowise: http://localhost:3001 lub http://<your-server-ip>:3001.
Jeśli używasz środowiska publicznego z Caddy, użyj skonfigurowanych subdomen, np. https://n8n.yourdomain.com.
9. (Opcjonalne) Ograniczenie dostępu do konkretnych adresów IP
Dla większego bezpieczeństwa możesz ograniczyć dostęp do portów tylko dla określonych adresów IP, np. twojego lokalnego komputera:
sudo ufw allow from <your-ip-address> to any port 8000
sudo ufw allow from <your-ip-address> to any port 5678
sudo ufw allow from <your-ip-address> to any port 3000
sudo ufw allow from <your-ip-address> to any port 3001Zastąp <your-ip-address> swoim publicznym adresem IP (sprawdź go np. za pomocą curl ifconfig.me).
10. Przygotowanie do następnych kroków
Po skonfigurowaniu firewalla twoje środowisko local-ai-packaged jest w pełni dostępne. Możesz teraz kontynuować tworzenie przepływów pracy w n8n lub Flowise, dodawać modele do Ollama lub zarządzać danymi w Supabase Studio.
Najlepsze praktyki
Minimalizacja otwartych portów: W środowisku publicznym otwieraj tylko porty 80 i 443, korzystając z Caddy do zarządzania ruchem HTTPS.
Używanie HTTPS: Skonfiguruj Caddy z certyfikatami SSL (poprzez LETSENCRYPT_EMAIL w pliku .env), aby zapewnić bezpieczne połączenia.
Regularne sprawdzanie reguł: Okresowo weryfikuj reguły firewalla (sudo ufw status), aby upewnić się, że nie ma niepotrzebnie otwartych portów.
Logi usług: Jeśli dostęp do usług jest nadal zablokowany, sprawdź logi Docker (docker compose logs), aby zidentyfikować potencjalne problemy z konfiguracją usług.
Rozwiązywanie problemów
Brak dostępu do usług: Upewnij się, że podane porty są otwarte (sudo ufw status) i że usługi działają (docker compose ps). Jeśli usługa nie działa, uruchom ją ręcznie:
docker compose start <service-name>Problemy z Caddy w środowisku publicznym: Sprawdź, czy sekcja Caddy Config w pliku .env jest poprawnie skonfigurowana i czy subdomeny wskazują na prawidłowy adres IP serwera.
Błąd połączenia SSH po włączeniu ufw: Jeśli straciłeś dostęp do serwera, upewnij się, że port 22 jest otwarty. Jeśli masz dostęp do konsoli serwera (np. przez panel chmury), dodaj regułę:
sudo ufw allow 22
sudo ufw reloadUsługi działają, ale porty są zablokowane: Sprawdź, czy Docker nie omija reguł ufw (to częsty problem, jak wspomniano w dokumentacji). Rozwiązaniem jest użycie Caddy i ograniczenie ruchu do portów 80/443 lub ręczna konfiguracja iptables, co wykracza poza zakres tego artykułu.
Podsumowanie
Konfiguracja portów w firewallu za pomocą ufw zapewnia dostęp do usług pakietu local-ai-packaged, takich jak Supabase, n8n, Flowise i Open WebUI, przy jednoczesnym zachowaniu bezpieczeństwa. W środowisku lokalnym otwórz wszystkie niezbędne porty, a w publicznym ogranicz się do 80 i 443 z Caddy. W następnym artykule możesz skupić się na optymalizacji środowiska, np. dodaniu nowych modeli do Ollama lub tworzeniu zaawansowanych przepływów pracy w n8n i Flowise.