TELEGRAM TRIGGER LISTENS LIKE THERE IS NO TOMORROW - self-hosted n8n via tunnel!

Hi everyone! For my self-hosted n8n instance, I use my old mac mini as a server. Recently I’ve also managed to expose my instance via cloudflare/zero trust tunnels. It works like a magic but I wasn’t that lucky with webhooks.

For this operation I followed the comprehensive guide created by @Gavien, which I’m attaching here for those, who want to achieve the same.

The problem I’m currently facing is that my telegram trigger does not fetch my messages, although it listens for the event (according to UI) without any problem. like forever… I suppose this will also happen for other webhooks like trello, slack etc. In forum, I saw some similar topics but with different configuration, so I decided to open this topic hoping to get some guidance.

I am not that technical but I am learning to manage my n8n instance by doing. I appreciate any tips and feedback on what I am missing.

Below is my configuration:

  • n8n version: 1.78.1
  • Database: default
  • n8n EXECUTIONS_PROCESS setting: default
  • Running n8n via Docker-Compose & Cloudflare/Zero Trust
  • Operating system: MacOS

.env:

POSTGRES_USER=root

POSTGRES_PASSWORD=password

POSTGRES_DB=n8n

DOMAIN_NAME=domain.com

SUBDOMAIN=n8n

GENERIC_TIMEZONE=Europe/Berlin

[email protected]

N8N_ENCRYPTION_KEY=super-secret-key

N8N_USER_MANAGEMENT_JWT_SECRET=even-more-secret

docker-compose.yml

volumes:
  n8n_storage:
  postgres_storage:
  ollama_storage:
  qdrant_storage:

networks:
  demo:

x-n8n: &service-n8n
  image: n8nio/n8n:latest
  networks: ['demo']
  environment:
    - DB_TYPE=postgresdb
    - DB_POSTGRESDB_HOST=postgres
    - DB_POSTGRESDB_USER=${POSTGRES_USER}
    - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
    - N8N_DIAGNOSTICS_ENABLED=false
    - N8N_PERSONALIZATION_ENABLED=false
    - N8N_ENCRYPTION_KEY
    - N8N_USER_MANAGEMENT_JWT_SECRET
    - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
    - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
    - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
    - OLLAMA_HOST={OLLAMA_HOST}
  volumes:
    - n8n_data:/home/node/.n8n
    - /home/user/n8n-local-files:/files

x-ollama: ...

x-init-ollama: ...

services:
  postgres: ...

  n8n-import:
    <<: *service-n8n
    hostname: n8n-import
    container_name: n8n-import
    entrypoint: /bin/sh
    command:
      - "-c"
      - "n8n import:credentials --separate --input=/backup/credentials && n8n import:workflow --separate --input=/backup/workflows"
    volumes:
      - ./n8n/backup:/backup
    depends_on:
      postgres:
        condition: service_healthy

  n8n:
    <<: *service-n8n
    hostname: n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - 5678:5678
    volumes:
      - n8n_storage:/home/node/.n8n
      - ./n8n/backup:/backup
      - ./shared:/data/shared
    depends_on:
      postgres:
        condition: service_healthy
      n8n-import:
        condition: service_completed_successfully

  qdrant: ...
  ollama: ...

It looks like your topic is missing some important information. Could you provide the following if applicable.

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Up please.