| | --- |
| | title: n8n |
| | emoji: 🤖 |
| | colorFrom: pink |
| | colorTo: indigo |
| | sdk: docker |
| | pinned: false |
| | license: mit |
| | app_port: 5678 |
| | short_description: n8n hosting using huggingface |
| | --- |
| | |
| | # Hosting n8n using huggingface space |
| |
|
| | If you don't have a cloud instance or domain, self hosting n8n may be a bit difficult. |
| | This repository is a template for hosting n8n using huggingface space. |
| |
|
| | ## Using Supabase for database |
| |
|
| | According to [huggingface space documentation](https://huggingface.co/docs/hub/en/spaces-overview#lifecycle-management), |
| | Space will "go to sleep" and stop executing after a period of time if unused. |
| | To avoid this, we can use [Supabase](https://supabase.com/) for the database. |
| |
|
| | 1. Sign up for a free account at <https://supabase.com/dashboard/sign-up> |
| | 2. Create a new project and fill the form. Save the database password for later use. |
| |
|
| |  |
| |  |
| |
|
| | 3. View the database connection info by click the **Connect** button on the top left nav bar. |
| |
|
| |  |
| |
|
| | 4. Select **SQLAlchemy** as Connection String and find the **Transaction pooler** section. |
| |
|
| |  |
| |  |
| |
|
| | 5. Save the connection info for later use: host, port, user, dbname. |
| |
|
| | ## Deploying n8n using huggingface space |
| |
|
| | Huggingface space provide a free tier with 16GB RAM, 2 CPU cores and 50GB of |
| | (not persistent) disk space. This is enough for hosting n8n. |
| |
|
| | | **Hardware** | **GPU Memory** | **CPU** | **Memory** | **Disk** | **Hourly Price** | |
| | | ------------ | -------------- | ------- | ---------- | -------- | ---------------- | |
| | | CPU Basic | - | 2 vCPU | 16 GB | 50 GB | Free! | |
| |
|
| | Using this space to duplicate and deploy n8n in the easy way. |
| |
|
| | 1. Sign up for a free account at <https://huggingface.co/join> and pick a profile name. |
| | `tomowang` is the profile in <https://huggingface.co/tomowang> as an example. |
| | Remember the profile name for later use. |
| |
|
| | 2. Access <https://huggingface.co/spaces/tomowang/n8n> and click the menu drop |
| | down in top right corner and select **Duplicate this space**. |
| |
|
| |  |
| |
|
| | 3. Fill or change the variable and secrets in pop-up form and click **Duplicate**. |
| |
|
| |  |
| |
|
| | | **Variable** | **Value** | |
| | | ------------------------ | -------------------------------------------------------- | |
| | | `DB_POSTGRESDB_PASSWORD` | supabase db password | |
| | | `DB_POSTGRESDB_USER` | supabase db connection `user` | |
| | | `DB_POSTGRESDB_HOST` | supabase db connection `host` | |
| | | `DB_POSTGRESDB_PORT` | 6543 | |
| | | `N8N_ENCRYPTION_KEY` | Random string. Use `openssl rand -base64 32` to generate | |
| | | `WEBHOOK_URL` | Example `https://<profile>-n8n.hf.space/` | |
| | | `N8N_EDITOR_BASE_URL` | Example `https://<profile>-n8n.hf.space/` | |
| | | `GENERIC_TIMEZONE` | Config by requirement | |
| | | `TZ` | Config by requirement | |
| |
|
| | 4. Click **Duplicate Space** and wait for the deployment to finish. You can |
| | find the logs as following |
| |
|
| |  |
| |
|
| | 5. Once the deployment is finished, you can find the URL as configured in the |
| | `N8N_EDITOR_BASE_URL` variable. |
| |
|
| |  |
| |
|
| | Now you can access n8n using the URL. |
| |
|
| | > n8n use [helmet](https://github.com/helmetjs/helmet) for security headers. |
| | > In production mode, it will set `X-Frame-Options` to `sameorigin`, which causes |
| | > the n8n site to be blocked by the iframe in the Huggingface Space |
| | > (code <https://github.com/n8n-io/n8n/blob/master/packages/cli/src/server.ts#L401-L402>). |
| |
|