{"id":34660111,"url":"https://github.com/linode/ai-quickstart-n8n","last_synced_at":"2026-05-24T21:31:23.788Z","repository":{"id":329423867,"uuid":"1118246043","full_name":"linode/ai-quickstart-n8n","owner":"linode","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-19T12:52:14.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-11T01:36:16.034Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-17T13:23:40.000Z","updated_at":"2025-12-19T12:52:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/linode/ai-quickstart-n8n","commit_stats":null,"previous_names":["linode/ai-quickstart-n8n"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/linode/ai-quickstart-n8n","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linode%2Fai-quickstart-n8n","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linode%2Fai-quickstart-n8n/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linode%2Fai-quickstart-n8n/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linode%2Fai-quickstart-n8n/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linode","download_url":"https://codeload.github.com/linode/ai-quickstart-n8n/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linode%2Fai-quickstart-n8n/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33452032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-24T19:21:36.376Z","status":"ssl_error","status_checked_at":"2026-05-24T19:21:10.562Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-24T18:52:00.536Z","updated_at":"2026-05-24T21:31:23.782Z","avatar_url":"https://github.com/linode.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Akamai Cloud - AI Quickstart : n8n AI Workflow Automation\n\nAutomated deployment script to run your private, self-hosted AI workflow automation platform on Akamai Cloud GPU instances. This stack combines vLLM for high-performance LLM inference with n8n - a powerful workflow automation tool that lets you build AI-powered automations with a visual editor.\n\n-----------------------------------------\n## 🚀 Quick Start\n\nJust run this single command:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/linode/ai-quickstart-n8n/main/deploy.sh | bash\n```\n\nThat's it! The script will download required files and guide you through the interactive deployment process.\n\n## ✨ Features\n- **Fully Automated Deployment**: Handles instance creation with real-time progress tracking\n- **Ready to use AI Stack**: vLLM for GPU-accelerated inference + n8n for AI workflow automation\n- **Visual Workflow Builder**: Create complex AI workflows with n8n's drag-and-drop interface\n- **OpenAI-Compatible API**: Use vLLM as a drop-in replacement for OpenAI in your workflows\n- **Cross-Platform Support**: Works on macOS, Linux, and Windows (Git Bash/WSL)\n\n-----------------------------------------\n\n## 🏗️ What Gets Deployed\n\n\u003cimg src=\"docs/architecture.svg\" alt=\"Architecture\" align=\"left\" width=\"600\"/\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\n### Linode GPU Instance with\n- Ubuntu 24.04 LTS with NVIDIA drivers\n- Docker \u0026 NVIDIA Container Toolkit\n- Systemd service for automatic startup on reboot\n\n### Docker Containers\n| | Service | Description |\n|:--:|:--|:--|\n| \u003cimg src=\"https://caddyserver.com/resources/images/favicon.png\" alt=\"Caddy\" width=\"32\"/\u003e | **Caddy** | Reverse proxy with automatic HTTPS (port 80/443) |\n| \u003cimg src=\"https://n8n.io/favicon.ico\" alt=\"n8n\" width=\"32\"/\u003e | **n8n** | AI workflow automation platform with visual editor (port 5678, internal) |\n| \u003cimg src=\"https://raw.githubusercontent.com/vllm-project/media-kit/main/vLLM-Logo.png\" alt=\"vLLM\" width=\"32\"/\u003e | **vLLM** | High-throughput LLM inference engine with OpenAI-compatible API (port 8000, internal) |\n| \u003cimg src=\"https://raw.githubusercontent.com/vllm-project/media-kit/main/vLLM-Logo.png\" alt=\"vLLM\" width=\"32\"/\u003e | **Embedding** | Text embedding model for vector search (BAAI/bge-m3, port 8001, internal) |\n| \u003cimg src=\"https://raw.githubusercontent.com/vllm-project/media-kit/main/vLLM-Logo.png\" alt=\"vLLM\" width=\"32\"/\u003e | **Reranker** | Semantic reranking model (BAAI/bge-reranker-v2-m3, port 8002, internal) |\n| \u003cimg src=\"https://www.postgresql.org/media/img/about/press/elephant.png\" alt=\"PostgreSQL\" width=\"32\"/\u003e | **pgvector** | PostgreSQL database with vector extension for n8n (port 5432, internal) |\n\n### Models\n\n#### LLM: openai/gpt-oss-20b\n[gpt-oss-20b](https://huggingface.co/openai/gpt-oss-20b) is OpenAI's first fully open-source LLM, released under Apache 2.0 license. Key characteristics:\n- **20B parameters**: Fits on a single RTX 4000 Ada GPU (20GB VRAM)\n- **High benchmark scores**: Competitive with larger models on reasoning and instruction-following tasks\n- **High throughput**: Optimized for fast token generation with vLLM inference engine\n\n#### Embedding: BAAI/bge-m3\n[BGE-M3](https://huggingface.co/BAAI/bge-m3) is a multilingual embedding model for semantic search and RAG applications:\n- **Multilingual support**: 100+ languages\n- **Multi-functionality**: Dense retrieval, sparse retrieval, and multi-vector retrieval\n- **Optimized for RAG**: Perfect for n8n AI workflows requiring vector search\n\n#### Reranker: BAAI/bge-reranker-v2-m3\n[BGE Reranker V2](https://huggingface.co/BAAI/bge-reranker-v2-m3) improves search result relevance:\n- **Semantic reranking**: Reorders search results by semantic similarity\n- **Lightweight**: Efficient model for real-time reranking\n- **Multilingual**: Supports cross-lingual reranking tasks\n\n### What is n8n?\n[n8n](https://n8n.io/) is a powerful workflow automation tool that lets you connect anything to everything. Key features include:\n- **Visual Workflow Builder**: Create complex automations with a drag-and-drop interface\n- **400+ Integrations**: Connect to databases, APIs, SaaS tools, and more\n- **AI Capabilities**: Built-in AI nodes for LLM integration, embeddings, and vector stores\n- **Self-Hosted**: Full control over your data and workflows - nothing leaves your server\n- **PostgreSQL Backend**: Production-ready database with pgvector extension for AI workflows\n\n-----------------------------------------\n\n## 📋 Requirements\n\n### Akamai Cloud Account\n- Active Linode account with GPU access enabled\n\n### Local System Requirements\n- **Required**: bash, curl, ssh, jq\n- **Note**: jq will be auto-installed if missing\n\n-----------------------------------------\n## 🚦 Getting Started\n\n### 1. Option A: Single Command Execution\n\nNo installation required - just run:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/linode/ai-quickstart-n8n/main/deploy.sh | bash\n```\n\n### 1. Option B: Download and Run\n\nDownload the script and run locally:\n\n```bash\ncurl -fsSLO https://raw.githubusercontent.com/linode/ai-quickstart-n8n/main/deploy.sh\nbash deploy.sh\n```\n\n### 1. Option C: Clone Repository\n\nIf you prefer to inspect or customize the scripts:\n\n```bash\ngit clone https://github.com/linode/ai-quickstart-n8n\ncd ai-quickstart-n8n\n./deploy.sh\n```\n\n\u003e [!NOTE]\n\u003e if you like to add more services check out docker compose template file\n\u003e ```\n\u003e vi /template/docker-compose.yml\n\u003e ```\n\u003e\n\n### 2. Follow Interactive Prompts\nThe script will ask you to:\n- Choose a region (e.g., us-east, eu-west)\n- Select GPU instance type\n- Provide instance label\n- Select or generate SSH keys\n- Confirm deployment\n\n### 3. Wait for Deployment\nThe script automatically:\n- Creates GPU instance in your Linode account\n- Monitors cloud-init installation progress\n- Waits for n8n health check\n- Waits for vLLM model loading\n\n### 4. Access Your Services\nOnce complete, you'll see:\n```\n🎉 Setup Complete!\n\n✅ Your AI LLM instance is now running!\n\n🌐 Access URLs:\n   n8n:  https://\u003cip-label\u003e.ip.linodeusercontent.com\n\n🔐 Access Credentials:\n   SSH:   ssh -i /path/to/your/key root@\u003cinstance-ip\u003e\n```\n\n### Configuration files in GPU Instance\n```\n   # Bootstrap script called by cloud-init service\n   /opt/ai-quickstart-n8n/bootstrap.sh\n\n   # docker compose file called by systemctl at startup\n   /opt/ai-quickstart-n8n/docker-compose.yml\n\n   # Caddy reverse proxy configuration\n   /opt/ai-quickstart-n8n/Caddyfile\n\n   # service definition\n   /etc/systemd/system/ai-quickstart-n8n.service\n```\n\n-----------------------------------------\n\n## 🗑️ Delete Instance\n\nTo delete a deployed instance:\n\n```bash\n# Remote execution\ncurl -fsSL https://raw.githubusercontent.com/linode/ai-quickstart-n8n/main/delete.sh | bash -s -- \u003cinstance_id\u003e\n\n# Or download script and run\ncurl -fsSLO https://raw.githubusercontent.com/linode/ai-quickstart-n8n/main/delete.sh\nbash delete.sh \u003cinstance_id\u003e\n```\n\nThe script will show instance details and ask for confirmation before deletion.\n\n-----------------------------------------\n\n## 📁 Project Structure\n\n```\nai-quickstart-n8n/\n├── deploy.sh                    # Main deployment script\n├── delete.sh                    # Instance deletion script\n├── template/\n│   ├── cloud-init.yaml          # Cloud-init configuration\n│   └── bootstrap.sh             # Post-boot installation script\n└── setup/\n    ├── docker-compose.yml       # Docker Compose configuration\n    ├── Caddyfile                # Caddy reverse proxy configuration\n    ├── setup.sh                 # Setup script run by systemd\n    ├── n8n_credentials.json     # n8n credentials template\n    └── n8n_workflow.json        # n8n workflow template\n```\n\n-----------------------------------------\n## 🔒 Security\n\n**⚠️ IMPORTANT**: By default, ports 80 and 443 are exposed to the internet\n\n### Immediate Security Steps\n\n1. **Configure Cloud Firewall** (Recommended)\n   - Create Linode Cloud Firewall\n   - Restrict access to ports 80/443 by source IP\n   - Allow SSH (port 22) from trusted IPs only\n\n2. **SSH Security**\n   - SSH key authentication required\n   - Root password provided for emergency console access only\n\n-----------------------------------------\n## 🛠️ Useful Commands\n\n```bash\n# SSH into your instance\nssh -i /path/to/your/key root@\u003cinstance-ip\u003e\n\n# Check container status\ndocker ps -a\n\n# Check Docker containers log\ncd /opt/ai-quickstart-n8n \u0026\u0026 docker compose logs -f\n\n# Check systemd service status\nsystemctl status ai-quickstart-n8n.service\n\n# View systemd service logs\njournalctl -u ai-quickstart-n8n.service -n 100\n\n# Check cloud-init logs\ntail -f /var/log/cloud-init-output.log -n 100\n\n# Restart all services\nsystemctl restart ai-quickstart-n8n.service\n\n# Check NVIDIA GPU status\nnvidia-smi\n\n# Check vLLM loaded models\ncurl http://localhost:8000/v1/models\n\n# Check embedding model\ncurl http://localhost:8001/v1/models\n\n# Check reranker model\ncurl http://localhost:8002/v1/models\n\n# Check n8n health\ncurl http://localhost:5678/healthz\n\n# Check PostgreSQL database\ndocker exec -it pgvector psql -U n8n -d n8n -c \"SELECT version();\"\n\n# Check container logs\ndocker logs vllm\ndocker logs embedding\ndocker logs reranker\ndocker logs n8n\ndocker logs pgvector\n```\n\n## 🤝 Contributing\n\nIssues and pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.\n\n## 📄 License\n\nThis project is licensed under the Apache License 2.0.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinode%2Fai-quickstart-n8n","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinode%2Fai-quickstart-n8n","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinode%2Fai-quickstart-n8n/lists"}