id: n8n
name: "n8n Workflow-Automatisierung"
version: "1.0"
description: "Low-Code Automatisierungsplattform mit 500+ Integrationen, Webhooks und PostgreSQL-Zugriff"
category: development

links:
  homepage: "https://n8n.io/"
  docs: "https://docs.n8n.io/"
  github: "https://github.com/n8n-io/n8n"

image:
  name: "n8nio/n8n"
  tag: "latest"

ports:
  - host: 8350
    container: 5678
    protocol: tcp
    description: "Web-UI und Webhook-Endpoint"

volumes:
  - host: "/opt/appctl/data/n8n"
    container: "/home/node/.n8n"
    description: "Encryption Keys, Credentials, Config"

global_env:
  - key: "ITBOX_LLM_ENDPOINT"
    description: "IT.Box LLM-Proxy Endpoint (llmgr)"
    required: false
    default: "https://llm.kibox.online/v1"

  - key: "ITBOX_LLM_API_KEY"
    description: "IT.Box LLM API Key"
    required: true

environment:
  - key: "N8N_HOST"
    value: "0.0.0.0"

  - key: "N8N_PORT"
    value: "5678"

  - key: "N8N_PROTOCOL"
    value: "http"

  - key: "N8N_SECURE_COOKIE"
    value: "false"
    # Hinweis: Bei HTTPS-Tunnel-Zugriff auf "true" setzen (appctl secrets set N8N_SECURE_COOKIE true)

  - key: "GENERIC_TIMEZONE"
    value: "Europe/Berlin"

  - key: "N8N_RUNNERS_ENABLED"
    value: "true"

  - key: "DB_TYPE"
    value: "postgresdb"

  - key: "DB_POSTGRESDB_HOST"
    value: "postgres"

  - key: "DB_POSTGRESDB_PORT"
    value: "5432"

  - key: "DB_POSTGRESDB_DATABASE"
    value: "n8n"

  - key: "DB_POSTGRESDB_USER"
    value: "itbox"

  - key: "DB_POSTGRESDB_PASSWORD"
    value: "${POSTGRES_PASSWORD}"

secrets: []

depends_on:
  - postgres

post_install:
  messages:
    - "n8n laeuft auf http://itbox.local:8350"
    - "Der erste registrierte Benutzer wird automatisch Admin"
    - "Kein LDAP in der Community Edition - eigene Benutzerverwaltung in n8n"
    - "IT.Box LLM-Proxy: Im OpenAI-Node als Base URL ${ITBOX_LLM_ENDPOINT} eintragen"
    - "Schueler-Datenbank: Im PostgreSQL-Node Host=postgres, DB=students, User=student_write nutzen"
    - "Schueler-DB-Passwort anzeigen: sudo cat /opt/appctl/compose/.env | grep POSTGRES_STUDENT_PASSWORD"
    - "HTTPS-Tunnel: N8N_SECURE_COOKIE auf true setzen (sudo appctl secrets set N8N_SECURE_COOKIE true)"

  ports_info:
    - port: 8350
      protocol: tcp
      description: "Web-UI und Webhooks - Fuer Tunnel: sudo tnl add n8n 8350"

resources:
  ram_mb: 500
  cpu_cores: 0.5
  disk_mb: 100

tags:
  - automation
  - workflow
  - api
  - webhooks
  - low-code
