Langflow

stack AI / Automation / Development

Visual builder for AI agents and workflows: drag together models, prompts, tools, vector stores and MCP servers on a canvas, chat with the result in a playground, then call it as an API or serve it as an MCP server.

Install Langflow

It isn't in the main Portainer Templates list yet, so use this one. Portainer takes one URL at a time, so it swaps out whatever list you had before.

In Portainer, head to Settings --> App Templates, paste this in as the URL and save.

https://raw.githubusercontent.com/NotAFlightRisk/portainer-templates-extras/main/templates.json
  1. Open App Templates and pick Langflow.
  2. Fill in Admin password and Database password. Everything else can stay as it is.
  3. Hit Deploy the stack, then open http://<your-server>:7860 in a browser.

Before you start

Set both passwords before you deploy, since the stack won't start without them. The first start takes a couple of minutes, then open http://<your-host>:7860 (or whichever port you picked) and sign in as langflow with your admin password. Changing that password on the form later does nothing. Add your AI provider's key under Settings --> Model Providers (Ollama works too). The sign-up link makes accounts that stay locked until an admin switches them on, and the open-source version only does that through its API, so treat it as a one-person app. Any account can run its own Python on the server, so only switch on people you trust. Langflow sends anonymous usage stats to its makers. To stop it, add LANGFLOW_TELEMETRY_OFF set to true to the stack's environment variables and redeploy. Uploaded files and its generated keys live in the langflow-data volume, your flows and settings in postgres-data. Docs: docs.langflow.org

Settings

What the Portainer form asks for. With compose they go in the .env file instead.

VariableWhat it's forDefault
LANGFLOW_ADMIN_PASSWORDAdmin password (required) For signing in as langflow. Only used to create the account on the very first start. Needs filling in
LANGFLOW_DB_PASSWORDDatabase password (required) Letters and numbers only, since it goes into a database URL. Generate one with: openssl rand -hex 32 Needs filling in
LANGFLOW_PORTHost port for the web UI 7860

Services

The containers this stack runs, with ports as they come out of the box.

ServiceImagePorts
langflowlangflowai/langflow:latest7860:7860
postgrespostgres:17-alpineInternal only

More apps