Indeks dziennikaDockup / notatka terenowa
Note / self-host-langflow

Jak hostować Langflow samodzielnie w 2026 roku: flow, dostęp przez API i trwałość danych

Hostuj Langflow samodzielnie z poprawnie skonfigurowanymi portami, trwałym storage, HTTPS, sekretami, backupami i kontrolą aktualizacji. Dowiedz się, jak naprawić problem zmiany sekretu po restarcie.

Traktuj Langflow jak niewielki system, a nie obraz Docker. Cel użytkowy Langflow jest jasny: to wizualny builder workflowów LLM, który udostępnia flow jako API. Wdrożenie można uznać za poprawne dopiero wtedy, gdy możesz zbudować flow z poświadczeniami dostawcy, uruchomić je w edytorze, wywołać jego API i zweryfikować odpowiedź po restarcie usługi.

To rozróżnienie pozwala wykryć problem, z którym operatorzy spotykają się po lokalnych testach: sekret zmienia się po restarcie albo brakuje zależności komponentów. Dzięki temu plan backupu i aktualizacji można przygotować na tyle konkretnie, aby dało się go przetestować.

Najpierw zdefiniuj, kiedy Langflow działa poprawnie

Nie pozwól, aby obraz Langflow przypadkowo narzucił architekturę produkcyjną. Obraz dostarcza proces działający na porcie 7860, ale storage, routing i wymagania zewnętrzne nadal potrzebują świadomie zaplanowanych cykli życia. Kontrakt sieciowy Langflow obejmuje Postgres dla trwałego stanu oraz poświadczenia dostawcy modelu. Prywatne endpointy trzymaj w wewnętrznym DNS, zezwalaj wyłącznie na wymagane połączenia wychodzące i nadaj Langflow ograniczone uprawnienia konta usługowego.

Wdrożenie jest gotowe do dokładniejszych testów, gdy potrafi zbudować flow z poświadczeniami dostawcy, uruchomić je w edytorze, wywołać jego API i zweryfikować odpowiedź po restarcie usługi. Śledź transakcję w logach i obserwuj wykonanie komponentów, opóźnienia modelu, równoległe wywołania API, parsowanie plików oraz liczbę połączeń z bazą danych. Te obserwacje pokażą, czy obecna topologia właściwie izoluje poszczególne komponenty.

Uruchom Langflow z domyślnymi ustawieniami ułatwiającymi obserwację

Początkowe uruchomienie Langflow powinno być na tyle powtarzalne, aby można było je przejrzeć w pull requeście.

docker run -d \
  --name langflow \
  --restart unless-stopped \
  -p 127.0.0.1:7860:7860 \
  -v langflow-data:/app/langflow \
  -e LANGFLOW_SECRET_KEY=replace-with-a-long-random-value \
  langflowai/langflow:latest

Po zapisaniu rzeczywistych danych nie polegaj na latest. Zapisz działający digest, użytkownika kontenera i właściciela zamontowanego katalogu. Prześledź log aplikacji podczas pełnego testu — zbuduj flow z poświadczeniami dostawcy, uruchom je w edytorze, wywołaj jego API i zweryfikuj odpowiedź po restarcie usługi — oraz odnotuj wszystkie migracje, zanim skierujesz ruch produkcyjny na ten endpoint.

Przetestuj Langflow spoza serwera

Traktuj zewnętrzny URL Langflow jako konfigurację, która musi przetrwać ponowne wdrożenia. Najpierw ustaw publiczny adres używany przez klientów API i callbacki uwierzytelniania, a następnie skieruj hostname na port 7860, zachowując oryginalny host i schemat.

Lista kontrolna dostępności wdrożenia pozwala potwierdzić, że żądania docierają do kontenera. Od tego momentu znany problem — sekret zmienia się po restarcie albo brakuje zależności komponentów — należy analizować w Langflow, jego stanie lub obciążeniu, a nie w automatyzacji certyfikatów.

Oddziel kontenery, które można wymieniać, od trwałych danych

Obraz kontenera można pobrać ponownie, ale flow, baza danych, klucze API i przesłane pliki — nie. Zamontuj /app/langflow przed bootstrapem, zapisz nieszkodliwe przykładowe dane i wymień kontener, aby potwierdzić, że ta ścieżka rzeczywiście jest trwała. Sprawdź faktycznie zamontowany katalog zamiast ufać nazwie pliku Compose i upewnij się, że użytkownik uruchomieniowy może zapisywać w miejscu, którego Langflow używa.

Wybierz okres retencji i lokalizację poza hostem, a następnie przećwicz odtwarzanie bez dotykania produkcji. Ćwiczenie kończy się powodzeniem tylko wtedy, gdy wracają flow, użytkownicy, poświadczenia i pliki, a istniejący klient API może wykonać odtworzony flow. W przypadku stanu opartego na bazie danych połącz snapshoty storage z eksportami spójnymi na poziomie aplikacji, zgodnie z opisem w artykule odtwarzanie do punktu w czasie a snapshoty.

Decyzje dotyczące bezpieczeństwa specyficzne dla Langflow

Nie przenoś założeń bezpieczeństwa z lokalnego tutoriala. Specyficzne ryzyko Langflow polega na udostępnieniu możliwości budowania flow i zapisanych kluczy dostawców bez uwierzytelniania. Dlatego środowisko produkcyjne powinno chronić builder, ograniczać dostęp do API i przechowywać poświadczenia modeli w zaszyfrowanym storage po stronie serwera.

Traktuj LANGFLOW_SECRET_KEY zgodnie z jego rolą w Langflow: przechowuj wrażliwe wartości poza Gitem, opisz skutki rotacji i nigdy nie zastępuj produkcyjnej wartości publicznym przykładem. Ogranicz dostęp do systemu plików i sieci, zabezpiecz endpointy konfiguracyjne oraz zdefiniuj limity przesyłania plików, żądań lub wykonywania wokół wykonywania komponentów, opóźnień modeli, równoległych wywołań API, parsowania plików i liczby połączeń z bazą danych.

Kontrola wydajności i aktualizacji

Pierwszą użyteczną metryką operacyjną dla Langflow jest to, czy potrafi zbudować flow z poświadczeniami dostawcy, uruchomić je w edytorze, wywołać jego API i zweryfikować odpowiedź po restarcie usługi. Połącz ją z sygnałami nasycenia dotyczącymi wykonywania komponentów, opóźnień modelu, równoległych wywołań API, parsowania plików i liczby połączeń z bazą danych. Probe sprawdzający wyłącznie proces nie powinien wywoływać kosztownych zależności ani restartować kontenera tylko dlatego, że upstream jest chwilowo niedostępny.

Traktuj aktualizacje jak zmiany danych, ponieważ pakiety komponentów, migracje baz danych i serializowane flow mogą zmieniać się między wydaniami Langflow. Przypinaj wersje, przeprowadzaj próby na odtworzonym stanie i zachowaj poprzedni obraz do czasu, aż rollback będzie nadal możliwy. Gdy sekret zmienia się po restarcie albo brakuje zależności komponentów, zachowaj logi z czasu przed restartem — zwykle zawierają komunikat wskazujący przyczynę.

Zapisz znane, poprawnie działające wdrożenie Langflow

Przekształć smoke test Langflow w powtarzalną komendę release albo krótką procedurę operacyjną. Jej wynik musi potwierdzać następujący rezultat: zbuduj flow z poświadczeniami dostawcy, uruchom je w edytorze, wywołaj jego API i zweryfikuj odpowiedź po restarcie usługi. Zapisz wraz z wynikiem wersję aplikacji, digest kontenera, hostname endpointu i identyfikator danych testowych.

Uruchom tę samą kontrolę po standardowej wymianie kontenera oraz po odtworzeniu flow, bazy danych, kluczy API i przesłanych plików w innym miejscu. Odtwarzanie zakończyło się powodzeniem, gdy wracają flow, użytkownicy, poświadczenia i pliki, a istniejący klient API może wykonać odtworzony flow. Porównaj czas i zużycie zasobów związane z wykonywaniem komponentów, opóźnieniami modelu, równoległymi wywołaniami API, parsowaniem plików i liczbą połączeń z bazą danych; duża zmiana zasługuje na analizę, nawet jeśli końcowa czynność nadal się powiedzie.

Następnie przeprowadź bezpieczny test awarii: tymczasowo odbierz tożsamości testowej dostęp do Postgresa dla trwałego stanu oraz poświadczeń dostawcy modelu. Potwierdź, że Langflow zgłasza problem i wraca do normalnego działania bez destrukcyjnych ręcznych zmian. Zachowaj tylko niezbędny, zanonimizowany fragment logu. Ten czteroczęściowy etap obejmuje uruchamianie, trwałość danych, odtwarzanie i obsługę awarii.

Co Dockup powinien automatyzować dla Langflow

Warstwa platformy dla Langflow obejmuje port 7860, ingress, TLS, konfigurację uruchomieniową, storage i dostępność zależności. Dockup może odtworzyć te elementy dla własnej infrastruktury lub serwera podłączonego przez klienta.

Następnie operator kończy konfigurację warstwy produktu: ustawia publiczny adres używany przez klientów API i callbacki uwierzytelniania, egzekwuje tę zasadę dostępu — chroni builder, ogranicza dostęp do API i przechowuje poświadczenia modeli w zaszyfrowanym storage po stronie serwera — oraz uruchamia test „zbuduj flow z poświadczeniami dostawcy, uruchom je w edytorze, wywołaj jego API i zweryfikuj odpowiedź po restarcie usługi”. Zapisanie tego testu wraz z wdrożeniem pozwala uniknąć mylenia automatycznego provisioningu z gotowością aplikacji.

Najczęściej zadawane pytania

Czego Langflow potrzebuje do wdrożenia produkcyjnego?

Skieruj kontener Langflow działający na porcie 7860 przez jeden origin HTTPS. Wymaganie sieciowe zaplecza obejmuje Postgres dla trwałego stanu oraz poświadczenia dostawcy modelu. Nie uznawaj Langflow za gotowy, dopóki nie możesz zbudować flow z poświadczeniami dostawcy, uruchomić go w edytorze, wywołać jego API i zweryfikować odpowiedź po restarcie usługi.

Które dane Langflow powinny być objęte backupem?

Utrwal /app/langflow i uwzględnij flow, bazę danych, klucze API oraz przesłane pliki w tym samym manifeście odtwarzania. Czyste odtworzenie Langflow kończy się powodzeniem tylko wtedy, gdy wracają flow, użytkownicy, poświadczenia i pliki, a istniejący klient API może wykonać odtworzony flow.

Czy Langflow wymaga HTTPS za reverse proxy?

Używaj HTTPS dla publicznego originu Langflow, a port 7860 pozostaw na trasie wewnętrznej. Zastosuj poprawnie ustawienie Langflow: skonfiguruj publiczny adres używany przez klientów API i callbacki uwierzytelniania. W przypadku Langflow HTTPS chroni poświadczenia lub treści użytkowników podczas przesyłania i zapewnia spójne działanie klienta zależne od originu.

Jak testować aktualizację Langflow?

Odtwórz bieżący stan Langflow w odizolowanym wdrożeniu, zastosuj wersję kandydującą i powtórz transakcję akceptacyjną. Zwróć szczególną uwagę na to, że pakiety komponentów, migracje baz danych i serializowane flow mogą zmieniać się między wydaniami Langflow. Zachowaj poprzedni obraz Langflow do czasu zrozumienia granic migracji danych i rollbacku.