kossakovsky/selfhost-ai
π Self-hosted AI automation platform. Deploy n8n, Ollama, Flowise, RAG, Supabase & 30+ tools with one command. Auto HTTPS. Free Zapier/Make alternative.
About kossakovsky/selfhost-ai
kossakovsky/selfhost-ai is an open-source project on GitHub, mainly written in Shell. π Self-hosted AI automation platform. Deploy n8n, Ollama, Flowise, RAG, Supabase & 30+ tools with one command. Auto HTTPS. Free Zapier/Make alternative. It currently holds 934 stars and 237 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Local & On-Device AI board.
GitHub Repository Details
README
Selfhost AI β Self-Hosted AI Automation Platform
Deploy 30+ AI and automation tools with a single command. This open-source Docker Compose template creates a complete self-hosted environment with n8n (workflow automation), Flowise (AI agents), Ollama (local LLMs), vector databases (Qdrant, Weaviate), RAG engines, Supabase, monitoring stack, and more β all pre-configured behind Caddy reverse proxy with automatic HTTPS. Plus, optionally import 300+ community workflows during setup!
Table of Contents
- Key Features
- Why This Setup?
- What's Included
- Installation
- Quick Start and Usage
- Upgrading
- Quick Commands
- Troubleshooting
- License
Key Features
- Private AI Homelab β Run LLMs locally with Ollama, keep your data on your own servers
- ChatGPT Alternative β Open WebUI provides a familiar chat interface for local AI models
- Workflow Automation β n8n with 400+ integrations, scalable queue-based architecture
- AI Agents & RAG β Flowise, Dify, LangChain, vector databases (Qdrant, Weaviate)
- One Command Install β Interactive wizard, automatic secrets, zero manual configuration
- Auto HTTPS β Caddy reverse proxy with automatic Let's Encrypt certificates
- Built-in Monitoring β Grafana + Prometheus stack included, with an n8n dashboard that tracks workflow executions (outcomes, per-workflow volume, time since last success) and ready-made alert rules for failed or stalled workflows
- Production Ready β Scalable workers, health checks, proper service dependencies
- Free & Open Source β No vendor lock-in, Apache 2.0 license
Why This Setup?
This installer helps you create your own powerful, private AI workshop. Imagine having a suite of tools at your fingertips to:
- Automate repetitive tasks.
- Build smart assistants tailored to your needs.
- Analyze information and gain insights.
- Generate creative content.
- Rich Toolset: Get a curated collection of powerful open-source tools for AI development, automation, and monitoring, all in one place.
- Scalable n8n Performance: n8n runs in
queuemode by default, leveraging Redis for task management and Postgres for data storage. You can dynamically specify the number of n8n workers and task runners during installation, allowing for robust parallel processing of your workflows to handle demanding loads. - Full Control: All of this is hosted by you, giving you full control over your data, operations, and how resources are allocated.
What's Included
β Caddy, Postgres, and Redis - Core services for web proxy, database, and caching, which are always included.
The installer also makes the following powerful open-source tools available for you to select and deploy via an interactive wizard during setup:
β Appsmith - An open-source low-code platform for building internal tools, dashboards, and admin panels with a drag-and-drop UI builder.
β n8n - A low-code platform with over 400 integrations and advanced AI components to automate workflows.
β n8n-MCP - A Model Context Protocol server that gives AI coding assistants (Claude Code, Cursor, Windsurf, VS Code Copilot) indexed access to every n8n node's documentation, property schemas and thousands of workflow templates - and, once you add an n8n API key, the ability to create and update workflows in your n8n instance straight from your IDE.
β n8n Assistant sandbox - Code-execution sandbox for n8n's built-in AI Assistant and the Agents preview (n8n's own sandbox service, Docker-in-Docker isolated with Sysbox; internal only, see below).
β ComfyUI - A powerful, node-based UI for Stable Diffusion workflows. Build and run image-generation pipelines visually, with support for custom nodes and extensions. Runs on NVIDIA, AMD or CPU (chosen in the wizard).
β Crawl4ai - A flexible web crawler designed for AI, enabling you to extract data from websites for your projects.
β Docling - Universal document converter that transforms PDF, DOCX, PPTX, XLSX, HTML, and images into clean Markdown or JSON. Features advanced PDF parsing, OCR support, and a REST API with optional web UI. Perfect for document processing in n8n workflows.
β Dify - An open-source AI application development platform that provides comprehensive LLMOps capabilities, including workflow management, prompt engineering, RAG pipelines, and AI agent orchestration. Perfect for building production-ready AI applications.
β Flowise - A no-code/low-code AI agent builder that complements n8n perfectly, allowing you to create sophisticated AI applications with ease.
β Gost - Versatile HTTP/HTTPS proxy for routing AI service outbound traffic through a central proxy point
β Gotenberg - A stateless API for converting HTML, Markdown, Word, Excel, and other documents to PDF, PNG, or JPEG. Available only within the Docker network for internal use by n8n workflows and other services.
β Grafana - An open-source platform for visualizing monitoring data, helping you understand system performance at a glance.
β
InvokeAI - A professional creative engine for Stable Diffusion with a polished web UI, node-based workflow editor, inpainting/outpainting, and a REST API. Choose NVIDIA, AMD, or CPU hardware during install; models and outputs are stored in ./invokeai on the host.
β Langfuse - An open-source platform to help you observe and understand how your AI agents are performing, making it easier to debug and improve them.
β Letta - An open-source agent server and SDK that can be connected to various LLM API backends (OpenAI, Anthropic, Ollama, etc.), enabling you to build and manage AI agents.
β LightRAG - A simple and fast graph-based Retrieval-Augmented Generation system with automatic knowledge graph extraction, dual-level retrieval mechanisms, and incremental updates. Supports multiple storage backends (PostgreSQL, Neo4j, JSON) and embedding models.
β LibreTranslate - Self-hosted translation API (50+ languages).
β Neo4j - A graph database management system that allows you to model, store, and query data as a network of nodes and relationships.
β NocoDB - An open source Airtable alternative that turns any database into a smart spreadsheet with a no-code interface for building collaborative apps.
β
Ollama - Run Llama 3, Mistral, Gemma, and other large language models locally. Optionally expose its API externally through Caddy under OLLAMA_HOSTNAME, protected by a generated Bearer token. On multi-GPU hosts you can run several instances (OLLAMA_INSTANCE_COUNT) to dedicate a GPU per model.
β Open WebUI - A user-friendly, ChatGPT-like interface to interact privately with your AI models and n8n agents.
β Open Terminal - Execution sandbox for Open WebUI agents: a real Linux shell with a filesystem, package installs, local services and Jupyter, a separate Linux account per user (internal only, see below).
β PaddleOCR - A CPU-ready OCR API powered by PaddleX Basic Serving.
β Portainer - A lightweight, secure web UI to manage your Docker environment (containers, images, volumes, networks) with ease.
β Databasus - Database backups & monitoring with a self-hosted UI.
β Postiz - An open-source social media scheduling and publishing platform.
β Prometheus - An open-source monitoring and alerting toolkit to keep an eye on system health.
β Qdrant - A high-performance open-source vector store, specialized for AI. While Supabase also offers vector capabilities, Qdrant is included for its speed, making it ideal for demanding AI tasks.
β RAGApp - Open-source application to build Retrieval-Augmented Generation (RAG) assistants over your data. Provides a web UI for chat and an HTTP API for integration with your workflows.
β RAGFlow - An open-source RAG engine based on deep document understanding with Elasticsearch backend, providing truthful question-answering capabilities with well-founded citations from complex formatted data.
β SearXNG - A free, open-source internet metasearch engine. It aggregates results from numerous search services without tracking or profiling you, ensuring your privacy.
β Supabase - An open-source alternative to Firebase, providing database storage, user authentication, and more. It's a popular choice for AI applications.
β Uptime Kuma - Self-hosted uptime monitoring tool with notifications
β WAHA - WhatsApp HTTP API (REST API) that you can configure in a click! 3 engines: WEBJS (browser based), NOWEB (websocket nodejs), GOWS (websocket go).
β Weaviate - An open-source AI-native vector database with a focus on scalability and ease of use. It can be used for RAG, hybrid search, and more.
Included Community Workflows
Get started quickly with a vast library of pre-built automations (optional import during setup)! This collection includes over 300 workflows covering a wide range of use cases:
π¦ What's inside?
- AI Agents & Chatbots: RAG, LLM, LangChain, Ollama, OpenAI, Claude, Gemini, and more
- Gmail & Outlook: Smart labeling, auto-replies, PDF handling, and email-to-Notion
- HR, E-commerce, IT, Security, Research, and more!
- Notion, Airtable, Google Sheets: Data sync, AI summaries, knowledge bases
- PDF, Image, Audio, Video: Extraction, summarization, captioning, speech-to-text
- Slack, Mattermost: Ticketing, feedback analysis, notifications
- Social Media: LinkedIn, Pinterest, Instagram, Twitter/X, YouTube, TikTok automations
- Telegram, WhatsApp, Discord: Bots, notifications, voice, and image workflows
- WordPress, WooCommerce: AI content, chatbots, auto-tagging
Installation
Prerequisites before Installation
1. Domain Name: You need a registered domain name (e.g., yourdomain.com).
2. DNS Configuration: Before running the installation script, you must configure DNS A-record for your domain, pointing to the public IP address of the server where you'll install this system. Replace yourdomain.com with your actual domain:
- Wildcard Record:
A *.yourdomain.com->YOUR_SERVER_IP
- Operating System: Ubuntu 24.04 LTS, 64-bit
- For a minimal setup with n8n, Monitoring, Databasus and Portainer: 4 GB Memory / 2 CPU Cores / 40 GB Disk Space
- For running all available services: at least 20 GB Memory / 4 CPU Cores / 60 GB Disk Space
Running the Install
The recommended way to install is using the provided main installation script.
1. Connect to your server via SSH. 2. Run the following command:
git clone https://github.com/kossakovsky/selfhost-ai && cd selfhost-ai && sudo bash ./scripts/install.sh
This single command automates the entire setup process, including:
- Preparing your system (updates, firewall configuration, and basic security enhancements like brute-force protection).
- Installing Docker and Docker Compose (tools for running applications in isolated environments).
- Generating a configuration file (
.env) with necessary secrets and your domain settings. - Launching all the services.
1. Your primary domain name (Required, e.g., yourdomain.com). This is the domain for which you've configured the wildcard DNS record.
2. Your email address (Required, used for service logins like Flowise, Supabase dashboard, Grafana, and for SSL certificate registration with Let's Encrypt).
3. An optional OpenAI API key (Not required. If provided, it can be used by Supabase AI features and Crawl4ai. Press Enter to skip).
4. Whether you want to import ~300 ready-made n8n community workflows (y/n, Optional. This can take 20-30 minutes, depending on your server and network speed).
5. The number of n8n workers you want to run (Required, e.g., 1, 2, 3, 4. This determines how many workflows can be processed in parallel. Each worker automatically gets its own dedicated task runner sidecar for executing Code nodes. Defaults to 1 if not specified).
6. A Service Selection Wizard will then appear, allowing you to choose which of the available services (like Flowise, Supabase, Qdrant, Open WebUI, etc.) you want to deploy. Core services (Caddy, Postgres, Redis) will be set up to support your selections.
Upon successful completion, the script will display a summary report. This report contains the access URLs and credentials for the deployed services. Save this information in a safe place!
Quick Start and Usage
After successful installation, your services are up and running! Here's how to get started:
1. Access Your Services:
The installation script provided a summary report with all access URLs and credentials. Please refer to that report. The main services will be available at the following addresses (replace yourdomain.com with your actual domain):
- n8n:
n8n.yourdomain.com(Log in with the email address you provided during installation and the initial password from the summary report. You may be prompted to change this password on first login.) - n8n-MCP:
n8n-mcp.yourdomain.com(MCP endpoint at/mcp. Every request must sendAuthorization: Bearer <N8N_MCP_AUTH_TOKEN>- the token is on the Welcome Page - so a browser visit returns 401 by design. Connect withnpx -y mcp-remote https://n8n-mcp.yourdomain.com/mcp --header "Authorization: Bearer ", or keep the token out of your shell history and process list with--header-filepointing at a file containingAuthorization: Bearer. Starts in documentation-only mode; to also manage workflows, create an API key in n8n under Settings -> n8n API, setN8N_API_KEYin.envand runmake restart. Note that outside n8n Enterprise an API key has full account access. Optionally setN8N_MCP_ACCESS_TOKEN(n8n Settings -> Instance-level MCP -> Connect -> API key; n8n 2.34+) for the tools only n8n's own MCP server provides - see.env.example.) - Appsmith:
appsmith.yourdomain.com(Low-code app builder) - ComfyUI:
comfyui.yourdomain.com(Node-based Stable Diffusion UI; the wizard asks for NVIDIA, AMD or CPU. Models and custom nodes persist in thecomfyui_datavolume; on NVIDIA, reserve GPUs withCOMFYUI_GPU_COUNTor pin them withCOMFYUI_GPU_DEVICES) - Databasus:
databasus.yourdomain.com - Dify:
dify.yourdomain.com(AI application development platform with comprehensive LLMOps capabilities) - Docling:
docling.yourdomain.com(Universal document converter with REST API; web UI available at/ui) - Flowise:
flowise.yourdomain.com(Log in with the email address you provided during installation and the initial password from the summary report.) - Grafana:
grafana.yourdomain.com - InvokeAI:
invokeai.yourdomain.com(Stable Diffusion studio; download a model via the Model Manager on first visit) - Langfuse:
langfuse.yourdomain.com - Letta:
letta.yourdomain.com - LibreTranslate:
translate.yourdomain.com - LightRAG:
lightrag.yourdomain.com - Neo4j:
neo4j.yourdomain.com - NocoDB:
nocodb.yourdomain.com - Ollama:
ollama.yourdomain.com(Optional local-LLM API; every request must sendAuthorization: Bearer <OLLAMA_CADDY_API_TOKEN>. A leaked token grants full control β including pulling/deleting models β not just inference.) - Open WebUI:
webui.yourdomain.com - PaddleOCR:
paddleocr.yourdomain.com - Portainer:
portainer.yourdomain.com(Protected by Caddy basic auth; on first login, complete Portainer admin setup) - Postiz:
postiz.yourdomain.com - Prometheus:
prometheus.yourdomain.com(Typically used as a data source for Grafana) - Qdrant:
qdrant.yourdomain.com - RAGApp:
ragapp.yourdomain.com - RAGFlow:
ragflow.yourdomain.com - SearXNG:
searxng.yourdomain.com - Supabase (Dashboard):
supabase.yourdomain.com - Uptime Kuma:
uptime-kuma.yourdomain.com(Uptime monitoring dashboard) - WAHA:
waha.yourdomain.com(WhatsApp HTTP API; engines: WEBJS, NOWEB, GOWS) - Weaviate:
weaviate.yourdomain.com
Optional Internal Utility: Python Runner
- What it is: An internal-only service to run your custom Python code inside the same Docker network as your other services (n8n, Postgres, Qdrant, etc.). No external ports are exposed, and it is not proxied by Caddy.
- How to enable: Select βPython Runnerβ in the Service Selection Wizard during install/update, or add the profile manually:
COMPOSE_PROFILES=...,python-runner. - Where to put code: Place your Python files in
python-runner/. The default entry point ispython-runner/main.py. - Dependencies: Add them to
python-runner/requirements.txt; they will be installed automatically on container start.
Open Terminal: execution sandbox for Open WebUI agents
Open WebUI can search, read and reason, and its built-in code interpreter runs a snippet of Python, but out of the box it cannot keep files around, install a dependency or start a local service. Open Terminal closes that loop: a Linux environment the chat drives, with a shell, a persistent home directory, apt/pip/npm installs at runtime, port proxying for local services and Jupyter kernels. Select Open Terminal in the wizard (open-terminal profile, requires open-webui). Nothing is published and there is no URL; Open WebUI talks to open-terminal:8000 over the internal network.
- Connect it once: in Open WebUI open Admin Settings β Integrations β Open Terminal and add
http://open-terminal:8000with the API key from the Welcome Page (OPEN_TERMINAL_API_KEYin.env). Add it there, not as a tool server, and not in your personal settings: the admin connection keeps the key on the server, a personal one sends it to the browser. - Access is deliberate: a new connection is visible to admins only. Grant it to users or groups in the same dialog. Everyone you grant gets a shell inside the container (an unprivileged Linux account in multi-user mode, a sudo-capable one with
OPEN_TERMINAL_MULTI_USER=false), which sits on the same Docker network as Postgres, Ollama, n8n and the rest, so treat it like giving out SSH access. - Multi-user by default:
OPEN_TERMINAL_MULTI_USER=truecreates a Linux account per Open WebUI user with its own home under thelocalai_open_terminal_homevolume. Files and processes are isolated, the network namespace is not: a local service one user starts on a port is reachable through another user's proxy URL. Set it tofalsefor a single shared shell. - Size and limits: the full image (
latest, or a release tag such as0.12.5viaOPEN_TERMINAL_VERSION) is about 4 GB and is the only variant that supports multi-user and runtime installs; the installer refuses aslim/alpine/openshiftvariant while multi-user is on. The container is capped atOPEN_TERMINAL_CPU_LIMIT=2.0CPUs andOPEN_TERMINAL_MEMORY_LIMIT=2G; raise them in.envif the agent needs more. - Preinstalled packages:
OPEN_TERMINAL_PACKAGES,OPEN_TERMINAL_PIP_PACKAGESandOPEN_TERMINAL_NPM_PACKAGESare reinstalled on every container start, so long lists slow startup. In multi-user mode they are the only way to add apt packages, because per-user accounts have nosudo; the agent can stillpip install --userand use project-local npm. With multi-user off the shell hassudoand installs anything itself. - Egress filtering (
OPEN_TERMINAL_ALLOWED_DOMAINS) is not wired into the stack: the image treats an empty value as "block all outbound traffic" and needsNET_ADMIN. If you want it, add the variable together withcap_add: [NET_ADMIN]to theopen-terminalservice indocker-compose.override.yml.
- Log in to your n8n instance. This is your central hub for workflow automation.
- If you chose to import the community workflows during installation, you'll find over 300 examples in your "Workflows" section. These are a great way to learn and get ideas.
- Start building your first workflow! You have access to over 400 integrations and powerful AI tools.
- Connect n8n with Vector Stores: Use n8n to connect to Qdrant (accessible via its own endpoint if needed, typically
qdrant.yourdomain.com), Supabase, or Weaviate (weaviate.yourdomain.com) to store and retrieve information for your AI tasks like Retrieval Augmented Generation (RAG). - Build with Flowise: Access Flowise at
flowise.yourdomain.comto create AI agents and applications. You can trigger Flowise agents from n8n or vice-versa. - Interact with Open WebUI: Use Open WebUI at
webui.yourdomain.comas a chat interface for your local AI models or n8n agents (e.g., using the n8n_pipe integration if configured). - Configure LLMs: If you wish to use large language models (LLMs) from providers like OpenAI, Anthropic, or locally via Ollama (if installed), you can easily configure credentials and connections within n8n nodes or in services like Flowise and Open WebUI.
- Visit Grafana (
grafana.yourdomain.com) to see dashboards monitoring your system's performance (data sourced from Prometheus). - The n8n Monitoring dashboard includes a Workflow Executions section, and four alert rules are pre-provisioned: n8n workflow failed (non-manual executions only, so testing in the editor does not page), *n8n workflow s