start_services.py
Wprowadzenie
Po skonfigurowaniu zmiennych środowiskowych w pliku .env dla projektu local-ai-packaged (https://github.com/coleam00/local-ai-packaged), kolejnym krokiem jest uruchomienie usług AI, takich jak Supabase, n8n, Ollama, Open WebUI i inne, za pomocą skryptu start_services.py. Ten skrypt automatyzuje proces inicjowania wszystkich kontenerów Docker, które tworzą lokalne środowisko AI. Ten artykuł przedstawia idiotoodporną instrukcję uruchomienia usług na Ubuntu Server, zgodnie z wytycznymi projektu i dokumentacją Supabase (https://supabase.com/docs/guides/self-hosting/docker).
Dlaczego uruchamianie usług jako kolejny krok?
Skrypt start_services.py jest kluczowym elementem projektu local-ai-packaged, ponieważ zarządza uruchamianiem wszystkich usług zdefiniowanych w pliku docker-compose.yml. Wykonanie tego kroku pozwala na zainicjowanie pełnego stosu AI, umożliwiając dostęp do narzędzi takich jak Supabase (baza danych), n8n (platforma low-code) czy Ollama (lokalne modele językowe). Poprawna konfiguracja i uruchomienie usług przygotowuje środowisko do dalszej pracy z przepływami AI.
Krok po kroku: Uruchamianie usług za pomocą start_services.py
1. Przejdź do katalogu projektu
Upewnij się, że jesteś w katalogu projektu local-ai-packaged, w którym znajduje się skrypt start_services.py i plik .env.
cd ~/local-ai-packaged2. Weryfikacja pliku .env
Sprawdź, czy plik .env istnieje i zawiera poprawnie skonfigurowane zmienne środowiskowe (patrz poprzedni artykuł). Możesz wyświetlić jego zawartość, aby upewnić się, że wszystkie klucze są ustawione:
cat .envJeśli plik .env jest pusty lub brakuje w nim zmiennych, wróć do poprzedniego kroku i skonfiguruj go zgodnie z instrukcją.
3. Zainstaluj zależności Pythona
Skrypt start_services.py może wymagać dodatkowych bibliotek Pythona. Zainstaluj je, aby zapewnić poprawne działanie skryptu. Najpierw sprawdź, czy masz zainstalowany pip:
pip3 --versionJeśli pip jest zainstalowany, zainstaluj wymagane pakiety:
pip3 install dockerUwaga: Jeśli projekt wymaga innych zależności Pythona, upewnij się, że są one zainstalowane. Możesz sprawdzić wymagania w pliku requirements.txt, jeśli istnieje:
pip3 install -r requirements.txt4. Sprawdzenie dostępności Docker Compose
Upewnij się, że Docker Compose jest zainstalowany, ponieważ jest wymagany do uruchamiania usług zdefiniowanych w pliku docker-compose.yml. Sprawdź wersję:
docker compose versionJeśli Docker Compose nie jest zainstalowany, zainstaluj go:
sudo apt install -y docker-compose-plugin5. Uruchomienie skryptu start_services.py
Skrypt start_services.py obsługuje różne profile w zależności od używanego sprzętu. Dla Ubuntu Server na maszynie bez GPU (lub z GPU, jeśli masz odpowiednie sterowniki), użyj odpowiedniego profilu. W tym przykładzie zakładamy, że używasz procesora (CPU) lub nie masz skonfigurowanego GPU:
python3 start_services.py --profile cpuOpcje profilu:
–profile cpu: Dla maszyn bez GPU lub w środowiskach bez akceleracji sprzętowej.
–profile gpu-nvidia: Dla maszyn z GPU NVIDIA (wymaga sterowników NVIDIA i CUDA).
–profile gpu-amd: Dla maszyn z GPU AMD (tylko na Linuksie).
–profile none: Jeśli Ollama jest uruchomiona lokalnie poza Dockerem (np. na Mac).
Opcje środowiska (opcjonalne):
–environment private: Domyślne ustawienie, otwiera więcej portów, odpowiednie dla lokalnego środowiska.
–environment public: Zamyka wszystkie porty poza 80 i 443, zalecane dla wdrożeń w chmurze.
Przykład dla środowiska publicznego z GPU NVIDIA:
python3 start_services.py --profile gpu-nvidia --environment publicUwaga dla użytkowników NVIDIA: Jeśli używasz GPU NVIDIA, upewnij się, że masz zainstalowane sterowniki NVIDIA i NVIDIA Container Toolkit. Możesz je zainstalować, wykonując:
sudo apt install -y nvidia-driver-<version> nvidia-container-toolkitZastąp <version> odpowiednią wersją sterownika dla twojego GPU.
6. Weryfikacja uruchomionych usług
Po uruchomieniu skryptu sprawdź, czy wszystkie usługi działają poprawnie:
docker compose psPowinieneś zobaczyć listę usług (np. supabase, n8n, ollama, open-webui) z statusem running (healthy). Jeśli któraś usługa ma status created lub exited, spróbuj uruchomić ją ręcznie:
docker compose start <service-name>Na przykład:
docker compose start supabase7. Dostęp do Supabase Studio
Po uruchomieniu usług możesz uzyskać dostęp do Supabase Studio przez przeglądarkę pod adresem:
http://localhost:8000Dane logowania:
Użytkownik: Wartość ustawiona w DASHBOARD_USERNAME w pliku .env (np. admin).
Hasło: Wartość ustawiona w DASHBOARD_PASSWORD w pliku .env.
Uwaga: Jeśli pracujesz na zdalnym serwerze, zastąp localhost adresem IP serwera, np. http://<your-server-ip>:8000.
8. Dostęp do n8n
Sprawdź, czy n8n działa, otwierając w przeglądarce:
http://localhost:5678Postępuj zgodnie z instrukcjami konfiguracji n8n, które pojawią się w interfejsie. Będziesz musiał skonfigurować lokalne konto użytkownika (nie jest to konto online).
9. Dostęp do Open WebUI
Otwórz Open WebUI w przeglądarce:
http://localhost:3000Skonfiguruj lokalne konto użytkownika zgodnie z instrukcjami na stronie.
10. Przygotowanie do następnych kroków
Po uruchomieniu usług możesz przejść do konfiguracji przepływów pracy w n8n, ustawienia modeli w Ollama lub integracji z Supabase. Sprawdź logi kontenerów, aby upewnić się, że wszystko działa poprawnie:
docker compose logsJeśli Ollama pobiera model (np. Llama3.1), może to zająć trochę czasu. Możesz monitorować postępy, sprawdzając logi:
docker compose logs ollamaNajlepsze praktyki
Monitoruj zasoby: Usługi AI, takie jak Ollama, mogą zużywać dużo pamięci i CPU. Użyj narzędzi takich jak htop do monitorowania zasobów.
Bezpieczeństwo w środowisku publicznym: Jeśli wdrażasz w chmurze, użyj opcji –environment public i skonfiguruj firewall (np. ufw), aby ograniczyć dostęp do portów 80 i 443.
Logi i debugowanie: Regularnie sprawdzaj logi (docker compose logs) w razie problemów z uruchamianiem usług.
Zapisuj dane logowania: Zachowaj dane logowania do Supabase Studio i n8n w bezpiecznym miejscu, np. w menedżerze haseł.
Rozwiązywanie problemów
Błąd: „ModuleNotFoundError” w start_services.py: Upewnij się, że zainstalowałeś wszystkie wymagane pakiety Pythona (pip3 install docker).
Błąd: Usługi nie uruchamiają się: Sprawdź, czy plik .env zawiera wszystkie wymagane zmienne i czy nie ma w nich znaków specjalnych (np. @ w POSTGRES_PASSWORD może powodować problemy). W razie potrzeby usuń folder supabase/docker/volumes/db/data i uruchom ponownie:
rm -rf supabase/docker/volumes/db/data
docker compose up -dBłąd: SearXNG się restartuje: Wykonaj polecenie chmod 755 searxng w katalogu projektu, aby nadać odpowiednie uprawnienia:
chmod 755 searxngBrak dostępu do Supabase Studio: Upewnij się, że port 8000 jest otwarty (sudo ufw allow 8000) i że używasz poprawnych danych logowania z pliku .env.
Podsumowanie
Uruchomienie usług za pomocą skryptu start_services.py inicjuje wszystkie komponenty pakietu local-ai-packaged, takie jak Supabase, n8n i Ollama, umożliwiając rozpoczęcie pracy z lokalnym środowiskiem AI. W następnym artykule skonfigurujemy przepływy pracy w n8n, aby zintegrować je z Supabase i Ollama, tworząc funkcjonalne przepływy AI.