Files
customer-installer/Install-Workflow01.json
Wolfgang caa38bf72c feat: Add complete BotKonzept SaaS platform
- Landing page with registration form (HTML/CSS/JS)
- n8n workflows for customer registration and trial management
- PostgreSQL schema for customer/instance/payment management
- Automated email system (Day 3, 5, 7 with discounts)
- Setup script and deployment checklist
- Comprehensive documentation

Features:
- Automatic LXC instance creation per customer
- 7-day trial with automated upgrade offers
- Discount system: 30% → 15% → regular price
- Supabase integration for customer management
- Email automation via Postfix/SES
- GDPR compliant (data in Germany)
- Stripe/PayPal payment integration ready

Components:
- botkonzept-website/ - Landing page and registration
- BotKonzept-Customer-Registration-Workflow.json - n8n registration workflow
- BotKonzept-Trial-Management-Workflow.json - n8n trial management workflow
- sql/botkonzept_schema.sql - Complete database schema
- setup_botkonzept.sh - Automated setup script
- BOTKONZEPT_README.md - Full documentation
- DEPLOYMENT_CHECKLIST.md - Deployment guide
2026-01-25 19:30:54 +01:00

326 lines
8.1 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "Install-Workflow",
"nodes": [
{
"parameters": {
"authentication": "privateKey",
"command": "/root/customer-installer/install.sh --storage local-zfs --bridge vmbr0 --ip dhcp --vlan 90 --apt-proxy http://192.168.45.2:3142",
"cwd": "/root/customer-installer/"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
192,
0
],
"id": "9878a864-651e-4a53-abfc-b0bc2d2f2d15",
"name": "Start Installer 1",
"credentials": {
"sshPrivateKey": {
"id": "bPl4nGXO7Iz4wJPJ",
"name": "PVE20"
}
}
},
{
"parameters": {
"authentication": "privateKey",
"command": "=./n8n_setup.sh --n8n_internal {{ $json.urls.n8n_internal }} --owner_email {{ $json.n8n.owner_email }} --owner_password \"{{ $json.n8n.owner_password }}\" --owner_first_name \"Max\" --owner_last_name \"Mustermann\" --timeout 30",
"cwd": "/root/customer-installer/"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
640,
0
],
"id": "62e1b647-7daa-445e-bf99-873efbe2bc94",
"name": "Setup n8n Owner",
"credentials": {
"sshPrivateKey": {
"id": "bPl4nGXO7Iz4wJPJ",
"name": "PVE20"
}
},
"disabled": true
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-32,
0
],
"id": "11aa3e6a-b20a-49b0-b6f9-4cec469c9916",
"name": "When clicking Execute workflow"
},
{
"parameters": {
"authentication": "privateKey",
"command": "=bash setup_nginx_proxy.sh --ctid {{ $('install_JSON').item.json.ctid }} --hostname {{ $('install_JSON').item.json.hostname }} --fqdn {{ $('install_JSON').item.json.fqdn }} --backend-ip {{ $('install_JSON').item.json.ip }}",
"cwd": "/root/customer-installer/"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
1088,
0
],
"id": "176fd78c-9dd6-427b-a566-88dbf504347e",
"name": "setup_nginx_proxy",
"credentials": {
"sshPrivateKey": {
"id": "bPl4nGXO7Iz4wJPJ",
"name": "PVE20"
}
},
"disabled": true
},
{
"parameters": {
"formTitle": "Delete",
"formFields": {
"values": [
{
"fieldLabel": "Host-Number",
"requiredField": true
}
]
},
"options": {
"buttonLabel": "Löschen"
}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.5,
"position": [
-32,
208
],
"id": "4c9878ec-177c-4fbd-a83a-a3895ebd8193",
"name": "On form submission",
"webhookId": "12847d69-15c8-44e4-b595-645ff3109355"
},
{
"parameters": {
"jsCode": "// Code Node - JavaScript\nconst sshOutput = $input.all();\n\n// stdout-String parsen\nconst parsedData = JSON.parse(sshOutput[0].json.stdout);\n\nreturn [{\n json: parsedData\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
416,
0
],
"id": "67ace9d6-7ed2-4495-b3e6-6091fd252596",
"name": "install_JSON"
},
{
"parameters": {
"jsCode": "// Code Node - JavaScript\nconst sshOutput = $input.all();\n\n// stdout-String parsen\nconst parsedData = JSON.parse(sshOutput[0].json.stdout);\n\nreturn [{\n json: parsedData\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
864,
0
],
"id": "fc1b9d9f-5a70-476e-8ae2-4cfd81050527",
"name": "setupOwnerJSON",
"disabled": true
},
{
"parameters": {
"jsCode": "// Code Node - JavaScript\nconst sshOutput = $input.all();\n\n// stdout-String parsen\nconst parsedData = JSON.parse(sshOutput[0].json.stdout);\n\nreturn [{\n json: parsedData\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1312,
0
],
"id": "86b70266-cafe-4a4f-98d1-20434f61061b",
"name": "setupProxyJSON",
"disabled": true
},
{
"parameters": {
"chatId": "26805429",
"text": "=Done.\nhttps://{{ $json.fqdn }}\nUsername: {{ $('install_JSON').item.json.n8n.owner_email }}\nPassword: {{ $('install_JSON').item.json.n8n.owner_password }}\nChat: {{ $('install_JSON').item.json.urls.chat_webhook }}",
"additionalFields": {
"appendAttribution": false
}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
1536,
0
],
"id": "9e20ee75-c2ae-421f-ac4c-54f5643032f2",
"name": "Send a text message",
"webhookId": "55a97e93-a457-4bee-8b8f-3eea1ad62928",
"credentials": {
"telegramApi": {
"id": "7DYJfIx5JsxgKc0D",
"name": "LizTheLove_Bot"
}
}
},
{
"parameters": {
"authentication": "privateKey",
"command": "=/root/customer-installer/delete_nginx_proxy.sh --ctid {{ $('On form submission').item.json['Host-Number'] }}",
"cwd": "/root/customer-installer/"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
416,
208
],
"id": "34d50d3a-cdb8-4801-b54b-719ef60b4b63",
"name": "deleteProxy",
"credentials": {
"sshPrivateKey": {
"id": "bPl4nGXO7Iz4wJPJ",
"name": "PVE20"
}
}
},
{
"parameters": {
"authentication": "privateKey",
"command": "=pct stop {{ $json['Host-Number'] }} && pct destroy {{ $json['Host-Number'] }} ",
"cwd": "/root/customer-installer/"
},
"type": "n8n-nodes-base.ssh",
"typeVersion": 1,
"position": [
192,
208
],
"id": "4645ace7-30ef-4698-8288-065fe70ff9b0",
"name": "deleteLXC",
"credentials": {
"sshPrivateKey": {
"id": "bPl4nGXO7Iz4wJPJ",
"name": "PVE20"
}
}
}
],
"pinData": {},
"connections": {
"Start Installer 1": {
"main": [
[
{
"node": "install_JSON",
"type": "main",
"index": 0
}
]
]
},
"Setup n8n Owner": {
"main": [
[
{
"node": "setupOwnerJSON",
"type": "main",
"index": 0
}
]
]
},
"When clicking Execute workflow": {
"main": [
[
{
"node": "Start Installer 1",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "deleteLXC",
"type": "main",
"index": 0
}
]
]
},
"install_JSON": {
"main": [
[
{
"node": "Setup n8n Owner",
"type": "main",
"index": 0
}
]
]
},
"setupOwnerJSON": {
"main": [
[
{
"node": "setup_nginx_proxy",
"type": "main",
"index": 0
}
]
]
},
"setup_nginx_proxy": {
"main": [
[
{
"node": "setupProxyJSON",
"type": "main",
"index": 0
}
]
]
},
"setupProxyJSON": {
"main": [
[
{
"node": "Send a text message",
"type": "main",
"index": 0
}
]
]
},
"deleteLXC": {
"main": [
[
{
"node": "deleteProxy",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"availableInMCP": false
},
"versionId": "7814a0dd-fae3-40e6-913b-f7b8bac10e81",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "c832ea07b2e6ccb9d5832b81bb497b720b31ed50006898070951c4f6d209f426"
},
"id": "ba7BxTeeQif4zu2F",
"tags": []
}