Skip to content Skip to footer

Instalacja local-ai-packaged na publicznym serwerze dla agencja-ai.com

Wprowadzenie

Cześć! – – – Chcesz hostować pakiet local-ai-packaged (https://github.com/coleam00/local-ai-packaged) na publicznym serwerze pod domeną https://agencja-ai.com, aby każdy mógł korzystać z Twojego lokalnego środowiska AI? – – – Świetnie! – – – Ten artykuł to idiotoodporna instrukcja dla polskich użytkowników, którzy chcą skonfigurować serwer AI na Ubuntu z publicznym dostępem, używając Nginx Proxy Manager do zarządzania ruchem HTTPS i certyfikatami SSL. – – – Podam wszystkie komendy do wiersza poleceń, które możesz skopiować i wkleić, oraz szczegółowo opiszę konfigurację pliku .env dla środowiska publicznego. – – – Celem jest stworzenie bezpiecznego, łatwego w użyciu systemu, który zwiększy atrakcyjność Twoich instrukcji dla klientów w Polsce!

Dlaczego hostowanie na publicznym serwerze?

  • Publiczny dostęp: – – – Hostowanie na https://agencja-ai.com pozwala polskim użytkownikom korzystać z usług takich jak Supabase, n8n, Flowise czy Open WebUI przez przeglądarkę, co jest idealne do prezentacji i sprzedaży.

  • Bezpieczeństwo: – – – Nginx Proxy Manager zapewnia certyfikaty SSL, a konfiguracja –environment public ogranicza otwarte porty do 80 i 443, zwiększając bezpieczeństwo.

  • Polski kontekst: – – – Instrukcje są po polsku, z gotowymi komendami, co ułatwia polskim firmom wdrożenie własnych serwerów AI.

Krok po kroku: Instalacja local-ai-packaged na publicznym serwerze

1. Przygotowanie serwera Ubuntu

Zakładam, że masz serwer Ubuntu (np. 22.04 lub 24.04) z publicznym adresem IP i domeną agencja-ai.com skonfigurowaną w DNS (rekordy A wskazujące na IP serwera).

Zaloguj się na serwer przez SSH:

ssh <your-username>@<your-server-ip>

Zaktualizuj system i zainstaluj podstawowe narzędzia:

sudo apt update
sudo apt install -y git curl jq openssl python3-pip nano

2. Instalacja Dockera

Zainstaluj Docker i Docker Compose:

sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker

Dodaj swojego użytkownika do grupy docker:

sudo usermod -aG docker $USER

Wyloguj się i zaloguj ponownie:

exit
ssh <your-username>@<your-server-ip>

3. Instalacja Nginx Proxy Manager

Nginx Proxy Manager zarządza ruchem HTTPS i certyfikatami SSL. Zainstaluj go w Dockerze:

mkdir ~/nginx-proxy-manager
cd ~/nginx-proxy-manager
nano docker-compose.yml

Wklej poniższy kod:

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm-password"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'yobasystems/alpine-mariadb:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm-root-password'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm-password'
    volumes:
      - ./data/mysql:/var/lib/mysql

Zapisz (Ctrl+O, Enter, Ctrl+X) i uruchom:

docker compose up -d

Dostęp do panelu Nginx Proxy Manager:

http://<your-server-ip>:81

Zaloguj się (domyślne dane: admin@example.com, hasło: changeme). Zmień hasło przy pierwszym logowaniu.

4. Konfiguracja DNS

Upewnij się, że subdomeny wskazują na IP serwera. Dodaj rekordy A w panelu zarządzania domeną agencja-ai.com:

Subdomena

Typ

Wartość

n8n.agencja-ai.com

A

 

openwebui.agencja-ai.com

A

 

flowise.agencja-ai.com

A

 

supabase.agencja-ai.com

A

 

langfuse.agencja-ai.com

A

 

Sprawdź DNS:

dig n8n.agencja-ai.com

5. Klonowanie repozytorium local-ai-packaged

Sklonuj repozytorium:

cd ~
git clone -b stable https://github.com/coleam00/local-ai-packaged.git
cd local-ai-packaged

6. Konfiguracja pliku .env

Skopiuj przykładowy plik .env:

cp .env.example .env
nano .env

Wygeneruj bezpieczne klucze i hasła:

N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
N8N_USER_MANAGEMENT_JWT_SECRET=$(openssl rand -hex 32)
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_PASSWORD=$(openssl rand -hex 16)
POOLER_TENANT_ID=agencja-ai-$(openssl rand -hex 8)
NEO4J_AUTH=neo4j/$(openssl rand -hex 16)
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)
FLOWISE_PASSWORD=$(openssl rand -hex 16)
LOGFLARE_PUBLIC_ACCESS_TOKEN=$(openssl rand -hex 32)
LOGFLARE_PRIVATE_ACCESS_TOKEN=$(openssl rand -hex 32)
VAULT_ENC_KEY=$(openssl rand -hex 32)

Wklej poniższy plik .env, zastępując wartości wygenerowanymi kluczami:

############
# 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-generated-tenant-id

############
# 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

############
# Caddy Config
############
N8N_HOSTNAME=n8n.agencja-ai.com
WEBUI_HOSTNAME=openwebui.agencja-ai.com
FLOWISE_HOSTNAME=flowise.agencja-ai.com
SUPABASE_HOSTNAME=supabase.agencja-ai.com
LANGFUSE_HOSTNAME=langfuse.agencja-ai.com
LETSENCRYPT_EMAIL=admin@agencja-ai.com

############
# Flowise Configuration
############
FLOWISE_USERNAME=admin
FLOWISE_PASSWORD=your-generated-flowise-password

############
# Database
############
POSTGRES_HOST=db
POSTGRES_DB=postgres
POSTGRES_PORT=5432
POSTGRES_USER=postgres

############
# Supavisor
############
POOLER_PROXY_PORT_TRANSACTION=6543
POOLER_DEFAULT_POOL_SIZE=20
POOLER_MAX_CLIENT_CONN=100
SECRET_KEY_BASE=UpNVntn3cDxHJpq99YMc1T1AQgQpc8kfYTuRgBiYa15BLrx8etQoXz3gZv1/u2oq
VAULT_ENC_KEY=your-generated-vault-enc-key
POOLER_DB_POOL_SIZE=5

############
# API Proxy
############
KONG_HTTP_PORT=8000
KONG_HTTPS_PORT=8443

############
# API
############
PGRST_DB_SCHEMAS=public,storage,graphql_public

############
# Auth
############
SITE_URL=https://supabase.agencja-ai.com
ADDITIONAL_REDIRECT_URLS=https://n8n.agencja-ai.com,https://openwebui.agencja-ai.com,https://flowise.agencja-ai.com,https://langfuse.agencja-ai.com
JWT_EXPIRY=3600
DISABLE_SIGNUP=false
API_EXTERNAL_URL=https://supabase.agencja-ai.com

## Mailer Config
MAILER_URLPATHS_CONFIRMATION=/auth/v1/verify
MAILER_URLPATHS_INVITE=/auth/v1/verify
MAILER_URLPATHS_RECOVERY=/auth/v1/verify
MAILER_URLPATHS_EMAIL_CHANGE=/auth/v1/verify
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=true
SMTP_ADMIN_EMAIL=admin@agencja-ai.com
SMTP_HOST=email-smtp.<region>.amazonaws.com
SMTP_PORT=587
SMTP_USER=your-smtp-user
SMTP_PASS=your-smtp-password
SMTP_SENDER_NAME=Agencja AI
ENABLE_ANONYMOUS_USERS=false
ENABLE_PHONE_SIGNUP=true
ENABLE_PHONE_AUTOCONFIRM=true

############
# Studio
############
STUDIO_DEFAULT_ORGANIZATION=Agencja AI
STUDIO_DEFAULT_PROJECT=Main Project
STUDIO_PORT=3000
SUPABASE_PUBLIC_URL=https://supabase.agencja-ai.com
IMGPROXY_ENABLE_WEBP_DETECTION=true

############
# Functions
############
FUNCTIONS_VERIFY_JWT=false

############
# Logs
############
LOGFLARE_PUBLIC_ACCESS_TOKEN=your-generated-logflare-public-key
LOGFLARE_PRIVATE_ACCESS_TOKEN=your-generated-logflare-private-key
DOCKER_SOCKET_LOCATION=/var/run/docker.sock

Zapisz (Ctrl+O, Enter, Ctrl+X).

Uwagi:

  • SMTP: Skonfiguruj serwer SMTP (np. AWS SES). Zastąp your-smtp-user i your-smtp-password rzeczywistymi danymi.

  • Caddy Config: Subdomeny (n8n.agencja-ai.com, itp.) muszą zgadzać się z DNS. LETSENCRYPT_EMAIL to prawdziwy adres e-mail dla certyfikatów SSL.

  • Ollama i SearXNG: Nie eksponujemy ich publicznie, bo nie są domyślnie zabezpieczone.

7. Konfiguracja Nginx Proxy Manager

Dodaj hosty proxy w panelu Nginx Proxy Manager (http://<your-server-ip>:81):

# Przykład dla n8n
Subdomena: n8n.agencja-ai.com
IP: <your-server-ip>
Port: 5678
SSL: Włącz (użyj Let’s Encrypt)

# Powtórz dla:
# openwebui.agencja-ai.com (port 3000)
# flowise.agencja-ai.com (port 3001)
# supabase.agencja-ai.com (port 8000)
# langfuse.agencja-ai.com (port 3002)

8. Konfiguracja firewalla

Otwórz tylko porty 80, 443 i 22 (SSH):

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw status

9. Uruchomienie usług

Zainstaluj zależności Pythona:

pip3 install docker

Uruchom usługi w trybie publicznym:

python3 start_services.py --profile cpu --environment public

Sprawdź status usług:

docker compose ps

10. Weryfikacja

Sprawdź dostęp do usług:

  • n8n: https://n8n.agencja-ai.com

  • Open WebUI: https://openwebui.agencja-ai.com

  • Flowise: https://flowise.agencja-ai.com

  • Supabase Studio: https://supabase.agencja-ai.com

  • Langfuse: https://langfuse.agencja-ai.com

Sprawdź logi w razie problemów:

docker compose logs

Najlepsze praktyki

  • Bezpieczeństwo: – – – Nigdy nie udostępniaj pliku .env. Używaj menedżera haseł.

  • DNS: – – – Regularnie sprawdzaj rekordy DNS (dig n8n.agencja-ai.com).

  • Kopia zapasowa: – – – Twórz kopie bazy Supabase:

docker compose exec db pg_dump -U postgres postgres > backup.sql
  • Monitorowanie: – – – Sprawdzaj logi usług:

docker compose logs supabase
docker compose logs n8n

Rozwiązywanie problemów

  • Brak dostępu do subdomen: – – – Sprawdź DNS:

dig n8n.agencja-ai.com
  • Błędy SSL: – – – Upewnij się, że Nginx Proxy Manager ma ważny certyfikat.

  • Usługi nie działają: – – – Sprawdź status:

docker compose ps
  • Błąd Supabase: – – – Usuń folder danych i uruchom ponownie:

rm -rf supabase/docker/volumes/db/data
python3 start_services.py --profile cpu --environment public

Podsumowanie

Skonfigurowałeś local-ai-packaged na publicznym serwerze pod https://agencja-ai.com z Nginx Proxy Manager, zapewniając bezpieczny dostęp przez HTTPS. – – – Twoje instrukcje są teraz gotowe do sprzedaży polskim klientom, którzy chcą własnych serwerów AI. – – – Możesz teraz dodać chatbota RAG lub wzbogacić system o dane użytkowników, jak w poprzednich artykułach. – – – Co dalej? Może demo chatbota na Twojej stronie? 😄

Leave a comment

0.0/5