{"id":801,"date":"2025-09-27T15:10:28","date_gmt":"2025-09-27T09:40:28","guid":{"rendered":"https:\/\/seosmohub.com\/blog\/?p=801"},"modified":"2026-04-12T08:18:07","modified_gmt":"2026-04-12T02:48:07","slug":"n8n-storage-database-setup","status":"publish","type":"post","link":"https:\/\/seosmohub.com\/blog\/n8n-storage-database-setup\/","title":{"rendered":"n8n Redis Setup Guide: Configure Database Storage for Workflows"},"content":{"rendered":"\r\n<p>When you build reliable automations with n8n, you often need a place to store data \u2014 not only credentials and workflow metadata but also files, cached items, and lookup records. This guide shows practical, secure steps to connect <strong>n8n to Redis<\/strong> (fast key-value\/cache), <strong>Google Cloud Storage<\/strong> (GCS) for object files, and <strong>Supabase<\/strong> for app-friendly storage and Postgres data. You\u2019ll get step-by-step setup, importable test flows, and simple troubleshooting tips. <br \/><br \/><strong>Quick note:<\/strong> n8n uses SQLite by default for local setups but supports external databases and external binary storage via environment variables. Use external <a title=\"storage for production workloads\" href=\"https:\/\/docs.n8n.io\/\" target=\"_blank\" rel=\"nofollow noopener\">storage for production workloads<\/a>.<\/p>\r\n\r\n\r\n\r\n<p><strong>Pro Tip: <\/strong>Start working on n8n with Quick Alternative with Free Credits: If you don\u2019t want to manage hosting yourself, you can also use:<\/p>\r\n\r\n<ol>\r\n<li>Free $5 every month with quick GitHub verification.<\/li>\r\n<li>50% off yearly Hobby &amp; Pro plans (until Oct-31).<\/li>\r\n<li>No credit card needed, setup in under 1 minute.<\/li>\r\n<\/ol>\r\n<p><a title=\"Start with RunClaw\" href=\"https:\/\/console.run.claw.cloud\/signin?link=UCMAFXOWMP8F\" target=\"_blank\" rel=\"nofollow noopener\">Start with RunClaw<\/a><\/p>\r\n<h2><span class=\"ez-toc-section\" id=\"What_Why_Who_this_guide_is_for\"><\/span>What \/ Why \/ Who this guide is for<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<ul>\r\n<li><strong>What:<\/strong> How to connect n8n to common storage backends (Redis, GCS, Supabase) and run test flows.<\/li>\r\n<li><strong>Why:<\/strong> External storage improves reliability (files survive container restarts), performance (Redis cache), and scalability.<\/li>\r\n<li><strong>Who:<\/strong> n8n hobbyists, devs, and no-code makers who want production-ready storage patterns.<\/li>\r\n<\/ul>\r\n<h2><span class=\"ez-toc-section\" id=\"Quick_comparison_Redis_GCS_Supabase\"><\/span>Quick comparison: Redis, GCS, Supabase<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<div class=\"res_table\">\r\n<table>\r\n<tbody>\r\n<tr data-start=\"3696\" data-end=\"3732\">\r\n<td style=\"text-align: center;\">Use case<\/td>\r\n<td style=\"text-align: center;\">Best for<\/td>\r\n<td style=\"text-align: center;\">Cost\/notes<\/td>\r\n<\/tr>\r\n<tr>\r\n<td style=\"text-align: center;\">Redis<\/td>\r\n<td style=\"text-align: center;\" data-start=\"3760\" data-end=\"3801\" data-col-size=\"sm\">Cache, ephemeral queues, session store<\/td>\r\n<td style=\"text-align: center;\" data-start=\"3801\" data-end=\"3911\" data-col-size=\"md\">Low-latency; not for large files. Use managed Redis for persistence.<\/td>\r\n<\/tr>\r\n<tr data-start=\"3912\" data-end=\"4060\">\r\n<td style=\"text-align: center;\" data-start=\"3912\" data-end=\"3939\" data-col-size=\"sm\">Google Cloud Storage<\/td>\r\n<td style=\"text-align: center;\" data-start=\"3939\" data-end=\"3969\" data-col-size=\"sm\">Large files, backups, media<\/td>\r\n<td style=\"text-align: center;\" data-start=\"3969\" data-end=\"4060\" data-col-size=\"md\">Object storage with lifecycle rules &amp; versioning.<\/td>\r\n<\/tr>\r\n<tr data-start=\"4061\" data-end=\"4216\">\r\n<td style=\"text-align: center;\" data-start=\"4061\" data-end=\"4084\" data-col-size=\"sm\">Supabase Storage<\/td>\r\n<td style=\"text-align: center;\" data-start=\"4084\" data-end=\"4122\" data-col-size=\"sm\">App files, CDN, small\/medium assets<\/td>\r\n<td style=\"text-align: center;\" data-start=\"4122\" data-end=\"4216\" data-col-size=\"md\">Easy auth + Postgres integration; good for web apps.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/div>\r\n<p>&nbsp;<\/p>\r\n<h2><span class=\"ez-toc-section\" id=\"Common_configuration_patterns\"><\/span>Common configuration patterns<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<p>Environment variables are the safest way to provide credentials to n8n. n8n also supports file-based overrides (append _FILE to variable names), which is perfect for Docker or Kubernetes secrets. <strong>Pro tip:<\/strong> If you need a walkthrough on n8n credentials, see our <a title=\"n8n credentials &amp; setup guide\" href=\"https:\/\/seosmohub.com\/blog\/n8n-credentials-setup-guide\/\" target=\"_blank\" rel=\"noopener\">n8n credentials &amp; setup guide<\/a><\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Example_env_local_dev\"><\/span>Example .env (local dev)<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p># Database<br \/>DB_TYPE=postgresdb<br \/>DB_POSTGRESDB_HOST=postgres.example.com<br \/>DB_POSTGRESDB_PORT=5432<br \/>DB_POSTGRESDB_DATABASE=n8n<br \/>DB_POSTGRESDB_USER=n8n<br \/>DB_POSTGRESDB_PASSWORD_FILE=\/run\/secrets\/db_password<\/p>\r\n<p># External storage (example)<br \/>N8N_EXTERNAL_BINARY_DATA_STORAGE=gcs<br \/>N8N_EXTERNAL_GCS_BUCKET=my-n8n-bucket<br \/>GOOGLE_APPLICATION_CREDENTIALS=\/run\/secrets\/gcs_service_account.json<\/p>\r\n<p># Redis (if using as cache)<br \/>REDIS_HOST=redis.example.com<br \/>REDIS_PORT=6379<br \/>REDIS_PASSWORD_FILE=\/run\/secrets\/redis_password<\/p>\r\n<p>Best practice: Keep secrets out of Git. Use Docker secrets, cloud secret managers (AWS Secrets Manager, Google Secret Manager), or Kubernetes Secrets with the _FILE pattern. <a title=\"n8n docs\" href=\"https:\/\/docs.n8n.io\/\" target=\"_blank\" rel=\"noopener nofollow\">n8n docs<\/a><\/p>\r\n<h2><span class=\"ez-toc-section\" id=\"Redis_%E2%80%94_cache_queue_and_light_DB\"><\/span>Redis \u2014 cache, queue, and light DB<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<h3><span class=\"ez-toc-section\" id=\"When_to_pick_Redis\"><\/span>When to pick Redis<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Use Redis when you need very fast reads\/writes, ephemeral queues, rate limiting, or session data. Not for large files. Managed Redis providers offer free tiers and simple dashboards.<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"n8n_Storage_Database_Setup_%E2%80%93_Quick_steps_create_Redis_and_connect\"><\/span>n8n Storage Database Setup &#8211; Quick steps (create Redis and connect)<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>1. Go to https:\/\/redis.io\/ and Click &#8220;Try Redis&#8221;<br \/><br \/><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-803 size-full\" title=\"redis.io website\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/redis.io_.jpg\" alt=\"redis.io website\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/redis.io_.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/redis.io_-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/redis.io_-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/> <br \/>2. Create an account<br \/><br \/><img decoding=\"async\" class=\"aligncenter wp-image-804 size-full\" title=\"create account in redis.io\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/create-account-in-redis.io_.jpg\" alt=\"create account in redis.io\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/create-account-in-redis.io_.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/create-account-in-redis.io_-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/create-account-in-redis.io_-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>3. Log in and click &#8220;New database&#8221;<br \/><br \/><img decoding=\"async\" class=\"aligncenter wp-image-805 size-full\" title=\"login to redis.io Click new database\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/login-to-redis.io-Click-new-database.jpg\" alt=\"login to redis.io Click new database\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/login-to-redis.io-Click-new-database.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/login-to-redis.io-Click-new-database-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/login-to-redis.io-Click-new-database-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>4. Select &#8220;Essentials&#8221;.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-806 size-full\" title=\"select essentials in redis.io\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/select-essentials-in-redis.jpg\" alt=\"select essentials in redis.io\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/select-essentials-in-redis.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/select-essentials-in-redis-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/select-essentials-in-redis-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>5. Enter a Database name, choose any cloud vendor, and pick the nearest Region.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-808 size-full\" title=\"Set a Database name Select any cloud vendor in redis.io\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Set-a-Database-name-Select-any-cloud-vendor-in-redis.jpg\" alt=\"Set a Database name Select any cloud vendor in redis.io\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Set-a-Database-name-Select-any-cloud-vendor-in-redis.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Set-a-Database-name-Select-any-cloud-vendor-in-redis-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Set-a-Database-name-Select-any-cloud-vendor-in-redis-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>6. Choose the &#8220;30 MB Free Plan&#8221; and click &#8220;Create database&#8221;.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-809 size-full\" title=\"choose 30 mb free plan in redis.io\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/choose-30-mb-free-plan-in-redis.jpg\" alt=\"choose 30 mb free plan in redis.io\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/choose-30-mb-free-plan-in-redis.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/choose-30-mb-free-plan-in-redis-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/choose-30-mb-free-plan-in-redis-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>7. Click &#8220;Connect to database&#8221; \u2192 &#8220;Connect&#8221;.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-807 size-full\" title=\"click Connect to database Connect in redis.io\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Connect-to-database-_Connect-in-redis.jpg\" alt=\"click Connect to database Connect in redis.io\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Connect-to-database-_Connect-in-redis.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Connect-to-database-_Connect-in-redis-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Connect-to-database-_Connect-in-redis-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>8. Open &#8220;Redis CLI&#8221; and click the eye icon (or &#8220;View&#8221;) to reveal connection details.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-810 size-full\" title=\"click Redis CLI - View Eye\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Redis-CLI-View-Eye.jpg\" alt=\"click Redis CLI - View Eye\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Redis-CLI-View-Eye.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Redis-CLI-View-Eye-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/click-Redis-CLI-View-Eye-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>9. In your n8n editor go to &#8220;Credentials&#8221; \u2192 &#8220;Add credential&#8221;.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-811 size-full\" title=\"go to your n8n - Credentials - Add credential\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/go-to-your-n8n-credentials-add-credential.jpg\" alt=\"go to your n8n - Credentials - Add credential\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/go-to-your-n8n-credentials-add-credential.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/go-to-your-n8n-credentials-add-credential-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/go-to-your-n8n-credentials-add-credential-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>10. In &#8220;Search for app&#8221; type &#8220;Redis&#8221; and click &#8220;Continue&#8221;.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-812 size-full\" title=\"Search for app - Redis - Continue\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Search-for-app-redis-continue.jpg\" alt=\"Search for app - Redis - Continue\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Search-for-app-redis-continue.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Search-for-app-redis-continue-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/Search-for-app-redis-continue-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><br \/>11. Map the fields Password, User, Host, and Port, then click &#8220;Save&#8221;.<br \/><br \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-813 size-full\" title=\"map the password in redis.io\" src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/map-the-password-in-redis.io_.jpg\" alt=\"map the password in redis.io\" width=\"706\" height=\"400\" srcset=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/map-the-password-in-redis.io_.jpg 706w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/map-the-password-in-redis.io_-300x170.jpg 300w, https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/map-the-password-in-redis.io_-150x85.jpg 150w\" sizes=\"(max-width: 706px) 100vw, 706px\" \/><\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Example_n8n_workflow_Redis_SET_%E2%86%92_GET_%E2%80%94_importable_JSON\"><\/span>Example n8n workflow (Redis SET \u2192 GET) \u2014 importable JSON<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Import this JSON into n8n (Editor \u2192 Import), then edit credentials to match your Redis instance.<\/p>\r\n<p>{<br \/>&#8220;name&#8221;: &#8220;Redis SetGet Example&#8221;,<br \/>&#8220;nodes&#8221;: [<br \/>{<br \/>&#8220;name&#8221;: &#8220;Manual Trigger&#8221;,<br \/>&#8220;type&#8221;: &#8220;n8n-nodes-base.manualTrigger&#8221;,<br \/>&#8220;typeVersion&#8221;: 1,<br \/>&#8220;position&#8221;: [250, 200]<br \/>},<br \/>{<br \/>&#8220;name&#8221;: &#8220;Redis SET&#8221;,<br \/>&#8220;type&#8221;: &#8220;n8n-nodes-base.redis&#8221;,<br \/>&#8220;typeVersion&#8221;: 1,<br \/>&#8220;position&#8221;: [500, 200],<br \/>&#8220;parameters&#8221;: {<br \/>&#8220;operation&#8221;: &#8220;set&#8221;,<br \/>&#8220;key&#8221;: &#8220;n8n_test_key&#8221;,<br \/>&#8220;value&#8221;: &#8220;Hello from n8n&#8221;,<br \/>&#8220;ttl&#8221;: 3600<br \/>},<br \/>&#8220;credentials&#8221;: {<br \/>&#8220;redis&#8221;: {<br \/>&#8220;id&#8221;: &#8220;your-redis-credential-id&#8221;,<br \/>&#8220;name&#8221;: &#8220;Redis&#8221;<br \/>}<br \/>}<br \/>},<br \/>{<br \/>&#8220;name&#8221;: &#8220;Redis GET&#8221;,<br \/>&#8220;type&#8221;: &#8220;n8n-nodes-base.redis&#8221;,<br \/>&#8220;typeVersion&#8221;: 1,<br \/>&#8220;position&#8221;: [750, 200],<br \/>&#8220;parameters&#8221;: {<br \/>&#8220;operation&#8221;: &#8220;get&#8221;,<br \/>&#8220;key&#8221;: &#8220;n8n_test_key&#8221;<br \/>},<br \/>&#8220;credentials&#8221;: {<br \/>&#8220;redis&#8221;: {<br \/>&#8220;id&#8221;: &#8220;your-redis-credential-id&#8221;,<br \/>&#8220;name&#8221;: &#8220;Redis&#8221;<br \/>}<br \/>}<br \/>}<br \/>],<br \/>&#8220;connections&#8221;: {<br \/>&#8220;Manual Trigger&#8221;: { &#8220;main&#8221;: [[ { &#8220;node&#8221;: &#8220;Redis SET&#8221;, &#8220;type&#8221;: &#8220;main&#8221;, &#8220;index&#8221;: 0 } ]] },<br \/>&#8220;Redis SET&#8221;: { &#8220;main&#8221;: [[ { &#8220;node&#8221;: &#8220;Redis GET&#8221;, &#8220;type&#8221;: &#8220;main&#8221;, &#8220;index&#8221;: 0 } ]] }<br \/>}<br \/>}<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Troubleshooting_Redis\"><\/span>Troubleshooting Redis<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li>Connection errors: check firewall\/VPC rules.<\/li>\r\n<li>Auth errors: verify username\/password; try connecting with redis-cli first.<\/li>\r\n<li>Persistence: enable AOF\/RDB or use your provider\u2019s snapshot\/backup features. <a title=\"Docs\" href=\"https:\/\/redis.io\/docs\/operate\/oss_and_stack\/management\/persistence\/\" target=\"_blank\" rel=\"nofollow noopener\">Docs\u00a0<\/a><\/li>\r\n<\/ul>\r\n<h2><span class=\"ez-toc-section\" id=\"Google_Cloud_Storage_GCS_%E2%80%94_file_and_binary_storage\"><\/span>Google Cloud Storage (GCS) \u2014 file and binary storage<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<h3><span class=\"ez-toc-section\" id=\"When_to_pick_GCS\"><\/span>When to pick GCS<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p><strong>Choose GCS for large assets:<\/strong> Images, backups, logs, and binary objects. GCS supports lifecycle rules, versioning, and regional buckets. <a title=\"GSC Docs\" href=\"https:\/\/cloud.google.com\/storage\/docs\" target=\"_blank\" rel=\"nofollow noopener\">GSC Docs<\/a>\u00a0<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"n8n_Storage_Database_Setup_%E2%80%93_Quick_steps_create_service_account_and_bucket\"><\/span>n8n Storage Database Setup &#8211; Quick steps: create service account and bucket<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ol>\r\n<li>Create a service account by visiting -&gt; https:\/\/cloud.google.com\/iam\/docs\/service-accounts<br \/><br \/><\/li>\r\n<li>Grant minimal permissions needed (for testing, Storage Object Admin is fine; tighten later).<br \/><br \/><\/li>\r\n<li>Create a JSON key for the service account and store it securely (don\u2019t commit to source control).<br \/><br \/><\/li>\r\n<li>Create a bucket and note the name with this page -&gt; https:\/\/cloud.google.com\/storage\/docs\/creating-buckets<\/li>\r\n<\/ol>\r\n<h3><span class=\"ez-toc-section\" id=\"Configure_n8n_to_use_GCS\"><\/span>Configure n8n to use GCS<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Store the service account JSON in a secure path inside the container or use the _FILE pattern with Docker secrets: GOOGLE_APPLICATION_CREDENTIALS=\/run\/secrets\/gcs_service_account.json<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Set_environment_variables_in_n8n\"><\/span>Set environment variables in n8n:<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>N8N_EXTERNAL_BINARY_DATA_STORAGE=gcs<br \/>N8N_EXTERNAL_GCS_BUCKET=my-n8n-bucket<br \/>GOOGLE_APPLICATION_CREDENTIALS=\/run\/secrets\/gcs_service_account.json<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Example_n8n_workflow_Upload_file_to_GCS\"><\/span>Example n8n workflow (Upload file to GCS)<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Import and set your credentials.<\/p>\r\n<p>{<br \/>&#8220;name&#8221;: &#8220;GCS Upload Example&#8221;,<br \/>&#8220;nodes&#8221;: [<br \/>{ &#8220;name&#8221;: &#8220;Manual Trigger&#8221;, &#8220;type&#8221;: &#8220;n8n-nodes-base.manualTrigger&#8221;, &#8220;typeVersion&#8221;: 1, &#8220;position&#8221;:[250,200] },<br \/>{<br \/>&#8220;name&#8221;: &#8220;Set Binary Data&#8221;,<br \/>&#8220;type&#8221;: &#8220;n8n-nodes-base.set&#8221;,<br \/>&#8220;typeVersion&#8221;: 1,<br \/>&#8220;position&#8221;:[450,200],<br \/>&#8220;parameters&#8221;: {<br \/>&#8220;values&#8221;: {<br \/>&#8220;binary&#8221;: [<br \/>{ &#8220;key&#8221;: &#8220;data&#8221;, &#8220;value&#8221;: &#8220;={{Buffer.from(&#8216;My sample file content&#8217;).toString(&#8216;base64&#8217;)}}&#8221; }<br \/>]<br \/>},<br \/>&#8220;options&#8221;: {}<br \/>}<br \/>},<br \/>{<br \/>&#8220;name&#8221;: &#8220;Google Cloud Storage&#8221;,<br \/>&#8220;type&#8221;: &#8220;n8n-nodes-base.googleCloudStorage&#8221;,<br \/>&#8220;typeVersion&#8221;: 1,<br \/>&#8220;position&#8221;:[700,200],<br \/>&#8220;parameters&#8221;: {<br \/>&#8220;operation&#8221;: &#8220;upload&#8221;,<br \/>&#8220;bucket&#8221;: &#8220;my-n8n-bucket&#8221;,<br \/>&#8220;binaryPropertyName&#8221;: &#8220;data&#8221;,<br \/>&#8220;fileName&#8221;: &#8220;sample.txt&#8221;<br \/>},<br \/>&#8220;credentials&#8221;: {<br \/>&#8220;googleCloud&#8221;: {<br \/>&#8220;id&#8221;: &#8220;gcs-credential-id&#8221;,<br \/>&#8220;name&#8221;: &#8220;GCS Service Account&#8221;<br \/>}<br \/>}<br \/>}<br \/>],<br \/>&#8220;connections&#8221;: {<br \/>&#8220;Manual Trigger&#8221;: { &#8220;main&#8221;:[[{&#8220;node&#8221;:&#8221;Set Binary Data&#8221;,&#8221;type&#8221;:&#8221;main&#8221;,&#8221;index&#8221;:0}]] },<br \/>&#8220;Set Binary Data&#8221;: { &#8220;main&#8221;:[[{&#8220;node&#8221;:&#8221;Google Cloud Storage&#8221;,&#8221;type&#8221;:&#8221;main&#8221;,&#8221;index&#8221;:0}]] }<br \/>}<br \/>}<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"Troubleshooting_GCS_uploads\"><\/span>Troubleshooting GCS uploads<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li>Permission errors usually mean the service account role is too limited. Try Storage Object Admin for testing, then narrow.<\/li>\r\n<li>Bucket not found: confirm bucket name and region. Check <a title=\"GCS docs\" href=\"https:\/\/cloud.google.com\/storage\/docs\" target=\"_blank\" rel=\"nofollow noopener\">GCS docs<\/a> from main website<\/li>\r\n<li>n8n configuration reference<\/li>\r\n<\/ul>\r\n<h2><span class=\"ez-toc-section\" id=\"Supabase_%E2%80%94_app-friendly_storage_and_Postgres_metadata\"><\/span>Supabase \u2014 app-friendly storage and Postgres metadata<span class=\"ez-toc-section-end\"><\/span><\/h2>\r\n<h3><span class=\"ez-toc-section\" id=\"When_to_pick_Supabase\"><\/span>When to pick Supabase<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>Use Supabase when you need both file storage (CDN-enabled) and database metadata (Postgres) with simple auth. Good for web apps and prototypes.\u00a0<\/p>\r\n<h3><span class=\"ez-toc-section\" id=\"n8n_Storage_Database_Setup_%E2%80%93_Quick_steps_of_Supabase_setup\"><\/span>n8n Storage Database Setup &#8211; Quick steps of Supabase setup<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ol>\r\n<li>Create a Supabase project and open Storage \u2192 create a bucket<\/li>\r\n<li>Create an API key (service role key) for server-side access; use anon\/public keys for client usage with RLS.<\/li>\r\n<li>In n8n, configure the Supabase node with <strong>supabaseUrl<\/strong> and <strong>supabaseKey<\/strong> in credentials.<\/li>\r\n<\/ol>\r\n<h3><span class=\"ez-toc-section\" id=\"Example_flow_idea_high_level\"><\/span>Example flow idea (high level)<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li><strong>Trigger:<\/strong> HTTP\/Webhook receives an uploaded file or URL.<\/li>\r\n<li><strong>Action:<\/strong> Use <strong>Supabase Storage<\/strong> node to upload the file to a bucket.<\/li>\r\n<li><strong>Action:<\/strong> Insert a metadata row into a Supabase table (filename, URL, uploaded_by).<\/li>\r\n<li><strong>Optional:<\/strong> Need OCR before upload? Try our <a title=\"Image to Text Tool\" href=\"https:\/\/seosmohub.com\/image-to-text.html\" target=\"_blank\" rel=\"noopener\">Image to Text Tool<\/a><\/li>\r\n<\/ul>\r\n<h3><span class=\"ez-toc-section\" id=\"Test_flows_and_retry_strategies\"><\/span>Test flows and retry strategies<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li>How to run test flows: Import the JSON examples into n8n Editor (Menu \u2192 Import). Map your credentials (Redis, GCS, Supabase). Run manual triggers or test executions.<\/li>\r\n<li>Retry strategies: use node-level retries and error workflows (Error Trigger \u2192 notification). For HTTP\/Storage nodes, check response codes and apply retries with backoff. For critical writes, add idempotency keys to avoid duplicates.<\/li>\r\n<\/ul>\r\n<h3><span class=\"ez-toc-section\" id=\"Security_backups_and_monitoring\"><\/span>Security, backups, and monitoring<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li>Rotate keys regularly (every 60\u201390 days) and use least-privilege roles.<\/li>\r\n<li>Backups: Redis \u2014 enable snapshotting\/AOF or managed backups; GCS \u2014 enable versioning and lifecycle rules; Postgres \u2014 scheduled backups. <a title=\"Redis persistence overview\" href=\"https:\/\/redis.io\/docs\/operate\/oss_and_stack\/management\/persistence\/\" target=\"_blank\" rel=\"nofollow noopener\">Redis persistence overview<\/a><\/li>\r\n<li>Monitoring: use provider logs plus n8n workflow logs\/alerts on failures.<\/li>\r\n<\/ul>\r\n<h3><span class=\"ez-toc-section\" id=\"Common_mistakes_fixes\"><\/span>Common mistakes &amp; fixes<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<ul>\r\n<li>Hardcoding credentials in nodes \u2192 switch to env vars or secret files<\/li>\r\n<li>Wrong bucket\/region \u2192 double-check exact bucket name and region in Google Cloud Console.<\/li>\r\n<li>No retry\/alerts \u2192 add error workflows and notifications.<\/li>\r\n<\/ul>\r\n<h3><span class=\"ez-toc-section\" id=\"Conclusion_next_steps\"><\/span>Conclusion &amp; next steps<span class=\"ez-toc-section-end\"><\/span><\/h3>\r\n<p>You now have a clear path for adding storage to n8n: pick Redis for fast ephemeral data, GCS for large files, and Supabase for app-centric storage + Postgres. Import the example flows, add credentials, and test. After that, set up secrets management, add retry\/error handling, and enable backups for production.<\/p>\r\n<h4><span class=\"ez-toc-section\" id=\"FAQ\"><\/span>FAQ<span class=\"ez-toc-section-end\"><\/span><\/h4>\r\n<p><strong>Q1: Do I need a paid plan to use Redis\/GCS\/Supabase with n8n?<\/strong><br data-start=\"14492\" data-end=\"14495\" \/>No \u2014 all three providers offer free tiers suitable for testing. Free tiers have limits (storage size, request quotas). For production use choose a paid tier that fits your reliability needs and set up backups and monitoring.<\/p>\r\n<p data-start=\"14721\" data-end=\"15046\"><strong data-start=\"14721\" data-end=\"14777\">Q2: Where should I store service account JSON files?<\/strong><br data-start=\"14777\" data-end=\"14780\" \/>Store them outside your codebase, ideally in Docker secrets, Kubernetes secrets, or cloud secret managers. Use the <code data-start=\"14895\" data-end=\"14902\"><span style=\"font-size: 10.0pt;\">_FILE<\/span><\/code> pattern with n8n so the secret is mounted into the container and referenced as a file path in env vars.<\/p>\r\n<p data-start=\"15048\" data-end=\"15339\"><strong data-start=\"15048\" data-end=\"15098\">Q3: Can n8n use Redis as the primary database?<\/strong><br data-start=\"15098\" data-end=\"15101\" \/>No \u2014 Redis is great for caches, queues, and ephemeral data, but n8n requires a proper database like Postgres for workflow metadata in production. Use Redis alongside a supported DB for best results.<\/p>\r\n<p data-start=\"15341\" data-end=\"15668\"><strong data-start=\"15341\" data-end=\"15392\">Q4: How do I test file uploads to GCS from n8n?<\/strong><br data-start=\"15392\" data-end=\"15395\" \/>Import the GCS Upload Example JSON, set your GCS credentials, run the Manual Trigger, then check the bucket in Google Cloud Console for the uploaded file. If you get permission errors, verify the service account role and bucket name.<\/p>\r\n<p data-start=\"15670\" data-end=\"15991\"><strong data-start=\"15670\" data-end=\"15730\">Q5: What retry strategy should I add for storage writes?<\/strong><br data-start=\"15730\" data-end=\"15733\" \/>Add node-level retries for intermittent errors, use idempotency keys to avoid duplicates, and create an error workflow that sends alerts (email\/Slack) on repeated failures. For large file uploads, retry in chunks or use resumable upload APIs where supported.<\/p>\r\n<p><strong>Q6:<\/strong><strong> Can n8n store files in Google Cloud Storage?<br \/><\/strong>Yes \u2014 use the Google Cloud Storage node and authenticate with a service account JSON. Set N8N_EXTERNAL_BINARY_DATA_STORAGE=gcs if you want n8n to store binary data externally.<\/p>\r\n<p><strong>Q7:<\/strong><strong> Is Redis persistent for n8n data?<br \/><\/strong><span style=\"font-size: inherit;\">Redis can be persistent if you enable snapshotting\/AOF or use a managed provider with backups. For durable long-term storage, prefer GCS for files and Postgres for metadata.\u00a0<\/span><\/p>\r\n<p><strong>Q8:<\/strong><strong> Does Supabase work with n8n?<br \/><\/strong><span style=\"font-size: inherit;\">Yes \u2014 n8n has a Supabase node to upload files and work with Postgres in the same project.\u00a0<\/span><\/p>\r\n<p><strong>Q9:<\/strong> <strong>How to keep service account keys secure?<br \/><\/strong>Use Docker\/Kubernetes secrets or a cloud secret manager, and the _FILE env var pattern to avoid plaintext in env vars.<\/p>\r\n<p><strong>Q10:<\/strong><strong> Should I use external storage for a small hobby project?<br \/><\/strong><span style=\"font-size: inherit;\">For simple hobby projects, local storage is fine, but external storage increases reliability and is better for containers\/cloud hosting.<\/span><\/p>\r\n<!-- \/wp:post-content --><div class=\"ays-arp-under-posts-container ays-arp-elegant-layout \" id=\"ays-arp-under-posts-container-801-69f1c0b348ab4\"  data-id=\"69f1c0b348ab4\" data-ratio=\"1\"><h2 class=\"ays-arp-under-posts-container-title\"><span class=\"ez-toc-section\" id=\"Related_Posts\"><\/span>Related Posts<span class=\"ez-toc-section-end\"><\/span><\/h2><input type=\"hidden\" name=\"ays-arp-id-69f1c0b348ab4\" value=\"801\"><div class=\"ays-arp-under-posts\"><div class=\"ays-arp-under-post\"><div class=\"ays-arp-under-post-header\"><div class=\"ays-arp-under-post-img-row\"><a href=\"https:\/\/seosmohub.com\/blog\/drop-down-on-excel\/\" class=\"ays-arp-under-post-link\"  ><img src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/how-to-do-drop-down-on-excel-768x432.jpg\" alt=\"How to Do Drop Down on Excel\" class=\"ays-arp-under-post-img\"><img src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2025\/09\/how-to-do-drop-down-on-excel-768x432.jpg\" alt=\"How to Do Drop Down on Excel\" class=\"ays-arp-under-post-img ays-arp-under-post-img-mobile\"><\/a><\/div><\/div><div class=\"ays-arp-under-post-content\"><div class=\"ays-arp-under-post-title-row\"><div class=\"ays-arp-under-post-title\"><a href=\"https:\/\/seosmohub.com\/blog\/drop-down-on-excel\/\" class=\"ays-arp-under-post-link\"  >How to Create a Drop Down on...<\/a><\/div><\/div><div class=\"ays-arp-under-post-excerpt-row\"><span class=\"ays-arp-under-post-excerpt\">\r\nCreating drop-down lists in Excel transforms cluttered spreadsheets into organized,...<\/span><\/div><div class=\"ays-arp-under-post-read-more-row\"><a href=\"https:\/\/seosmohub.com\/blog\/drop-down-on-excel\/\" class=\"ays-arp-under-post-link\"  ><span class=\"ays-arp-under-post-read-more\">Read more<\/span><\/a><\/div><\/div><\/div><div class=\"ays-arp-under-post\"><div class=\"ays-arp-under-post-header\"><div class=\"ays-arp-under-post-img-row\"><a href=\"https:\/\/seosmohub.com\/blog\/free-qr-code-generators\/\" class=\"ays-arp-under-post-link\"  ><img src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2026\/02\/best-qr-code-generator-768x432.jpg\" alt=\"Best QR Code Generator\" class=\"ays-arp-under-post-img\"><img src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2026\/02\/best-qr-code-generator-768x432.jpg\" alt=\"Best QR Code Generator\" class=\"ays-arp-under-post-img ays-arp-under-post-img-mobile\"><\/a><\/div><\/div><div class=\"ays-arp-under-post-content\"><div class=\"ays-arp-under-post-title-row\"><div class=\"ays-arp-under-post-title\"><a href=\"https:\/\/seosmohub.com\/blog\/free-qr-code-generators\/\" class=\"ays-arp-under-post-link\"  >10 Best Free QR Code Generator Options...<\/a><\/div><\/div><div class=\"ays-arp-under-post-excerpt-row\"><span class=\"ays-arp-under-post-excerpt\">Finding the right QR code generator can transform how your...<\/span><\/div><div class=\"ays-arp-under-post-read-more-row\"><a href=\"https:\/\/seosmohub.com\/blog\/free-qr-code-generators\/\" class=\"ays-arp-under-post-link\"  ><span class=\"ays-arp-under-post-read-more\">Read more<\/span><\/a><\/div><\/div><\/div><div class=\"ays-arp-under-post\"><div class=\"ays-arp-under-post-header\"><div class=\"ays-arp-under-post-img-row\"><a href=\"https:\/\/seosmohub.com\/blog\/moltbot-complete-guide-security-setup\/\" class=\"ays-arp-under-post-link\"  ><img src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2026\/01\/moltbot-setup-guide-768x432.jpg\" alt=\"moltbot setup guide\" class=\"ays-arp-under-post-img\"><img src=\"https:\/\/seosmohub.com\/blog\/wp-content\/uploads\/2026\/01\/moltbot-setup-guide-768x432.jpg\" alt=\"moltbot setup guide\" class=\"ays-arp-under-post-img ays-arp-under-post-img-mobile\"><\/a><\/div><\/div><div class=\"ays-arp-under-post-content\"><div class=\"ays-arp-under-post-title-row\"><div class=\"ays-arp-under-post-title\"><a href=\"https:\/\/seosmohub.com\/blog\/moltbot-complete-guide-security-setup\/\" class=\"ays-arp-under-post-link\"  >Moltbot Guide 2026: Setup, Security &amp; Safe...<\/a><\/div><\/div><div class=\"ays-arp-under-post-excerpt-row\"><span class=\"ays-arp-under-post-excerpt\">Breaking News: A personal AI assistant is breaking the internet...<\/span><\/div><div class=\"ays-arp-under-post-read-more-row\"><a href=\"https:\/\/seosmohub.com\/blog\/moltbot-complete-guide-security-setup\/\" class=\"ays-arp-under-post-link\"  ><span class=\"ays-arp-under-post-read-more\">Read more<\/span><\/a><\/div><\/div><\/div><\/div><style type=\"text\/css\">\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 {\n                width: 100%;\n                word-break: break-word;\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post {\n                width: calc(33% - 10px);\n                overflow: hidden;\n                padding: 10px;\n                border: none;\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-img-row .ays-arp-under-post-img {\n\t\t\t    object-fit: cover;\n\t\t\t    object-position:center center;\n                border: unset;\n                padding: unset;\n                border-radius: 0px;\n                height: 100%\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-posts-container-title,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-title  .ays-arp-under-post-link,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-excerpt-row {\n                color: #333333;\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4  .ays-arp-under-posts  .ays-arp-under-post {\n                background-color: rgba(255,255,255,0);\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4  .ays-arp-under-posts  .ays-arp-under-post:hover {\n                background-color: rgba(255,255,255,0);\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-title,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-link {\n                line-height: 1.5;\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-title a{\n                font-size: 16px;\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-date-author-row {\n                color: rgba(51,51,51,0.7);\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-posts a:active,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-posts a:hover,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-posts a:focus,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-posts a {\n                text-decoration: unset;\n                cursor: pointer;\n                outline: unset;\n                text-decoration-skip-ink: none;\n                background: unset;\n                opacity: 1;\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-img-row .ays-arp-under-post-img.ays-arp-under-post-img-mobile {\n                display: none;                    \n            }\n\n            @media screen and (max-width: 768px){\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-img-row .ays-arp-under-post-img {\n                    object-fit: cover;\n                    object-position:center center;\n                    border-radius: 0px;\n                    display: none;\n                }\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-img-row .ays-arp-under-post-img.ays-arp-under-post-img-mobile {\n                    display: inline-block;                    \n                }\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-title a{\n                    font-size: 16px;\n                }\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post {\n                    width: calc(33% - 10px);\n                    border: none;\n                }\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-posts-container-title,\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-title  .ays-arp-under-post-link,\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-excerpt-row {\n                    color: #333333;\n                }\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4 .ays-arp-under-post-date-author-row {\n                    color: rgba(51,51,51,0.7);\n                }\n\n                #ays-arp-under-posts-container-801-69f1c0b348ab4  .ays-arp-under-posts  .ays-arp-under-post {\n                    background-color: rgba(255,255,255,0);\n                }\n            }\n\n            \n            \/* Layout CSS *\/\n            #ays-arp-under-posts-container-801-69f1c0b348ab4.ays-arp-elegant-layout .ays-arp-under-post-date-author-row {\n                border-top: 0.5px solid rgba(51,51,51,0.4);\n            }\n\n            #ays-arp-under-posts-container-801-69f1c0b348ab4.ays-arp-elegant-layout .ays-arp-under-post-title a,\n            #ays-arp-under-posts-container-801-69f1c0b348ab4.ays-arp-elegant-layout .ays-arp-under-post-read-more-row a {\n                text-decoration: unset;\n            }\n            \n            <\/style><\/div>","protected":false},"excerpt":{"rendered":"<p>When you build reliable automations with n8n, you often need a place to store data \u2014 not only credentials and workflow metadata but also files, cached items, and lookup records. This guide shows practical, secure steps to connect n8n to Redis (fast key-value\/cache), Google Cloud Storage (GCS) for object files, and Supabase for app-friendly storage &#8230; <a title=\"n8n Redis Setup Guide: Configure Database Storage for Workflows\" class=\"read-more\" href=\"https:\/\/seosmohub.com\/blog\/n8n-storage-database-setup\/\" aria-label=\"Read more about n8n Redis Setup Guide: Configure Database Storage for Workflows\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":802,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"_acf_changed":false,"footnotes":""},"categories":[73],"tags":[],"class_list":["post-801","post","type-post","status-publish","format-aside","has-post-thumbnail","hentry","category-technology-trends","post_format-post-format-aside"],"acf":[],"_links":{"self":[{"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/posts\/801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/comments?post=801"}],"version-history":[{"count":15,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/posts\/801\/revisions"}],"predecessor-version":[{"id":1034,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/posts\/801\/revisions\/1034"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/media\/802"}],"wp:attachment":[{"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/media?parent=801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/categories?post=801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/seosmohub.com\/blog\/wp-json\/wp\/v2\/tags?post=801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}