Issues with Self-Hosted n8n on Google Cloud (Docker Install)

I’m running a self-hosted n8n instance on Google Cloud (Docker install) , and despite extensive troubleshooting, I still can’t authenticate with Google services or register a Telegram webhook .

What is the error message (if any)?

:one: Google OAuth Authentication Fails

OAuth Redirect URI:

https://n8n.wills.com/rest/oauth2-credential/callback

• Verified API credentials, firewall rules, and redirect settings, but login still fails.

• Running gcloud sql connect devdb [email protected] returns:

ERROR: (gcloud.sql.connect) Mysql client not found.

:two: Telegram Webhook Rejection

Error Message:

Telegram Trigger1: Bad Request: Webhook can be set up only on ports 80, 88, 443, or 8443.

n8n is running on port 5678 , proxied via Nginx to 443 , yet Telegram still rejects the webhook .

• SSL (Let’s Encrypt) is configured, and firewall rules allow necessary traffic.

Please share your workflow

(Workflow itself isn’t the issue, but logs available if needed.)

Share the output returned by the last node

(Errors are from API responses, no node-specific issues.)

Information on your n8n setup

n8n version: Latest (as of Feb 2025)

Database: Google Cloud SQL (MySQL 8.0)

n8n EXECUTIONS_PROCESS setting: Default

Running n8n via: Docker on a Google Cloud VM

Operating system: Debian-based (Google Cloud VM default)

What We’ve Tried

:white_check_mark: Google OAuth Debugging:

• Verified OAuth credentials & redirect URIs in Google Cloud Console.

• Allowed Google SQL access & authorized networks (34.123.216.159, 34.133.19.92).

:white_check_mark: Telegram Webhook Fixes:

• Adjusted Nginx proxy settings to forward requests correctly.

• Opened ports 443, 3306, etc. for traffic.

Reset API tokens & credentials multiple times .

Questions:

  1. Has anyone successfully configured Google OAuth & Telegram webhooks on a self-hosted n8n running in GCP?

  2. Any workarounds for getting Telegram to recognize the webhook when proxied?

  3. Is there a specific firewall rule I should add to allow ingress/egress for these services?

Any insights would be greatly appreciated! :rocket:

Thanks in advance!

Vincent

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: