Polski
Zacznij
← Wszystkie szablony

Wdróż aplikację Flowise na Pethost jednym kliknięciem

Buduj agentów AI i przepływy LLM wizualnie, a potem wywołuj je przez API albo osadzaj jako widżet czatu

Co się dzieje

  1. Logujesz się do Pethost albo zakładasz konto, kluczem dostępu, przez GitHub albo Google.
  2. Nie masz jeszcze maszyny? Wybierasz plan, a my ją dla ciebie przygotowujemy. Link czeka w twojej przeglądarce, aż będzie gotowa.
  3. Okno „Nowy projekt” otwiera się na tej aplikacji. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: E-mail, Hasło administratora.
  4. Za minutę czy dwie aplikacja działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
  5. To projekt jak każdy inny: jego compose.yaml, .env, logi i terminal są w panelu, a twój agent może go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

Pierwsze kroki

Zaloguj się adresem e-mail i hasłem administratora, które podano: szablon rejestruje tego ownera przy pierwszym starcie. Dodaj credential dostawcy swojego modelu, a potem zbuduj chatflow albo agentflow.

Co uruchamia

Szablon to ten compose.yaml i zmienne, które zapisuje do .env projektu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

services:
  flowise:
    image: flowiseai/flowise:3.1.3
    restart: unless-stopped
    environment:
      PORT: "3000"
      APP_URL: ${URL}
      JWT_AUTH_TOKEN_SECRET: ${JWT_AUTH_TOKEN_SECRET}
      JWT_REFRESH_TOKEN_SECRET: ${JWT_REFRESH_TOKEN_SECRET}
      EXPRESS_SESSION_SECRET: ${EXPRESS_SESSION_SECRET}
      TOKEN_HASH_SECRET: ${TOKEN_HASH_SECRET}
      NUMBER_OF_PROXIES: "1"
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # Flowise lets its first visitor register the owner. The first start runs it on a port no
    # route reaches, registers the email and password given there, then serves it on 3000.
    entrypoint: ["/bin/sh", "-c"]
    command:
      - |
        PORT=3001 flowise start &
        setup=$$!
        node -e '
          const base = "http://127.0.0.1:3001/api/v1";
          const body = JSON.stringify({ user: { name: "Admin", email: process.env.ADMIN_EMAIL, credential: process.env.ADMIN_PASSWORD } });
          const wait = (ms) => new Promise((done) => setTimeout(done, ms));
          (async () => {
            for (let tries = 0; tries < 300; tries++) {
              try {
                const ping = await fetch(base + "/ping");
                if (ping.ok) break;
              } catch {}
              await wait(1000);
            }
            const answer = await fetch(base + "/account/register", { method: "POST", headers: { "Content-Type": "application/json" }, body });
            const text = await answer.text();
            if (answer.ok || /only have one organization/.test(text)) return;
            console.error("registering the owner failed:", answer.status, text);
            process.exit(1);
          })();
        ' || exit 1
        kill $$setup
        wait $$setup
        exec flowise start
    volumes:
      - data:/home/node

volumes:
  data: