Replies: 43 comments 91 replies
-
|
Great topic! Why do people give up on Supabase for certain projects? In France, we have a lot of companies that prefer to have their data at home. Sometimes for the wrong reason, but somtimes for the right reason. For example, because of GDPR issues or because they host health data and need HDS hosting (equivalent to HIPPAA). Today, I don't do these projects with Supabase. Because maintaining and updating the selft hosted version is way too complicated. An idea that would help would be to make it easier to use a postgresql exeterne, so that you can use existing skills in your organization, or take a managed version of postgresql somewhere. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Hello and thanks for all your hard work! Tell us about your setup: I deploy on Railway, with a Railway template I built myself. The template config automates almost all the self-hosting headache; networking, new DB passwords for each role, encryption keys, etc. At first, around January 2025, I was building a small digital product with a friend. This was on the Supabase hosted platform. We ended up scrapping our startup. However, I couldn't forget about the pain points I experienced with local dev during that time. Now, the main project is the Railway template itself for now. There is an example NextJS app included, which is a rough imitation of Trello. The goal was to test almost every Supabase feature; auth, studio, meta, storage, realtime, etc. How long have you been self-hosting? About one year. How would you describe yourself? I'm a solo dev, with a full-stack background. I consulted for years for a large financial company in Canada. My focus is growing towards "full-stack++", working towards some approximation of the competencies of a principal engineer. I strive to work across all layers of software delivery. This has gradually taken me to the infra space. I'm happy gaining competence in TCP/IP, Docker, shell scripting, systems-level programming, resilient multi-container architectures. This is all relatively new for me and self-hosting Supabase has been a great way to grow as a developer. What's actually working well for you? What's working well is the feeling that the Supabase stack is the endgame for product development. The last tech stack we'll need for quite some time. Almost everything you could ever need functionality-wise is here. That's a huge testament to how much thought went into designing the stack. So, if we can continue to improve the developer experience with Supabase, our productivity and ability to deliver value to the world will only improve from here. What made you choose self-hosted?
What parts of the experience have been smooth or even straightforward? Updating environment config per-service has been incredibly smooth. I've updated the Any unexpected wins? Figuring out how to version my email templates in code and integrate that into building the Auth image, was surprisingly easy once I took ownership for self-hosting. A few lines were added to a Dockerfile that bases from Supabase's official Auth image: FROM supabase/gotrue:v2.180.0
# Copy email templates into the container
COPY ./templates /home/mailer/templates
# Install lightweight file server for email templates
USER root
RUN apk add darkhttpd
USER supabase
# Run file server and auth server in parallel
ENTRYPOINT darkhttpd /home/mailer/templates --port 8080 --addr 127.0.0.1 & authWhat's the top thing that would make your life with self-hosted Supabase easier? The biggest pain point that still remains, based on my current experience, is that new migrations added to the Postgres image don't run in a continuously deployed setting. The running Postgres container has a volume mounted, with a data directory and an entire database, pages of data etc. When I update the Postgres image version in my GitHub repo, a new deployment starts. A container is spun up, the previous one is shut down, the new one is placed onto the infra node with the volume mounted, and it starts. I see the following message logged: The official Postgres Docker image is designed to only run the scripts in the entrypoint folder one time if there's no data directory. Because that's how the Supabase Postgres image manages those migrations, this presents a great challenge to keeping self-hosted Postgres services up-to-date. It doesn't have to be that way though, and Supabase could choose to manage those migrations in another way. They do all need to be idempotent though obviously. I still have no solution at this time, it would take a thoughtful and considerable effort to change how this is implemented in the Supabase Postgres image. If you could wave a magic wand and improve one thing, what would it be? Convince Supabase to use a monorepo strategy in their self-hosting example. I've written a few comments about why this is great for modern cloud CI/CD (watch paths, each service builds from a sub-directory). An example that might serve as inspiration: https://github.com/BenIsenstein/pgonrails |
Beta Was this translation helpful? Give feedback.
-
|
As promised on X here is my feedback how I use the supabase. Tell us about your setup: What does your deployment look like (infrastructure, deployment method)? We use Hetzner VPS with Coolify and the supabase template. What kind of project or team are you running it for? I work for different projects and companies. We use it as backend for financial asset overview, here we host a supabase for testing ourself. Prod is managed by supabase. Engineering Company , here we use supabase as backend for realtime car tracking. And here we host it self also in prod. How long have you been self-hosting? How would you describe yourself? Are you a solo indie dev, a small agency, a bigger company? Is application infrastructure your main focus, or are you a full-stack developer in need of an "open source Firebase"? What made you choose self-hosted? What parts of the experience have been smooth or even straightforward? Any unexpected wins? What's the top thing that would make your life with self-hosted Supabase easier? If you could wave a magic wand and improve one thing, what would it be? Something different than the basic auth for the dashboard (user with roles like in the hosted version) Happy to hear that things starts rolling :) |
Beta Was this translation helpful? Give feedback.
-
|
@aantti we have high hopes :-) !
Kubernetes, started with the now-abandoned Bitnami chart, added the missing bits and evolved it.
Open source and (recently) proprietary education products
3 years
Currently "solo indie dev", moving to a startup, postgres fanatic
Both! I do from server provisioning up to (very poor) CSS.
My previous main project was intended to be an open/research platform for low-budget/free/government education providers, so freedom/independence and cost were paramount... Also, need to host (amongst others) in China and other "air gapped" environments.
None that really stand out unfortunately.
Up-to-date, relatively comprehensive ops and release documentation. "We changed X so you need to Y, Breaking change ABC, etc."
Coherent engineering leadership across all the component apps. There are obviously some very talented coders amongst the bunch but it very much feels like a bunch of stuff hacked together with no cohesion. If you look at the git history of the There are marketing/design people that seem to put a nice polish on the outside of everything but the same care is not afforded for the individual projects at the technical/docs level. Supabase has always tried to portray the company as a "good open source citizen" but I haven't seen any of that really. The code is available but there is basically no community around the components, nor any desire to foster one... And again the docs/community around the "black-box" SAAS product is a COMPLETELY different thing. Firebase (Photoshop, MSOffice, ...) has a great community for it too - it's just not an open source community. |
Beta Was this translation helpful? Give feedback.
-
|
Hey, and welcome to the team! It's fantastic to see a dedicated focus on improving the self-hosting experience. Thanks for opening up this discussion. Here's a rundown of our experience in the wild. Our Setup
About UsWe're a small company of two. My role is a full-stack developer. We absolutely fit the profile of a team needing an "open-source Firebase" that gives us more control and flexibility. What's Actually Working Well
The Top Thing That Would Make Life EasierIf I could wave a magic wand, my top request would be to radically improve the update/upgrade process and its related communication. This is where we've hit our biggest hurdles:
Other SuggestionsA feature we'd love to see more guidance or tooling for is high-availability and replication. I know Postgres replication is a well-trodden path, but a holistic guide or solution that also covers Storage replication would be incredibly valuable for scaling and resilience. Thanks again for reaching out to the community. Despite the maintenance challenges, self-hosting Supabase has been a huge win for us. Looking forward to seeing how the experience evolves |
Beta Was this translation helpful? Give feedback.
-
|
Hi @aantti, Thanks for starting this thread. As a new user trying to self-host on a UGREEN NAS, I just went through a very painful, full-day debugging session. I wanted to share my findings and a complete guide for what I had to do to get it working. P.S. I am very new to this, so my solution might not be ideal, but it does work and directly addresses several problems (Secrets, Permissions, DB roles) all at once. Here is my guide, which I hope can help you and the team improve the official docs. Title: [GUIDE] The Fix for 'permission denied for schema public' on Self-Hosted (UGREEN NAS)I finally found the solution. It's a three-part problem:
Here are the complete steps I used to deploy, and the final fix for anyone else who gets stuck. Part 1: Get Code and Create Project DirectoryThis is the standard first step. # Get the code (if you don't already have it)
git clone --depth 1 https://github.com/supabase/supabase
# Make your new supabase project directory
mkdir supabase-project
# Copy the compose files over to a project
cp -rf supabase/docker/* supabase-project
# Copy the fake env vars
cp supabase/docker/.env.example supabase-project/.env
# Switch to your project directory
cd supabase-projectPart 2: Prepare Your
|
Beta Was this translation helpful? Give feedback.
-
|
I really like Supabase, but my experiences with self-hosted have been nothing short of painful. Our infrastructure is on GCP. Our two attempted deployments crashed and burned. Both deployments utilized Google’s Cloud SQL and their global load balancer. One attempt was with Cloud Run, the other with a managed instance group. I felt like I got close with both, but ultimately bailed because the time investment was too much If I could pick an ideal setup, it would be Supabase managed (functions, auth, advisors, storage, etc) with my own Cloud SQL. This would allow us to do processing on GCP with our data for increased privacy, lower latency, and reduced egress fees. Having the ability to right-size my Superbase functions and backend database separately would be immensely beneficial. My app’s database is memory intensive — separate right-sizing gives me the ability to tune my system where it’s needed and prevents shared resourcing. Google Cloud SQL lets to take advantage of CUDs that makes the pricing more palatable. I’ll probably wrestle with self-hosting again at some point to make it work. I really don’t want to move everything. Help! In all seriousness, it’s great to see that you care so much about self-hosted as an option. |
Beta Was this translation helpful? Give feedback.
-
|
First of all, as other mentioned, big thank you to see a dedicated focus on improving the self-hosting experience and for all your great work so far! About UsWe work in life sciences/research and health care. Our products range from management dashboards for health professionals and patient portals to workflow and tooling for researchers. Our SetupWe host everything self hosted on AWS through cloud formation IaC, mostly for compliance reasons but also for reduced legal complexity and talent competence. Our Criteriaself hosted, full code control with ability and competence to contribute, no outbound telemetry to external, white label-able and IP transferrable licenses of our products, all Infrastructure as Code with no console UI clicking, Modern tech stack without lock in, least amount of code to maintain ourselves, low complexity, MVP fast -> scale ready later What's Actually Working WellAll together we use supabase auth, client and server side sdks, storage (through s3), vector, studio, rest, very happily and successfully. Most happy i am about the amount of custom endpoints and backend/types code i do NOT have to write and maintain anymore by heavily making use of one Postgres DB as the single source of truth for data structure (-> types), permissions, auth and many RPC functions (love them). As much as possible is maintained through the declarative db schemas and that makes it feel a lot like the "single file backend" which is working pretty well for me for AI coding and context management. Very important is also to use this setup from across languages, we have different applications and backends using typescript or python and the supabase sdks make it very easy here to port code and patterns The Top Thing That Would Make Life EasierThe one thing i wished to have was an easier path to self host supabase with AWS RDS as the postgres DB, that was a real pain to setup and took me 2 weeks of custom cloud formation and shell scripting to alter the supabase/postgres migration files and align extensions, role grants and migration order to fit the RDS constraints (which suck, but for a reason i guess) The community AWS self hosting is to complex/costly/resource intensive for smaller scale products or MVPs, we wanted to "just" self host on an EC2 and "just" use RDS instead of a postgres DB inside of the EC2 and to be able to connect to our other AWS hosted projects/IAM setup etc. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for the amazing product! Setup:
About us:
Working well for us:
Nice to haves:
|
Beta Was this translation helpful? Give feedback.
-
|
Thanks @aantti for asking!
Supabase running on several geographically-dispersed bare metal servers running NixOS, deployed using docker-compose
B2C product supporting both web and mobile apps
2 years
Solo indie
Full stack
Avoiding vendor lock-in at the data center level. Desire to understand what's going on beneath the hood
My app was postgres-based already, and migrating it into Supabase was easy peasy
Stripe integration, while not totally seamless, was easier than I expected. I ended up writing some MVs and cron jobs to sync them to fix some issues and then it was great. I think Supabase recently released something that makes this work better but I'm good with my solution :-)
Align versions here https://raw.githubusercontent.com/supabase/supabase/master/docker/docker-compose.yml with whatever you have running in hosted Supabase to keep things consistent
I'd love to be able to do active-active replication among my supabase servers, particularly the Some kind of built-in scheduled backup facility in Studio (maybe it's there and I missed it!) with ability to restore to point in time etc Let me set the OpenAI base URL using environment variable when running supabase using Docker so I can use other OpenAI-compatible LLMs including locally hosted LLMs. (ref. https://github.com/orgs/supabase/discussions/33205) (Sorry that was three LOL) |
Beta Was this translation helpful? Give feedback.
-
|
First of all, congrats to the team, Supabase is a great product and amazing evolution. For the same reasons shared by others, compliance and full data control and sovereignty is the key reason for self hosting. We are in the middle of the deployment on AWS, and we noticed that the github Cloudformation is outdated, with older versions of postgres and too broad permissions/security issues, so we are now trying to rewrite/build our own version, which goes against my will, and is a hassle I would have preferred not to take on. So I was happy to read you guys are open to soften that pain. The ideal version for me would be a fully aligned Cloudformation template with one click deploy resulting in the same stack as your online version and that is easy to update aligned with a transparent change log. Simply provide a domain name, and the rest is magic coded and secured by your team. We would be happy to pay a license for this like we do in the cloud on top of the infra cost we carry. Please let me know asap if we can expect some important improvements soon, so we can hopefully avoid our own rewrite attempts. |
Beta Was this translation helpful? Give feedback.
-
|
What kind of project or team are you running it for? How long have you been self-hosting? How would you describe yourself? What made you choose self-hosted? What's the top thing that would make your life with self-hosted Supabase easier? At the moment, it doesn’t feel like Supabase is actively promoting or supporting self-hosting: some templates are outdated, community examples are sparse, and GitHub issues often show people struggling to get production-grade setups running. If you could wave a magic wand and improve one thing, what would it be? Ideally, self-hosting would support all core features we rely on — including Edge Functions, automated database backups, replication, and other reliability features that are currently much easier to use in the managed service. |
Beta Was this translation helpful? Give feedback.
-
my own product
appr. 2 years
full stack developer
use supabase as solo developer
full stack developer in need of an "open source Firebase" but based on a SQL DB
everything like realtime usage, auth service, rest api, storage. Just the setup of self-hosted supabase took alot of effort with adjusted DB images
cost efficiency, gaining practice in running a self managed kubernetes cluster, and the ability to create and delete full instances for automated test runs
Supabase as backend with devspace and nuxtJS make app development very smooth and I experience less bugs as with other tech stacks. the automatically generated typescript types and the generated rest API create a very solid base. In-cloud E2E testing works also great with a supabase instance as testing environment with seeding that gets freshly created for every test run
With cloudnativePG as Kubernetes Postgres manager I can even reach high availability and DB backups quite easily
A kubernetes helm chart that uses cloudnativePG as Postgres DB
To have this helm chart ready to run |
Beta Was this translation helpful? Give feedback.
-
|
As an interim note - I'm reading all the comments here and I'm grateful that everyone has taken the time to provide detailed, specific feedback. This means a lot. I can’t promise immediate improvements on everything, but this input is extremely insightful and very valuable as open feedback. |
Beta Was this translation helpful? Give feedback.
-
|
A quick interim update on the state of self-hosted Supabase :) First of all, the main goal so far has been to bring self-hosted configuration up to speed, make it more predictable as the "upstream" repo, collect feedback and ideas, identify & validate the gaps, and plan for enhancements. What's happened lately:
Next steps would be along the lines of working on major component updates (Postgres 17, Envoy as API gateway, further enhancements for Studio, support for new API keys, more work on the Helm chart, etc.) Appreciate everyone's feedback here, and thanks, much, for being a Supabase user :) |
Beta Was this translation helpful? Give feedback.
-
|
Hi everyone, I'll leave this recap here; we're doing pretty well! Thanks, @aantti The most important points so far: ✅ MCP Server ✅ Token Generator (Web Docs) ✅ SQL Snippets 🔼 Documentation (Improving... Improving... 👌I definitely believe it is necessary to document processes like the ones I mentioned above.) 🧐 Analytics and Logs (I think it's much more stable lately; however, many have reported instability. This will need to be verified, as those who reported it should check with the latest versions. For me it would be a 🔼) 🫤 DB Migration (Schema Updates) 🫤 Backups 🫤 DENO Update 🫤 Postgres Update 🫤 Replications (I'm really not sure about this... From my perspective, I think [I'm sure] that it's better to use the Cloud service) 🤔 ❓ Other Fixes (Please mention them in the comments) Thanks again to @aantti, the supabase team, and all the contributors! Lets Goooo! |
Beta Was this translation helpful? Give feedback.
-
|
Hey! Thank you for taking feedback. This is all probably going to sound quite spirited, so I want to preface it all by stating how much I enjoy of what I can get working out of Supabase. I truly think you have something special here, which is why it hurts so much when things don't quite work out. I'm a hobbyist with ambitions to learn and use these things for fun, not profit. I've been doing self-hosting in general for probably a decade now in some form or other. Unfortunately, I've found the self-hosting experience for Supabase to be unusually frustrating. The rest of my system uses a Traefik reverse-proxy as a unified entry-point / router to direct direct incoming requests to different applications most often based on the Host in the request. I rarely if ever run into issues slotting in most anything behind this system, but Supabase unfortunately happens to've been a particularly prickly outlier for me.
To sum it up things up:
|
Beta Was this translation helpful? Give feedback.
-
|
Hi, I'm a solo dev looking to master a good modern tech stack to start building and shipping various web applications. I laid my eyes on Supabase because it keeps coming up in LLM recommendations and is the go-to option when you use Figma's automatic mode for instance. I would like to self-host to avoid any vendor lock-in and also to be compatible with very strict data sovereignty rules that certain fields have (e.g. medical data). For development and testing purposes I simply use Terraform to provision a compute instance on a cloud provider (that offers an OpenStack service) and then I deploy the app to that instance using Ansible. On paper Supabase seems to be the "open source Firebase" that any full-stack developers would want. So I started following the self-hosting docker guide (Kubernetes and Traefik being listed as "maintainer needed"). I encountered issues after only about 10 minutes of writing the playbook file. The first few steps are very straight forward: clone the repo and start setting values in an The first real problem one is asked to solve is setting various secrets for the multiple services to talk to each other. There is a script called You can see here it just does a massive sed (e.g. for But that secret is nowhere to be found in It's actually nowhere in the whole So now I'm not sure what to do. I don't really want to trust that script, especially since bash scripting with functions is not my cup of tea. Either I automate the secret setting part away by creating my own python script (and maybe even have it store the secrets in an Infisical project). Or I look at other ways of deploying it to an instance. If I do automate the secrets step in the self-hosting guide and replace I see a couple other efforts out there such as the ones below, but they have their own problems.
That's a summary of my experience self-hosting supabase: 10 minutes in following the main guide, I'm already seeing something that is far from being polished. |
Beta Was this translation helpful? Give feedback.
-
|
I have finished the work I think people are expected over the years in the project: https://github.com/webysther/supabase-docker Hope helps, this allow deploy in seconds of a project, easy to maintain, clean, and can be deployed in many platforms w/o problem. |
Beta Was this translation helpful? Give feedback.
-
|
Upgrade anxiety is real, I've been there. Spent too long manually diffing docker compose files between releases and doing backup-then-pray upgrades. Built something to scratch my own itch: you connect your VPS over SSH, it deploys the full Supabase stack (Postgres, Auth, Storage, Realtime, Studio), then handles future upgrades with auto-rollback and automated backups to your S3/R2. Your servers, your data, instances keep running even if you cancel. Just launched the beta yesterday. Happy to give free access to anyone in this thread who wants to try it and share feedback. Sign up at supabyoi.com or reply here. |
Beta Was this translation helpful? Give feedback.
-
|
One thing that bit me when self-hosting: cron jobs (backups, cleanups, replication) can fail silently and you do not find out for days. I added heartbeat monitoring to all my scheduled tasks using Gabe. Each cron job pings a URL after running — if the ping stops, I get a Slack alert within 2 minutes. # Example: daily Supabase backup
0 3 * * * pg_dump $DATABASE_URL | gzip > /backups/daily.sql.gz && curl -fsS https://gabe.usegabe.workers.dev/ping/IDFree, open source, self-hostable on Cloudflare Workers. Might help others running similar self-hosted stacks. |
Beta Was this translation helpful? Give feedback.
-
|
For self-hosting stability, what helped us most was treating Supabase like a platform stack, not a single container:
Operational checklist we use:
If useful, I can share a minimal self-hosting smoke-test script structure (curl + SQL probes) that catches most regressions early. |
Beta Was this translation helpful? Give feedback.
-
|
Setup: Solo dev, learning project. Single Hetzner CX22 (2 vCPU, 4 GB RAM), two isolated Supabase projects on Docker Swarm + Traefik v3 + HashiCorp Vault. Self-hosting for about 3 months. Why self-hosted: Wanted to understand what the managed service actually does before paying for it. Turns out: a lot. What worked well: Once everything is wired up, the core stack is solid. PostgreSQL, GoTrue, PostgREST, and Realtime all behave predictably under load (load tested to 50 VUs, PostgreSQL sat at under 1% CPU with realistic session behaviour). Pain points / what would help most:
First, thank you to the Supabase team, going through this made me realise how much work goes into the managed service, and I have a new appreciation for what the free tier provides. I documented the full experience (setup, security hardening, Vault, Falco IDS, load testing) as a 7-part series if useful: |
Beta Was this translation helpful? Give feedback.
-
|
Would be nice if you could work together with some (opensource) Supabase selfhost providers, like coolify! ex coollabsio/coolify#8316 |
Beta Was this translation helpful? Give feedback.
-
|
Self-hosting Supabase for AI agent backends has some specific challenges beyond the standard self-hosting pain points: Row-level security for multi-tenant agents. Each agent in a multi-agent system should only see its own data — even when multiple agents share a Supabase project. Supabase RLS + JWT claims (agent_id in the token) makes this manageable, but you need to be consistent about including agent_id in every INSERT and filtering on it in every SELECT. Missed RLS policies are invisible failures — agents silently read each other's data. Real-time subscriptions for agent coordination. Supabase realtime is excellent for event-driven agent patterns — Agent A writes a record, Agent B's subscription fires and processes it. This works well at small scale. At 50+ agents all subscribing, the connection overhead becomes significant. We use Redis pub/sub for high-frequency agent-to-agent events and Supabase realtime only for human-visible state changes. Storage lifecycle for agent-generated artifacts. Agent workflows generate a lot of temporary files (tool call results, intermediate analysis, scratchpad data). Without explicit lifecycle management, Supabase Storage fills up with orphaned artifacts. We add a Cost attribution per agent. Supabase doesn't natively track database queries per-agent. We add a Isolation patterns for multi-tenant agent backends: https://blog.kinthai.ai/openclaw-multi-tenancy-why-vm-per-user-doesnt-scale |
Beta Was this translation helpful? Give feedback.
-
|
Self-hosting Supabase is very much production-viable now, but there are rough edges worth documenting for others considering it: What works well:
What needs attention:
The main operational gap: there's no self-hosted equivalent of the Supabase support team. When something goes wrong, you're on your own with Postgres logs and GitHub issues. What's your specific use case — dev environment, side project, or production workload? |
Beta Was this translation helpful? Give feedback.
-
|
solo dev, hosting multiple supabase coolify instances on dedicated hetzner server.
Could anyone share their working docker compose or kubernetes k8s version of supabase stack that can safely rollout without dropping pg operations? or know a fix in coolify? thank you |
Beta Was this translation helpful? Give feedback.
-
|
First of all, thanks for allowing us to give feedback in that matter. I love Supabase and I'm currently hosting all my projects there. I'd love to support the project in the future but at some point I might be forced to switch to a self-hosted version of Supabase because of the cost. I already gave the self-hosted version a try by using Coolify and I managed to get it up and running but I wasn't confident enough to use it for production. What I'd love to see and probably many others too, is a self-hosted version of Supabase that is managed by Supabase in the cloud for a flat fee of X USD. Managed by Supabase but running on an own server. Basically something like https://xcloud.host/#pricing or with Supabase https://xcloud.host/docs/how-to-install-supabase-with-xcloud/ or Coolify Cloud or whatever example you can find. I'm not sure if this is actually doable reliably but I'd love it. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for opening this thread — happy to share where my setup lands, because it's a fairly extreme corner of the self-hosting spectrum. Tell us about your setupI've built a custom, hyper-optimized, headless Supabase implementation from the ground up. I essentially deconstructed the stack and rebuilt it to strip away anything I didn't need (no Studio, no Vector/Logflare, no Supavisor, no Analytics, no Kong/Envoy). The result is a single
How would you describe yourself?Solo entrepreneur, full-stack developer, building on top of Supabase. I'm probably not the "ideal persona" for managed Cloud or the official self-hosted compose: I don't use the stack as-is. But I lean heavily on Supabase's modularity to wire up exactly the backend I need. What's actually working well
What would make my life easier1) Clearer documentation of environment variables — their conventions and expected types. This is the single biggest paper cut. The public docs only cover a subset, every component's GitHub repo extends them in its own way, and a lot of values are only discoverable by reading source. A few concrete examples I've hit:
A single, generated, per-service reference (name, type, unit, default, since-version) would close a huge gap. 2) If I could wave a magic wandAn official "headless / lite" Supabase: the same set of services, but as a pure data engine, without the opinionated dashboard / Studio / Analytics layer. Smaller, faster, fewer moving parts, easier to keep current. Basically blessing the shape of stack I ended up building by hand. Paired with that, an optional lite admin viewer — explicitly not Studio. No table creation, no schema editing, no bucket creation, no "design the database in a UI" energy. Read and manage existing rows, users and files: browse tables and storage buckets, edit/delete rows, manage users (reset password, soft-delete, etc.), inspect logs. Production-friendly and opinionated the other way: architecture stays in code/SQL, the UI is just for day-to-day data ops. That would cover the legitimate "but how do I look inside the DB in prod?" objection that headless setups always face, without dragging the full Studio surface back in. Deep dive: replacing Kong/Envoy with Caddy entirelySharing this because it might interest others trying to cut RAM and config surface. The official gateway (Kong, and the newer Envoy variant) is essentially doing four things on the protected routes:
So the whole new On top of that, the same Caddy instance does TLS, sliding-window rate limiting at the edge, static file serving for the Auth email templates on the internal network, and unified access logging. One service, one config file, one place to look when something goes wrong. One deliberate divergence from Envoy worth flagging for anyone copying this approach: Envoy's The tradeoff is real (no plugin ecosystem, no service-mesh story, no Kong-specific tooling) but for a self-hosted single-tenant stack the math is heavily in Caddy's favour: hundreds of MB of RAM saved, modern Supabase Auth features unlocked (new asymmetric Happy to share the Caddyfile snippets or the compose layout if it's useful to anyone going down the same path. |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
Hey everyone!
We've been investing more in self-hosting lately - including bringing on a new team member (me!) dedicated to improving the experience.
We know there are challenges (we see the issues you've filed!), and we've been working through them. But I'd also love to hear about what's working 🙂
Tell us about your setup:
How would you describe yourself?
What's actually working well for you?
What's the top thing that would make your life with self-hosted Supabase easier?
I’m trying to get a clearer picture of who's running Supabase self-hosted and how it’s going in the wild. Since we prefer not to have telemetry in our open-source projects, your input here directly helps shape our focus.
Quick note: I can't promise immediate fixes for everything - think of this more as helping us understand the audience. That said, I'm definitely interested in hearing about feature gaps, bugs, and requests too.
Thanks for sharing! 🙏
Beta Was this translation helpful? Give feedback.
All reactions