{"id":29769897,"url":"https://github.com/drizzle-team/fastabase","last_synced_at":"2025-08-01T10:02:52.050Z","repository":{"id":306456214,"uuid":"1026248538","full_name":"drizzle-team/fastabase","owner":"drizzle-team","description":"A solution to self-host Supabase on AWS and use PlanetScale Postgres as the database provider.","archived":false,"fork":false,"pushed_at":"2025-07-25T17:04:23.000Z","size":294,"stargazers_count":22,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-25T22:24:32.226Z","etag":null,"topics":["aws","planetscale","postgres","pulumi","sst","supabase"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drizzle-team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-25T14:57:04.000Z","updated_at":"2025-07-25T21:59:55.000Z","dependencies_parsed_at":"2025-07-25T22:27:11.598Z","dependency_job_id":"8744e512-9756-401c-8e3c-e7da9dfdfdb6","html_url":"https://github.com/drizzle-team/fastabase","commit_stats":null,"previous_names":["nine-two/fastabase"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/drizzle-team/fastabase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drizzle-team%2Ffastabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drizzle-team%2Ffastabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drizzle-team%2Ffastabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drizzle-team%2Ffastabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drizzle-team","download_url":"https://codeload.github.com/drizzle-team/fastabase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drizzle-team%2Ffastabase/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267443323,"owners_count":24087983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","planetscale","postgres","pulumi","sst","supabase"],"created_at":"2025-07-27T05:01:08.210Z","updated_at":"2025-07-28T06:02:44.150Z","avatar_url":"https://github.com/drizzle-team.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fastabase\n\nFastabase is a solution to self-host [Supabase](https://supabase.com/) on AWS and use [PlanetScale Postgres](https://planetscale.com/blog/planetscale-for-postgres) as the database provider.\n\n## Overview\n\nFastabase is built using several components:\n- [SST](https://sst.dev/) to orchestrate the deployment to AWS\n- [OpenNext](https://opennext.js.org/aws) to deploy Supabase Studio as a serverless component\n- [Supabase](https://github.com/supabase/supabase) components like Storage, Auth, etc.\n\n\n## Architecture\n\n![diagram](/docs/images/architecture.svg)\n\n- Most of the Supabase components are deployed as Docker containers to ECS Fargate\n- Entrypoint for Supabase API is an Application Load Balancer behind a CloudFront distribution\n- Amazon SES SMTP servers are used for sending emails\n- Supabase Studio is deployed using OpenNext\n  - Studio is protected by user/password auth via a CloudFront function\n\n## Prerequisites\n\n1. Install Node.js 22 and pnpm\n2. Enable `pg_stat_statements` and `pg_cron` extensions in PlanetScale on the \"Cluster configuration\" -\u003e \"Extensions\" tab\n\n## Deployment\n\nTo deploy Fastabase you would need to follow these steps:\n\n1. Init Git submodules:\n    ```shell\n    git submodule update --init\n    ```\n\n2. Create a `config.yaml` configuration file:\n    ```\n    cp config.yaml.example config.yaml\n    ```\n\n3. Fill in the `config.yaml` file with the required information.\n\n4. Install all the dependencies:\n    ```shell\n    pnpm i\n    ```\n\n5. Set up the AWS credentials.\n    ```shell\n    export AWS_PROFILE=\u003cprofile\u003e\n    ```\n    \u003e **Note**: To learn how to set up the AWS credentials in your terminal, please refer to the [AWS documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).\n\n6. Run the deployment:\n    ```shell\n    pnpm run deploy\n    ```\n\n# Removal\n\nTo remove the Fastabase deployment, run:\n```shell\npnpm run remove\n```\n\n## Roadmap\n\nCore Supabase components:\n- [x] Auth\n- [x] Storage\n- [x] PostgREST\n- [x] Imgproxy\n- [x] Pg-meta\n- [ ] Realtime\n- [ ] Edge functions\n- [ ] Logs\n\nCustomization:\n- [ ] External auth providers\n- [ ] Custom domain\n- [ ] OpenAI API key\n\nImprovements:\n- [ ] Show real DB credentials in the Studio's \"Connect\" dialog (currently hardcoded to `localhost` in Supabase's codebase)\n\n## Notes\n\n- By default, Amazon SES is in sandbox mode, which means you can only send emails from and to verified email addresses. Make sure to exit the sandbox mode before sending emails to real users.\n\n- Realtime component currently can't be used with PlanetScale, because PlanetScale requires SSL and Realtime component doesn't allow SSL to be configured for the database connection.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrizzle-team%2Ffastabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrizzle-team%2Ffastabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrizzle-team%2Ffastabase/lists"}