Українська
Почати
← Усі шаблони

Flowise на Pethost в один клік

Візуальне складання ШІ-агентів і LLM-воркфлоу, які потім викликаються через API або вбудовуються як чат-віджет

Що відбудеться

  1. Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
  2. Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
  3. Вікно «Новий проєкт» відкривається на цьому застосунку. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Електронна пошта, Пароль адміністратора.
  4. За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
  5. Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.

Перші кроки

Увійдіть із поштою й паролем адміністратора, які ви вказали: шаблон реєструє цього owner під час першого запуску. Додайте credential провайдера вашої моделі, потім зберіть chatflow або agentflow.

Що запускається

Шаблон — це цей compose.yaml і змінні, які він записує в .env проєкту. Pethost запускає файл так, як його написано.

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: