{ "version": "3", "templates": [ { "id": 1, "type": 3, "title": "Ollama", "description": "Local LLM inference engine supporting Llama, Mistral, Qwen, Gemma, Phi and 100+ models with GPU acceleration", "note": "Requires NVIDIA GPU with Docker GPU runtime configured. Pull models after deployment with: docker exec ollama ollama pull llama3.1", "categories": ["ai", "llm", "inference"], "platform": "linux", "logo": "https://ollama.com/public/ollama.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/ollama/docker-compose.yml" }, "env": [ { "name": "OLLAMA_PORT", "label": "Ollama API port", "default": "11434" }, { "name": "OLLAMA_NUM_PARALLEL", "label": "Max parallel requests", "default": "4" }, { "name": "OLLAMA_MAX_LOADED_MODELS", "label": "Max models loaded in VRAM", "default": "2" } ] }, { "id": 2, "type": 3, "title": "Open WebUI + Ollama", "description": "Full-featured ChatGPT-like web interface bundled with Ollama backend for local LLM inference", "note": "Access the web UI at the configured port. First user to register becomes admin. Requires NVIDIA GPU.", "categories": ["ai", "llm", "chat-ui"], "platform": "linux", "logo": "https://docs.openwebui.com/img/logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/open-webui/docker-compose.yml" }, "env": [ { "name": "OPEN_WEBUI_PORT", "label": "Web UI port", "default": "3000" }, { "name": "OLLAMA_PORT", "label": "Ollama API port", "default": "11434" }, { "name": "WEBUI_SECRET_KEY", "label": "Secret key for sessions", "default": "changeme" }, { "name": "ENABLE_SIGNUP", "label": "Allow user registration", "default": "true" } ] }, { "id": 3, "type": 3, "title": "LocalAI", "description": "Drop-in OpenAI API compatible replacement. Run LLMs, generate images, audio locally with GPU acceleration", "note": "Exposes an OpenAI-compatible API at /v1/. Models can be loaded via the API or placed in the models volume.", "categories": ["ai", "llm", "openai-api"], "platform": "linux", "logo": "https://localai.io/logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/localai/docker-compose.yml" }, "env": [ { "name": "LOCALAI_PORT", "label": "API port", "default": "8080" }, { "name": "THREADS", "label": "CPU threads for inference", "default": "4" }, { "name": "CONTEXT_SIZE", "label": "Default context window size", "default": "4096" } ] }, { "id": 4, "type": 3, "title": "vLLM", "description": "High-throughput LLM serving engine with PagedAttention, continuous batching, and OpenAI-compatible API", "note": "Requires NVIDIA GPU with sufficient VRAM for the chosen model. HuggingFace token needed for gated models.", "categories": ["ai", "llm", "inference", "high-performance"], "platform": "linux", "logo": "https://docs.vllm.ai/en/latest/_static/vllm-logo-text-light.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/vllm/docker-compose.yml" }, "env": [ { "name": "VLLM_PORT", "label": "API port", "default": "8000" }, { "name": "MODEL_NAME", "label": "HuggingFace model ID", "default": "meta-llama/Llama-3.1-8B-Instruct" }, { "name": "HF_TOKEN", "label": "HuggingFace access token" }, { "name": "MAX_MODEL_LEN", "label": "Max sequence length", "default": "4096" }, { "name": "GPU_MEM_UTIL", "label": "GPU memory utilization (0-1)", "default": "0.90" }, { "name": "TENSOR_PARALLEL", "label": "Tensor parallel GPU count", "default": "1" } ] }, { "id": 5, "type": 3, "title": "Text Generation WebUI", "description": "Comprehensive web UI for running LLMs locally (oobabooga). Supports GGUF, GPTQ, AWQ, EXL2, and HF formats", "note": "Requires NVIDIA GPU. Models should be placed in the models volume. Supports extensions for RAG, TTS, and more.", "categories": ["ai", "llm", "chat-ui"], "platform": "linux", "logo": "https://raw.githubusercontent.com/oobabooga/text-generation-webui/main/docs/logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/text-generation-webui/docker-compose.yml" }, "env": [ { "name": "WEBUI_PORT", "label": "Web UI port", "default": "7860" }, { "name": "API_PORT", "label": "API port", "default": "5000" }, { "name": "STREAM_PORT", "label": "Streaming API port", "default": "5005" }, { "name": "EXTRA_LAUNCH_ARGS", "label": "Extra launch arguments", "default": "--listen --api" } ] }, { "id": 6, "type": 3, "title": "LiteLLM Proxy", "description": "Unified LLM API gateway supporting 100+ providers (OpenAI, Anthropic, Ollama, vLLM, etc.) with spend tracking and load balancing", "note": "Configure models in /app/config/litellm_config.yaml after deployment. Includes PostgreSQL for usage tracking.", "categories": ["ai", "llm", "api-gateway", "proxy"], "platform": "linux", "logo": "https://litellm.ai/favicon.ico", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/litellm/docker-compose.yml" }, "env": [ { "name": "LITELLM_PORT", "label": "Proxy API port", "default": "4000" }, { "name": "LITELLM_MASTER_KEY", "label": "Master API key", "default": "sk-master-key" }, { "name": "PG_USER", "label": "PostgreSQL user", "default": "litellm" }, { "name": "PG_PASSWORD", "label": "PostgreSQL password", "default": "litellm" } ] }, { "id": 7, "type": 3, "title": "ComfyUI", "description": "Node-based Stable Diffusion workflow engine for image and video generation with GPU acceleration", "note": "Requires NVIDIA GPU. Access the node editor at the configured port. Models go in the models volume.", "categories": ["ai", "image-generation", "stable-diffusion"], "platform": "linux", "logo": "https://raw.githubusercontent.com/comfyanonymous/ComfyUI/master/web/assets/comfyui-logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/comfyui/docker-compose.yml" }, "env": [ { "name": "COMFYUI_PORT", "label": "Web UI port", "default": "8188" }, { "name": "CLI_ARGS", "label": "Launch arguments", "default": "--listen 0.0.0.0 --port 8188" } ] }, { "id": 8, "type": 3, "title": "Stable Diffusion WebUI", "description": "AUTOMATIC1111 web interface for Stable Diffusion image generation with extensive extension ecosystem", "note": "Requires NVIDIA GPU with 8GB+ VRAM. First startup downloads the base model and may take several minutes.", "categories": ["ai", "image-generation", "stable-diffusion"], "platform": "linux", "logo": "https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/html/logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/stable-diffusion-webui/docker-compose.yml" }, "env": [ { "name": "SD_PORT", "label": "Web UI port", "default": "7860" }, { "name": "CLI_ARGS", "label": "Launch arguments", "default": "--listen --api --xformers" } ] }, { "id": 9, "type": 3, "title": "Langflow", "description": "Visual framework for building multi-agent and RAG applications. Drag-and-drop LLM pipeline builder", "note": "Access the visual editor at the configured port. Connect to Ollama, OpenAI, or any LLM backend.", "categories": ["ai", "agents", "rag", "workflows"], "platform": "linux", "logo": "https://avatars.githubusercontent.com/u/128686189", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/langflow/docker-compose.yml" }, "env": [ { "name": "LANGFLOW_PORT", "label": "Web UI port", "default": "7860" }, { "name": "AUTO_LOGIN", "label": "Skip login screen", "default": "true" } ] }, { "id": 10, "type": 3, "title": "Flowise", "description": "Drag-and-drop LLM orchestration tool. Build chatbots, agents, and RAG pipelines without coding", "note": "Default credentials are admin/changeme. Connect to any OpenAI-compatible API backend.", "categories": ["ai", "agents", "rag", "chatbots"], "platform": "linux", "logo": "https://flowiseai.com/favicon.ico", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/flowise/docker-compose.yml" }, "env": [ { "name": "FLOWISE_PORT", "label": "Web UI port", "default": "3000" }, { "name": "FLOWISE_USERNAME", "label": "Admin username", "default": "admin" }, { "name": "FLOWISE_PASSWORD", "label": "Admin password", "default": "changeme" } ] }, { "id": 11, "type": 3, "title": "n8n (AI-Enabled)", "description": "Workflow automation platform with built-in AI agent nodes, LLM chains, and vector store integrations", "note": "AI features include: AI Agent nodes, LLM Chain, Document Loaders, Vector Stores, Text Splitters, and Memory nodes.", "categories": ["ai", "automation", "workflows", "agents"], "platform": "linux", "logo": "https://n8n.io/favicon.ico", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/n8n-ai/docker-compose.yml" }, "env": [ { "name": "N8N_PORT", "label": "Web UI port", "default": "5678" }, { "name": "N8N_USER", "label": "Admin username", "default": "admin" }, { "name": "N8N_PASSWORD", "label": "Admin password", "default": "changeme" }, { "name": "WEBHOOK_URL", "label": "External webhook URL", "default": "http://localhost:5678/" } ] }, { "id": 12, "type": 3, "title": "Qdrant", "description": "High-performance vector similarity search engine for RAG, semantic search, and AI applications", "note": "REST API on port 6333, gRPC on 6334. Supports filtering, payload indexing, and distributed mode.", "categories": ["ai", "vector-database", "rag", "embeddings"], "platform": "linux", "logo": "https://qdrant.tech/images/logo_with_text.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/qdrant/docker-compose.yml" }, "env": [ { "name": "QDRANT_HTTP_PORT", "label": "REST API port", "default": "6333" }, { "name": "QDRANT_GRPC_PORT", "label": "gRPC port", "default": "6334" }, { "name": "QDRANT_API_KEY", "label": "API key (optional)" } ] }, { "id": 13, "type": 3, "title": "ChromaDB", "description": "AI-native open-source embedding database. The easiest vector store to get started with for RAG applications", "note": "Persistent storage enabled by default. Compatible with LangChain, LlamaIndex, and all major AI frameworks.", "categories": ["ai", "vector-database", "rag", "embeddings"], "platform": "linux", "logo": "https://www.trychroma.com/chroma-logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/chromadb/docker-compose.yml" }, "env": [ { "name": "CHROMA_PORT", "label": "API port", "default": "8000" }, { "name": "CHROMA_TOKEN", "label": "Auth token (optional)" }, { "name": "TELEMETRY", "label": "Anonymous telemetry", "default": "FALSE" } ] }, { "id": 14, "type": 3, "title": "Weaviate", "description": "AI-native vector database with built-in vectorization modules and hybrid search capabilities", "note": "Supports text2vec-transformers, generative-openai, and many other modules. Configure modules via environment variables.", "categories": ["ai", "vector-database", "rag", "search"], "platform": "linux", "logo": "https://weaviate.io/img/site/weaviate-logo-light.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/weaviate/docker-compose.yml" }, "env": [ { "name": "WEAVIATE_HTTP_PORT", "label": "HTTP API port", "default": "8080" }, { "name": "WEAVIATE_GRPC_PORT", "label": "gRPC port", "default": "50051" }, { "name": "VECTORIZER", "label": "Default vectorizer module", "default": "none" }, { "name": "MODULES", "label": "Enabled modules", "default": "text2vec-transformers,generative-openai" }, { "name": "ANON_ACCESS", "label": "Anonymous access enabled", "default": "true" } ] }, { "id": 15, "type": 3, "title": "MLflow", "description": "Open-source ML lifecycle platform — experiment tracking, model registry, and model serving", "note": "Access the tracking UI at the configured port. Uses SQLite backend by default — switch to PostgreSQL for production.", "categories": ["ai", "mlops", "experiment-tracking", "model-registry"], "platform": "linux", "logo": "https://mlflow.org/img/mlflow-black.svg", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/mlflow/docker-compose.yml" }, "env": [ { "name": "MLFLOW_PORT", "label": "Tracking UI port", "default": "5000" } ] }, { "id": 16, "type": 3, "title": "Label Studio", "description": "Multi-type data labeling and annotation platform for training ML and AI models", "note": "Supports image, text, audio, video, and time-series annotation. Export to all major ML formats.", "categories": ["ai", "mlops", "data-labeling", "annotation"], "platform": "linux", "logo": "https://labelstud.io/images/ls-logo.png", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/label-studio/docker-compose.yml" }, "env": [ { "name": "LS_PORT", "label": "Web UI port", "default": "8080" }, { "name": "LS_USER", "label": "Admin email", "default": "admin@example.com" }, { "name": "LS_PASSWORD", "label": "Admin password", "default": "changeme" } ] }, { "id": 17, "type": 3, "title": "Jupyter (GPU / PyTorch)", "description": "GPU-accelerated Jupyter Lab with PyTorch, CUDA, and data science libraries pre-installed", "note": "Requires NVIDIA GPU. Access with the configured token. Workspace persists in the work volume.", "categories": ["ai", "ml-development", "notebooks", "pytorch"], "platform": "linux", "logo": "https://jupyter.org/assets/homepage/main-logo.svg", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/jupyter-gpu/docker-compose.yml" }, "env": [ { "name": "JUPYTER_PORT", "label": "Jupyter Lab port", "default": "8888" }, { "name": "JUPYTER_TOKEN", "label": "Access token", "default": "changeme" }, { "name": "GRANT_SUDO", "label": "Allow sudo in notebooks", "default": "yes" } ] }, { "id": 18, "type": 3, "title": "Whisper ASR", "description": "OpenAI Whisper speech-to-text API server with GPU acceleration. Supports transcription and translation", "note": "Requires NVIDIA GPU. API documentation available at /docs. Supports models: tiny, base, small, medium, large-v3.", "categories": ["ai", "speech-to-text", "transcription", "audio"], "platform": "linux", "logo": "https://upload.wikimedia.org/wikipedia/commons/0/04/ChatGPT_logo.svg", "repository": { "url": "https://git.oe74.net/adelorenzo/portainer_scripts", "stackfile": "ai-templates/stacks/whisper/docker-compose.yml" }, "env": [ { "name": "WHISPER_PORT", "label": "API port", "default": "9000" }, { "name": "ASR_MODEL", "label": "Whisper model size", "description": "Options: tiny, base, small, medium, large-v3", "default": "base" }, { "name": "ASR_ENGINE", "label": "ASR engine", "default": "openai_whisper" } ] } ] }