Skip to content Skip to footer

Supabase w local-ai-packaged na Ubuntu Server

Konfiguracja zmiennych środowiskowych

Wprowadzenie

Po sklonowaniu repozytorium local-ai-packaged (https://github.com/coleam00/local-ai-packaged) na Ubuntu Server, kolejnym krokiem jest konfiguracja zmiennych środowiskowych dla Supabase, które są niezbędne do uruchomienia usług AI, takich jak n8n, Ollama, czy Open WebUI. Supabase, jako open-source’owa baza danych, wymaga odpowiedniego ustawienia zmiennych w pliku .env, aby zapewnić bezpieczne i poprawne działanie. Ten artykuł przedstawia idiotoodporną instrukcję tworzenia i konfiguracji pliku .env na podstawie .env.example, zgodnie z wytycznymi projektu i dokumentacją Supabase (https://supabase.com/docs/guides/self-hosting/docker).

Dlaczego konfiguracja zmiennych środowiskowych jako kolejny krok?

Plik .env zawiera kluczowe ustawienia, takie jak hasła, klucze JWT i konfiguracje dla Supabase, n8n, Neo4j i innych usług w pakiecie local-ai-packaged. Poprawna konfiguracja zmiennych środowiskowych jest niezbędna przed uruchomieniem skryptu start_services.py, który inicjuje wszystkie usługi. Bez tego kroku usługi mogą nie działać lub być narażone na problemy z bezpieczeństwem.

Krok po kroku: Konfiguracja zmiennych środowiskowych dla Supabase

1. Przejdź do katalogu projektu

Upewnij się, że jesteś w katalogu projektu local-ai-packaged, który został sklonowany w poprzednim kroku.

cd ~/local-ai-packaged

2. Skopiuj plik .env.example do .env

Repozytorium zawiera plik .env.example, który służy jako szablon dla konfiguracji. Skopiuj go, aby utworzyć plik .env.

cp .env.example .env

3. Otwórz plik .env do edycji

Użyj edytora tekstu, np. nano, aby otworzyć plik .env.

nano .env

Jeśli nano nie jest zainstalowane, możesz je zainstalować:

sudo apt install -y nano

4. Generowanie bezpiecznych kluczy i haseł

Plik .env wymaga ustawienia kilku zmiennych środowiskowych, w tym dla Supabase, n8n, Neo4j i Langfuse. Poniżej opisujemy, jak wygenerować bezpieczne wartości dla kluczowych zmiennych, zgodnie z wytycznymi projektu i Supabase.

Generowanie kluczy za pomocą openssl

Użyj polecenia openssl do wygenerowania losowych, bezpiecznych kluczy. Jeśli openssl nie jest zainstalowane, zainstaluj je:

sudo apt install -y openssl

Wygeneruj klucze i hasła dla każdej zmiennej:

# N8N Configuration
N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
N8N_USER_MANAGEMENT_JWT_SECRET=$(openssl rand -hex 32)

# Supabase Secrets
POSTGRES_PASSWORD=$(openssl rand -hex 32)
JWT_SECRET=$(openssl rand -hex 32)
ANON_KEY=$(openssl rand -hex 32)
SERVICE_ROLE_KEY=$(openssl rand -hex 32)
DASHBOARD_USERNAME=admin
DASHBOARD_PASSWORD=$(openssl rand -hex 16)
POOLER_TENANT_ID=your-tenant-id-$(openssl rand -hex 8)

# Neo4j Secrets
NEO4J_AUTH=neo4j/$(openssl rand -hex 16)

# Langfuse Credentials
CLICKHOUSE_PASSWORD=$(openssl rand -hex 32)
MINIO_ROOT_PASSWORD=$(openssl rand -hex 32)
LANGFUSE_SALT=$(openssl rand -hex 32)
NEXTAUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)

Ważne: Zapisz wygenerowane wartości w bezpiecznym miejscu, np. w menedżerze haseł, ponieważ będą potrzebne do konfiguracji usług i dostępu do nich.

5. Edycja pliku .env

W pliku .env znajdź sekcje dla N8N Configuration, Supabase Secrets, Neo4j Secrets i Langfuse Credentials. Wklej wygenerowane wartości do odpowiednich pól. Przykład skonfigurowanego fragmentu pliku .env:

############
# N8N Configuration
############
N8N_ENCRYPTION_KEY=your-generated-n8n-encryption-key
N8N_USER_MANAGEMENT_JWT_SECRET=your-generated-n8n-jwt-secret

############
# Supabase Secrets
############
POSTGRES_PASSWORD=your-generated-postgres-password
JWT_SECRET=your-generated-jwt-secret
ANON_KEY=your-generated-anon-key
SERVICE_ROLE_KEY=your-generated-service-role-key
DASHBOARD_USERNAME=admin
DASHBOARD_PASSWORD=your-generated-dashboard-password
POOLER_TENANT_ID=your-tenant-id-xxxxxxxx

############
# Neo4j Secrets
############
NEO4J_AUTH=neo4j/your-generated-neo4j-password

############
# Langfuse Credentials
############
CLICKHOUSE_PASSWORD=your-generated-clickhouse-password
MINIO_ROOT_PASSWORD=your-generated-minio-password
LANGFUSE_SALT=your-generated-langfuse-salt
NEXTAUTH_SECRET=your-generated-nextauth-secret
ENCRYPTION_KEY=your-generated-encryption-key

Uwagi:

  • Zastąp your-generated-… wygenerowanymi wartościami z poleceń openssl.

  • Nie używaj wartości przykładowych z pliku .env.example w środowisku produkcyjnym.

  • DASHBOARD_USERNAME możesz ustawić na dowolną wartość, np. admin.

  • POOLER_TENANT_ID powinien być unikalny; możesz dodać losowy ciąg, jak w przykładzie powyżej.

6. (Opcjonalne) Konfiguracja dla środowiska produkcyjnego

Jeśli planujesz wdrożenie w środowisku publicznym (np. w chmurze), odkomentuj i skonfiguruj sekcję Caddy Config w pliku .env. Przykład:

############
# Caddy Config
############
N8N_HOSTNAME=n8n.yourdomain.com
WEBUI_HOSTNAME=openwebui.yourdomain.com
FLOWISE_HOSTNAME=flowise.yourdomain.com
SUPABASE_HOSTNAME=supabase.yourdomain.com
OLLAMA_HOSTNAME=ollama.yourdomain.com
SEARXNG_HOSTNAME=searxng.yourdomain.com
NEO4J_HOSTNAME=neo4j.yourdomain.com
LETSENCRYPT_EMAIL=your-email@example.com

Uwagi:

  • Zastąp yourdomain.com własną domeną.

  • LETSENCRYPT_EMAIL to adres e-mail używany do generowania certyfikatów SSL przez Caddy.

  • Jeśli pracujesz lokalnie, możesz pominąć tę sekcję.

7. Zapisanie pliku .env

Po wprowadzeniu zmian zapisz plik .env (w nano naciśnij Ctrl+O, Enter, a następnie Ctrl+X).

8. Weryfikacja pliku .env

Sprawdź, czy plik .env został poprawnie skonfigurowany, wyświetlając jego zawartość:

cat .env

Upewnij się, że wszystkie wymagane zmienne mają unikalne, bezpieczne wartości i nie zawierają domyślnych lub pustych pól.

9. Przygotowanie do następnych kroków

Plik .env jest teraz gotowy, co pozwala na uruchomienie usług za pomocą skryptu start_services.py w kolejnym kroku. Upewnij się, że masz zapisane wszystkie klucze i hasła w bezpiecznym miejscu, ponieważ będą potrzebne do konfiguracji usług, takich jak Supabase Studio czy n8n.

Najlepsze praktyki

  • Bezpieczeństwo kluczy: Nigdy nie zapisuj kluczy w publicznie dostępnym miejscu ani nie zatwierdzaj pliku .env do repozytorium Git. Plik .env jest domyślnie ignorowany przez .gitignore w projekcie local-ai-packaged.

  • Silne hasła: Używaj losowych, długich ciągów znaków (np. 32 znaki) dla wszystkich kluczy i haseł, generowanych za pomocą openssl lub menedżera haseł.

  • Kopia zapasowa: Zapisz kopię pliku .env w bezpiecznym miejscu, aby móc przywrócić konfigurację w razie potrzeby.

  • Supabase Studio: Po uruchomieniu usług, zmień domyślne dane logowania do Supabase Studio (np. DASHBOARD_USERNAME i DASHBOARD_PASSWORD) dla dodatkowego bezpieczeństwa.

Rozwiązywanie problemów

  • Błąd: „Permission denied” przy edycji .env: Upewnij się, że masz odpowiednie uprawnienia do edycji pliku. Możesz zmienić uprawnienia za pomocą chmod 600 .env.

  • Puste lub nieprawidłowe klucze: Sprawdź, czy wszystkie zmienne w pliku .env mają poprawnie wygenerowane wartości. Puste pola mogą powodować błędy podczas uruchamiania usług.

  • Problem z openssl: Jeśli polecenie openssl nie działa, upewnij się, że jest zainstalowane (sudo apt install openssl).

Podsumowanie

Konfiguracja zmiennych środowiskowych w pliku .env to kluczowy krok w przygotowaniu środowiska local-ai-packaged do uruchomienia usług, w tym Supabase. Poprawnie skonfigurowany plik .env zapewnia bezpieczeństwo i prawidłowe działanie wszystkich komponentów. W następnym artykule uruchomimy skrypt start_services.py, aby zainicjować usługi AI, takie jak Supabase, n8n i Ollama.

Leave a comment

0.0/5