feat: add Velix API one-click template (#793)

* feat: add Velix API one-click template

Self-hosted WhatsApp API with multi-instance support, webhooks, n8n
node, and Chatwoot integration. Includes PostgreSQL 16 and Redis 7.

* fix: use standard port integer literal
This commit is contained in:
Paulo Linder
2026-07-07 18:03:20 -03:00
committed by GitHub
parent 9708d34ce1
commit 3f5b738738
4 changed files with 93 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
version: "3.8"
services:
velix-api:
image: ghcr.io/paulolinder/velix-api:0.1.0
restart: always
environment:
- DATABASE_URL=postgres://postgres:${DB_PASSWORD}@postgres:5432/velix?sslmode=disable
- REDIS_URL=redis://redis:6379
- JWT_SECRET=${JWT_SECRET}
- HTTP_PORT=8080
- APP_ENV=production
- LOG_LEVEL=info
- MEDIA_STORAGE_PATH=/data/media
- ENGINE_STORE_PATH=/data/instances
- ENGINE_AUTO_RECONNECT=true
- ENGINE_MAX_INSTANCES=200
- REGISTRATION_ENABLED=false
volumes:
- velix-data:/data
depends_on:
- postgres
- redis
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_DB=velix
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- postgres-data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: always
volumes:
- redis-data:/data
volumes:
velix-data:
postgres-data:
redis-data:

View File

@@ -0,0 +1,16 @@
[variables]
main_domain = "${domain}"
DB_PASSWORD = "${password:32}"
JWT_SECRET = "${password:64}"
[config]
env = [
"DB_PASSWORD=${DB_PASSWORD}",
"JWT_SECRET=${JWT_SECRET}",
]
mounts = []
[[config.domains]]
serviceName = "velix-api"
port = 8080
host = "${main_domain}"

View File

@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" fill="none">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="128" y2="128" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#22c55e"/>
<stop offset="100%" stop-color="#15803d"/>
</linearGradient>
<linearGradient id="bubble" x1="20" y1="20" x2="108" y2="108" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="rgba(255,255,255,0.25)"/>
<stop offset="100%" stop-color="rgba(255,255,255,0.08)"/>
</linearGradient>
</defs>
<rect width="128" height="128" rx="28" fill="url(#bg)"/>
<path d="M30 36 C30 28, 36 22, 44 22 L84 22 C92 22, 98 28, 98 36 L98 72 C98 80, 92 86, 84 86 L52 86 L38 98 L38 86 L44 86 C36 86, 30 80, 30 72 Z" fill="url(#bubble)"/>
<path d="M42 38 L58 82 C59 84.5, 61 86, 64 86 C67 86, 69 84.5, 70 82 L86 38" stroke="white" stroke-width="9" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
<path d="M56 92 L62 98 L76 84" stroke="rgba(255,255,255,0.6)" stroke-width="4.5" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -6482,6 +6482,24 @@
"open-source"
]
},
{
"id": "velix-api",
"name": "Velix API",
"version": "0.1.0",
"description": "Self-hosted WhatsApp API with multi-instance support, webhooks, n8n node, and Chatwoot integration.",
"logo": "velix-api.svg",
"links": {
"github": "https://github.com/paulolinder/velix-api",
"website": "https://velix.dev"
},
"tags": [
"whatsapp",
"api",
"messaging",
"chatbot",
"automation"
]
},
{
"id": "verdaccio",
"name": "Verdaccio",