{"id":18839,"date":"2025-10-09T12:07:59","date_gmt":"2025-10-09T09:07:59","guid":{"rendered":"https:\/\/unihost.com\/help\/?p=18839"},"modified":"2026-11-06T16:37:28","modified_gmt":"2026-11-06T13:37:28","slug":"installing-supabase-with-portainer","status":"publish","type":"post","link":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/","title":{"rendered":"How to Self-Host Supabase with Portainer"},"content":{"rendered":"<div class=\"unihost-kb-content\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">The fastest way to self-host Supabase on a VPS is to use the Unihost application template in Portainer. Open Templates, choose Application and select Supabase, then configure secure credentials and deploy the stack. Connect a domain through Nginx Proxy Manager or Traefik, enable HTTPS and back up PostgreSQL before using the deployment in production.<\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Compatibility: Linux with Docker Engine and Portainer; Supabase version follows the selected template. Documentation reviewed: November 6, 2026.<\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:17pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Requirements<\/h2>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">You need a Linux VPS or dedicated server with Docker and Portainer, a domain with DNS access, and Nginx Proxy Manager or Traefik for HTTPS. See <a href=\"https:\/\/unihost.com\/help\/what-is-portainer\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">What is Portainer?<\/a> and choose a suitable <a href=\"https:\/\/unihost.com\/vps\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Unihost VPS<\/a>.<\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Supabase lists these resources for running its main self-hosted components:<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:12px 0 18px;\">\n<thead>\n<tr>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Resource<\/th>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Minimum<\/th>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Recommended<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">CPU<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">2 cores<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">4+ cores<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">RAM<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">4 GB<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">8+ GB<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">SSD<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">40 GB<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">80+ GB<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:17pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Steps<\/h2>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Step 1. Select the Supabase template<\/h3>\n<p style=\"margin:12px 0 16px 0;\"><img decoding=\"async\" alt=\"Supabase application template in Portainer with configuration fields\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg\" style=\"max-width:100%;height:auto;display:block;border-radius:4px;\"\/ title=\"How to Self-Host Supabase with Portainer - Image 1\"><\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">In your Portainer instance, open <strong style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Templates \u2192 Application \u2192 Supabase<\/strong>. Select the Unihost template. This preserves the quick installation method used in the original guide.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Step 2. Set passwords and API keys<\/h3>\n<p style=\"margin:12px 0 16px 0;\"><img decoding=\"async\" alt=\"Supabase template fields for API keys and passwords in Portainer\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110943-1-1024x489.jpg\" style=\"max-width:100%;height:auto;display:block;border-radius:4px;\"\/ title=\"How to Self-Host Supabase with Portainer - Image 2\"><\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Fill in the security fields supplied by your template. Never deploy with example secrets. For legacy JWT-based templates, check the following variables:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">POSTGRES_PASSWORD=your_secure_password\r\nJWT_SECRET=your_secure_jwt_secret\r\nANON_KEY=generated_legacy_public_key\r\nSERVICE_ROLE_KEY=generated_legacy_private_key\r\nDASHBOARD_USERNAME=your_admin_username\r\nDASHBOARD_PASSWORD=your_secure_dashboard_password<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Current Supabase releases also use SUPABASE_PUBLISHABLE_KEY and SUPABASE_SECRET_KEY, with an asymmetric signing option. Use the variables supported by your specific template, not a mixture of incompatible key formats. The official Docker configuration includes scripts for generating secrets:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">sh utils\/generate-keys.sh\r\nsh utils\/add-new-auth-keys.sh<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">These scripts must be run from the official Supabase Docker configuration directory, if you use that configuration. Transfer the generated values to the matching Portainer template fields. Keep privileged keys private.<\/p>\n<p style=\"margin:12px 0 16px 0;\"><img decoding=\"async\" alt=\"Supabase documentation showing JWT API key generation\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_111024-1024x489.jpg\" style=\"max-width:100%;height:auto;display:block;border-radius:4px;\"\/ title=\"How to Self-Host Supabase with Portainer - Image 3\"><\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Step 3. Deploy and inspect the stack<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Deploy the application template. In <strong style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Stacks<\/strong> and <strong style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Containers<\/strong>, confirm that the Supabase services are running. From the Docker host, inspect containers and view logs for any failing service:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">docker ps\r\ndocker logs --tail 100 SUPABASE_CONTAINER<\/pre>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">What runs inside the stack?<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:12px 0 18px;\">\n<thead>\n<tr>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Component<\/th>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Studio<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Web dashboard<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">API gateway<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Routes incoming API requests (Envoy in recent releases; Kong in older templates)<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Auth<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Sign-up and login<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">PostgREST<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">REST API for PostgreSQL<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Realtime<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Database change events<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Storage<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">File storage API<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Postgres<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Database<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Step 4. Set a domain and HTTPS<\/h3>\n<p style=\"margin:12px 0 16px 0;\"><img decoding=\"async\" alt=\"Nginx Proxy Manager proxy host pointing to Supabase gateway\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_112348-1024x503.jpg\" style=\"max-width:100%;height:auto;display:block;border-radius:4px;\"\/ title=\"How to Self-Host Supabase with Portainer - Image 4\"><\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">To publish Supabase securely, create a DNS A record for supabase.example.com pointing to the VPS IP. Configure Nginx Proxy Manager (NPM) as the main reverse proxy:<\/p>\n<ol style=\"list-style:decimal outside;padding-left:27px;margin:8px 0 14px;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Open NPM \u2192 Hosts \u2192 Proxy Hosts \u2192 Add Proxy Host.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Enter supabase.example.com in Domain Names and select Scheme: http.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Set Forward Hostname \/ IP to the Supabase API Gateway service name reachable from NPM. Set Forward Port to the gateway port specified by the Unihost template.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Open SSL, choose Request a new SSL Certificate, accept the Let\u2019s Encrypt terms and enable Force SSL.<\/li>\n<li style=\"display:list-item;margin:5px 0;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55\">Save the proxy host and open https:\/\/supabase.example.com.<\/li>\n<\/ol>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">NPM and the Supabase API Gateway must share a reachable Docker network. Protect Studio with dashboard credentials and do not publish the PostgreSQL port. Configure public URLs to use HTTPS.<\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\"><a href=\"https:\/\/unihost.com\/help\/nginx-proxy-manager\/\">Full instructions for installing and accessing Nginx Proxy Manager<\/a><\/p>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 12px\">Traefik with Portainer is an alternative for HTTPS.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">supabase.example.com  A  192.0.2.10\r\n\r\nSUPABASE_PUBLIC_URL=https:\/\/supabase.example.com\r\nAPI_EXTERNAL_URL=https:\/\/supabase.example.com\/auth\/v1\r\nSITE_URL=https:\/\/app.example.com<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Set the public URLs in the template or its environment to the HTTPS address; SITE_URL refers to your client application rather than Studio. Protect Studio with dashboard credentials and do not expose PostgreSQL directly to the public internet.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Step 5. Back up PostgreSQL<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">A logical database backup can be created from the PostgreSQL container. Replace SUPABASE_DB_CONTAINER with the actual database container name from docker ps:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">docker exec SUPABASE_DB_CONTAINER pg_dump -U postgres -d postgres -Fc &gt; supabase-backup.dump<\/pre>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">The database dump does not include uploaded Storage files, container configuration or secrets. Back up those separately and test restoration.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Step 6. Update Supabase<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Before updating, back up PostgreSQL, Storage and configuration. Review the <a href=\"https:\/\/supabase.com\/docs\/guides\/self-hosting\/updating\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">official update guidance<\/a> and update the Unihost Portainer template as a compatible set of services. Do not change every image to latest independently. The official update.sh script applies to deployments using the official project layout, not necessarily to Portainer templates.<\/p>\n<p style=\"margin:12px 0 16px 0;\"><img decoding=\"async\" alt=\"Supabase Studio dashboard after deployment\" loading=\"lazy\" src=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_112429-1024x393.jpg\" style=\"max-width:100%;height:auto;display:block;border-radius:4px;\"\/ title=\"How to Self-Host Supabase with Portainer - Image 5\"><\/p>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:17pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Verify<\/h2>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Confirm that Studio opens through HTTPS, dashboard authentication works, the API responds, and all required containers remain healthy. A response from the gateway, even 401 for a protected route, confirms connectivity but does not prove all services are healthy.<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">docker ps\r\ncurl -I https:\/\/supabase.example.com\/<\/pre>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:17pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Troubleshooting<\/h2>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Studio does not open<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Check the DNS A record, TLS certificate, proxy target and Docker container status. Inspect logs for the API gateway and Studio.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Authentication or API key errors<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Confirm that the JWT secret and API keys match the template version. Check DASHBOARD_USERNAME and DASHBOARD_PASSWORD for Studio access. Never expose service-role or secret keys in a browser application.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Containers keep restarting<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Check free RAM and disk space, PostgreSQL connectivity and the affected container logs:<\/p>\n<pre style=\"font-family:Ubuntu,monospace;font-size:12pt;line-height:1.45;white-space:pre-wrap;overflow-x:auto;background:#f3f4f6;color:#20252b;padding:12px;border:1px solid #d9dee5;border-radius:5px;margin:10px 0 16px;\">docker logs --tail 100 SUPABASE_CONTAINER\r\nfree -h\r\ndf -h<\/pre>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:17pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">FAQ<\/h2>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Is self-hosted Supabase free?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">The open-source Supabase stack can run on your own server. VPS, storage, backups and administration still have costs.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">What server resources does Supabase need?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">For the full self-hosted stack, Supabase documents a minimum of 2 CPU cores, 4 GB RAM and 40 GB SSD, with 4 cores, 8 GB RAM and 80 GB SSD recommended.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">How do I update a self-hosted Supabase?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Back up all data, review the official release instructions, then update the template as a compatible stack in Portainer.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">How do I back up the database?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Use pg_dump for PostgreSQL and also back up Storage files, configuration and secrets. Test restoring the backups.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Can I use my own domain with HTTPS?<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Yes. Point DNS to the server and configure HTTPS through Nginx Proxy Manager or Traefik in front of the API gateway.<\/p>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Supabase Cloud or self-hosted?<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:12px 0 18px;\">\n<thead>\n<tr>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Feature<\/th>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Supabase Cloud<\/th>\n<th style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Self-hosted<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Hosting<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Managed service<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Your VPS or dedicated server<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Backups<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Managed options depend on plan<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">You configure and test them<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Server control<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Provider-managed infrastructure<\/td>\n<td style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;padding:8px;border:1px solid #d9dee5;text-align:left;vertical-align:top;\">Full OS and service control<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:17pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Related Articles<\/h2>\n<ul style=\"list-style:disc outside;padding-left:25px;margin:8px 0 15px;\">\n<li style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;display:list-item;margin:4px 0;\"><a href=\"https:\/\/unihost.com\/help\/what-is-portainer\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Portainer<\/a><\/li>\n<li style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;display:list-item;margin:4px 0;\"><a href=\"https:\/\/unihost.com\/help\/installing-traefik-reverse-proxy-with-portainer\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Traefik with Portainer<\/a><\/li>\n<li style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;display:list-item;margin:4px 0;\"><a href=\"https:\/\/unihost.com\/help\/installing-mariadb-with-portainer\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">MariaDB with Portainer<\/a><\/li>\n<li style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;display:list-item;margin:4px 0;\"><a href=\"https:\/\/supabase.com\/docs\/guides\/self-hosting\/docker\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">Official Supabase Docker documentation<\/a><\/li>\n<li style=\"display:list-item;font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:5px 0\"><a href=\"https:\/\/unihost.com\/help\/nginx-proxy-manager\/\">Nginx Proxy Manager setup<\/a><\/li>\n<\/ul>\n<h3 style=\"font-family:Ubuntu,Arial,sans-serif;font-size:14pt;line-height:1.35;margin:20px 0 10px;font-weight:700;\">Host Supabase with Unihost<\/h3>\n<p style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;margin:0 0 10px;\">Deploy a database-backed application using ready-made Portainer templates or choose a VPS sized for your workload.<\/p>\n<ul style=\"list-style:disc outside;padding-left:25px;margin:8px 0 15px;\">\n<li style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;display:list-item;margin:4px 0;\"><a href=\"https:\/\/unihost.com\/solutions\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Ready-to-deploy solutions<\/a><\/li>\n<li style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;display:list-item;margin:4px 0;\"><a href=\"https:\/\/unihost.com\/vps\/\" style=\"font-family:Ubuntu,Arial,sans-serif;font-size:12pt;line-height:1.55;\">Unihost VPS<\/a><\/li>\n<\/ul>\n<\/div>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"headline\":\"How to Self-Host Supabase with Portainer\",\"description\":\"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.\",\"inLanguage\":\"en\",\"author\":{\"@type\":\"Organization\",\"name\":\"Unihost\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Unihost\",\"url\":\"https:\/\/unihost.com\/\"},\"dateModified\":\"2026-11-06\"},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Is self-hosted Supabase free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The open-source Supabase stack can run on your own server. VPS, storage, backups and administration still have costs.\"}},{\"@type\":\"Question\",\"name\":\"What server resources does Supabase need?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For the full self-hosted stack, Supabase documents a minimum of 2 CPU cores, 4 GB RAM and 40 GB SSD, with 4 cores, 8 GB RAM and 80 GB SSD recommended.\"}},{\"@type\":\"Question\",\"name\":\"How do I update a self-hosted Supabase?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Back up all data, review the official release instructions, then update the template as a compatible stack in Portainer.\"}},{\"@type\":\"Question\",\"name\":\"How do I back up the database?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use pg_dump for PostgreSQL and also back up Storage files, configuration and secrets. Test restoring the backups.\"}},{\"@type\":\"Question\",\"name\":\"Can I use my own domain with HTTPS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Point DNS to the server and configure HTTPS through Nginx Proxy Manager or Traefik in front of the API gateway.\"}}]}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The fastest way to self-host Supabase on a VPS is to use the Unihost application template in Portainer. Open Templates, choose Application and select Supabase, then configure secure credentials and deploy the stack. Connect a domain through Nginx Proxy Manager or Traefik, enable HTTPS and back up PostgreSQL before using the deployment in production. Compatibility: [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[158,595,564,167,6],"tags":[1058,274,999,993,1057],"class_list":["post-18839","post","type-post","status-publish","format-standard","hentry","category-dedicated-servers","category-kvm-en","category-cloud-vps","category-05-control-panels","category-vps","tag-automation","tag-database","tag-npm-2","tag-portainer","tag-supabase"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Self-Host Supabase with Docker and Portainer (Step-by-Step) | Unihost<\/title>\n<meta name=\"description\" content=\"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Self-Host Supabase with Docker and Portainer (Step-by-Step) | Unihost\" \/>\n<meta property=\"og:description\" content=\"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/\" \/>\n<meta property=\"og:site_name\" content=\"Unihost.FAQ\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unihost\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-09T09:07:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-06T13:37:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg\" \/>\n<meta name=\"author\" content=\"Unihost Support\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@unihost\" \/>\n<meta name=\"twitter:site\" content=\"@unihost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Unihost Support\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/\"},\"author\":{\"name\":\"Unihost Support\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/person\\\/bb5ae95f38577c920e6a7507888b715a\"},\"headline\":\"How to Self-Host Supabase with Portainer\",\"datePublished\":\"2025-10-09T09:07:59+00:00\",\"dateModified\":\"2026-11-06T13:37:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/\"},\"wordCount\":963,\"publisher\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot_NL_20251003_110703-1-1024x489.jpg\",\"keywords\":[\"Automation\",\"Database\",\"NPM\",\"Portainer\",\"Supabase\"],\"articleSection\":[\"02. Dedicated servers\",\"03. KVM VPS\",\"04. Managed Cloud VPS\",\"05. Control panels\",\"Virtual Private Server (VPS)\"],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/\",\"name\":\"Self-Host Supabase with Docker and Portainer (Step-by-Step) | Unihost\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot_NL_20251003_110703-1-1024x489.jpg\",\"datePublished\":\"2025-10-09T09:07:59+00:00\",\"dateModified\":\"2026-11-06T13:37:28+00:00\",\"description\":\"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#primaryimage\",\"url\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot_NL_20251003_110703-1-1024x489.jpg\",\"contentUrl\":\"https:\\\/\\\/minio2.unihost.com\\\/wp-help2\\\/2025\\\/10\\\/Screenshot_NL_20251003_110703-1-1024x489.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/installing-supabase-with-portainer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Unihost\",\"item\":\"https:\\\/\\\/unihost.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Help\",\"item\":\"https:\\\/\\\/unihost.com\\\/help\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Self-Host Supabase with Portainer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#website\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/\",\"name\":\"Unihost.FAQ\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/unihost.com\\\/help\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#organization\",\"name\":\"Unihost\",\"alternateName\":\"Unihost\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/minio.php?2026\\\/01\\\/minio.png\",\"contentUrl\":\"https:\\\/\\\/unihost.com\\\/help\\\/minio.php?2026\\\/01\\\/minio.png\",\"width\":300,\"height\":300,\"caption\":\"Unihost\"},\"image\":{\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/unihost\\\/\",\"https:\\\/\\\/x.com\\\/unihost\",\"https:\\\/\\\/www.instagram.com\\\/unihost\\\/?hl=en\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/unihost-com\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCITKsxMDnslQY8brN3advgw\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/unihost.com\\\/help\\\/#\\\/schema\\\/person\\\/bb5ae95f38577c920e6a7507888b715a\",\"name\":\"Unihost Support\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g\",\"caption\":\"Unihost Support\"},\"sameAs\":[\"https:\\\/\\\/unihost.com\\\/\"],\"url\":\"https:\\\/\\\/unihost.com\\\/help\\\/author\\\/support\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Self-Host Supabase with Docker and Portainer (Step-by-Step) | Unihost","description":"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/","og_locale":"en_US","og_type":"article","og_title":"Self-Host Supabase with Docker and Portainer (Step-by-Step) | Unihost","og_description":"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.","og_url":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/","og_site_name":"Unihost.FAQ","article_publisher":"https:\/\/www.facebook.com\/unihost\/","article_published_time":"2025-10-09T09:07:59+00:00","article_modified_time":"2026-11-06T13:37:28+00:00","og_image":[{"url":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg","type":"","width":"","height":""}],"author":"Unihost Support","twitter_card":"summary_large_image","twitter_creator":"@unihost","twitter_site":"@unihost","twitter_misc":{"Written by":"Unihost Support","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#article","isPartOf":{"@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/"},"author":{"name":"Unihost Support","@id":"https:\/\/unihost.com\/help\/#\/schema\/person\/bb5ae95f38577c920e6a7507888b715a"},"headline":"How to Self-Host Supabase with Portainer","datePublished":"2025-10-09T09:07:59+00:00","dateModified":"2026-11-06T13:37:28+00:00","mainEntityOfPage":{"@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/"},"wordCount":963,"publisher":{"@id":"https:\/\/unihost.com\/help\/#organization"},"image":{"@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#primaryimage"},"thumbnailUrl":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg","keywords":["Automation","Database","NPM","Portainer","Supabase"],"articleSection":["02. Dedicated servers","03. KVM VPS","04. Managed Cloud VPS","05. Control panels","Virtual Private Server (VPS)"],"inLanguage":"en"},{"@type":"WebPage","@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/","url":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/","name":"Self-Host Supabase with Docker and Portainer (Step-by-Step) | Unihost","isPartOf":{"@id":"https:\/\/unihost.com\/help\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#primaryimage"},"image":{"@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#primaryimage"},"thumbnailUrl":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg","datePublished":"2025-10-09T09:07:59+00:00","dateModified":"2026-11-06T13:37:28+00:00","description":"Deploy self-hosted Supabase on your own VPS with Portainer: requirements, environment variables, secrets, Studio access, HTTPS with Traefik and updates.","breadcrumb":{"@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#primaryimage","url":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg","contentUrl":"https:\/\/minio2.unihost.com\/wp-help2\/2025\/10\/Screenshot_NL_20251003_110703-1-1024x489.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/unihost.com\/help\/installing-supabase-with-portainer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Unihost","item":"https:\/\/unihost.com\/"},{"@type":"ListItem","position":2,"name":"Help","item":"https:\/\/unihost.com\/help\/"},{"@type":"ListItem","position":3,"name":"How to Self-Host Supabase with Portainer"}]},{"@type":"WebSite","@id":"https:\/\/unihost.com\/help\/#website","url":"https:\/\/unihost.com\/help\/","name":"Unihost.FAQ","description":"","publisher":{"@id":"https:\/\/unihost.com\/help\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/unihost.com\/help\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/unihost.com\/help\/#organization","name":"Unihost","alternateName":"Unihost","url":"https:\/\/unihost.com\/help\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/unihost.com\/help\/#\/schema\/logo\/image\/","url":"https:\/\/unihost.com\/help\/minio.php?2026\/01\/minio.png","contentUrl":"https:\/\/unihost.com\/help\/minio.php?2026\/01\/minio.png","width":300,"height":300,"caption":"Unihost"},"image":{"@id":"https:\/\/unihost.com\/help\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/unihost\/","https:\/\/x.com\/unihost","https:\/\/www.instagram.com\/unihost\/?hl=en","https:\/\/www.linkedin.com\/company\/unihost-com","https:\/\/www.youtube.com\/channel\/UCITKsxMDnslQY8brN3advgw"]},{"@type":"Person","@id":"https:\/\/unihost.com\/help\/#\/schema\/person\/bb5ae95f38577c920e6a7507888b715a","name":"Unihost Support","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/secure.gravatar.com\/avatar\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a0c9db17c2a0d93e8a0d5ac123f8c5db750ad4d3d5657369c0c4e480f5af77b8?s=96&d=mm&r=g","caption":"Unihost Support"},"sameAs":["https:\/\/unihost.com\/"],"url":"https:\/\/unihost.com\/help\/author\/support\/"}]}},"_links":{"self":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts\/18839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/comments?post=18839"}],"version-history":[{"count":13,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts\/18839\/revisions"}],"predecessor-version":[{"id":20544,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/posts\/18839\/revisions\/20544"}],"wp:attachment":[{"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/media?parent=18839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/categories?post=18839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unihost.com\/help\/wp-json\/wp\/v2\/tags?post=18839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}