flyctl
PostgreSQL
flyctl | PostgreSQL | |
---|---|---|
584 | 517 | |
1,563 | 18,412 | |
1.0% | 1.2% | |
9.6 | 10.0 | |
3 days ago | about 5 hours ago | |
Go | C | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
flyctl
-
How I’d scale a side project to 1 million users (without melting my server)
Fly.io scale apps globally without setting up 20 servers
-
AWS, Azure, Vercel?! What actually worked for me during hosting my last five projects
Fly.io Edge VMs with global reach
-
How to Deploy a Python Backend to Fly.io Using Jenkins
A Fly.io account.
-
AI Image Generator with Stability and Tigris
As it is now, this connection string won’t work locally, but we can tweak it a bit before configuring a proxy using the Fly.io CLI tool. Create a file in the root of the project named .env.local and paste the connection string in it. Replace the hostname with 127.0.0.1. It should look similar to this, but with different credentials:
-
3 Ways to Add Real-Time Features to Your Next.js App
When you need to support live-interactions between users, updates will need to be instantaneous, else the experience will feel clunky and broken. For this, having a separate WebSocket server outside of Next.js works very well. Since Vercel doesn’t support long-lived connections, you’ll need to deploy this WebSocket server separately, for example, on platforms like Fly.io, Railway, or your own VPS.
-
Invisible Threads: Group email without the exposure
Invisible Threads is built with Elixir, Phoenix, and most importantly, Postmark. Data lives on disk instead of a traditional database to keep the demo light. Authentication uses Postmark API tokens, mapping each application user directly to a Postmark server. The whole thing is deployed to Fly.io. A minimal setup let me focus on Postmark's offerings.
-
My AI Skeptic Friends Are All Nuts
Their client application (written in Go) is open source: https://github.com/superfly/flyctl
They have a few other notable open source components, I think these two are particularly interesting:
- https://github.com/superfly/corrosion
- https://github.com/superfly/litefs
(Disclosure: they sponsor some of my work.)
-
How to Host a Mongoose-Powered App on Fly.io
One increasingly popular answer is Fly.io—a global application hosting platform that makes it surprisingly simple to deploy backend services close to your users. Fly.io gives you speed, scalability, and even stateful service support (hello, databases!) without the DevOps headache.
-
Litestream: Revamped
The landing page shows all logos of small companies, including one that is migrating away from them (Turso)
https://fly.io/
-
Why we broke up with kubernetes and found happiness in simplicity
Fly.io Deploy apps globally without Kubernetes
PostgreSQL
-
How to Securely Connect to Medusa.js Production Database on AWS?
You're minding your own business, managing AWS infrastructure for a client with a pretty standard e-commerce setup: a Medusa.js backend, a Next.js storefront, and most importantly for this story, a PostgreSQL RDS instance safely stashed away in a private subnet where nothing from the outside world can touch it. Exactly how the AWS gods intended.
-
Is Your Fraud Screening Process Ignoring Local Patterns?
Your Database: This is your system's memory. It can be a fast in-memory store like Redis for temporary data (perfect for velocity checks) or a persistent relational database like PostgreSQL for long-term data (like blacklists).
-
High Availability Postgres
#! /bin/bash set -ex IMG=postgres/test-0.0.1 IMG_ID=`docker images ${IMG} -q` PG_TAG=REL_18_BETA1 if [ "${IMG_ID}" = "" ]; then if [ ! -d "postgres-${PG_TAG}" ]; then wget https://github.com/postgres/postgres/archive/refs/tags/${PG_TAG}.tar.gz && tar -xzf ${PG_TAG}.tar.gz fi ID=991 USR=postgres USR_HOME=/home/postgres cat > Dockerfile << EOF FROM ubuntu:latest RUN groupadd -g ${ID} ${USR} && useradd -r -u ${ID} -g ${USR} ${USR} ADD postgres-${PG_TAG} ${USR_HOME} WORKDIR ${USR_HOME} RUN chown -R ${USR}:${USR} ${USR_HOME} RUN apt-get update && apt-get install -y g++ zlib1g-dev make curl tar gzip perl liblz4-dev libreadline-dev flex bison libicu-dev liburing-dev RUN apt-get install --reinstall -y pkg-config && ./configure --with-liburing --enable-debug --with-lz4 && make -j4 && make all && make install RUN echo "export PATH=/usr/local/pgsql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" >> /etc/bash.bashrc && \ chown -R ${USR}:${USR} /usr/local/pgsql USER ${USR} EOF docker build -t ${IMG}:latest . rm Dockerfile rm -rf postgres-${PG_TAG} ${PG_TAG}.tar.gz else echo "Image ${IMG} already exists with ID ${IMG_ID}" fi
-
Why did I build a transparent, account-free, open-source URL shortener?
Choosing the database was straightforward: PostgreSQL. I have the most experience with it, very easy to spin up, has a lot of trust and is open-source (I guess the last two come hand-in-hand).
-
Left to Right Programming: Programs Should Be Valid as They Are Typed
I was explaining why it is the way that it is. If you'd like your own version of a parser, here's Postgres' [0]. Personally, I really like SQL's syntax and find that it makes sense when reading it.
[0]: https://github.com/postgres/postgres/tree/master/src/backend...
-
Turning PostgreSQL into GraphQL: Lessons from the Field
If you’ve never tried PostgreSQL before, the official site is a great starting point: PostgreSQL: The world’s most advanced open source database.
-
pg_dphyp: teach PostgreSQL to JOIN tables in a different way
/* https://github.com/postgres/postgres/blob/144ad723a4484927266a316d1c9550d56745ff67/src/backend/optimizer/path/costsize.c#L3375 */ void final_cost_nestloop(PlannerInfo *root, NestPath *path, JoinCostWorkspace *workspace, JoinPathExtraData *extra) { /* ... */ if (path->jpath.path.param_info) path->jpath.path.rows = path->jpath.path.param_info->ppi_rows; else path->jpath.path.rows = path->jpath.path.parent->rows; /* ... */ } /* https://github.com/postgres/postgres/blob/144ad723a4484927266a316d1c9550d56745ff67/src/backend/optimizer/path/costsize.c#L3873 */ void final_cost_mergejoin(PlannerInfo *root, MergePath *path, JoinCostWorkspace *workspace, JoinPathExtraData *extra) { /* ... */ if (path->jpath.path.param_info) path->jpath.path.rows = path->jpath.path.param_info->ppi_rows; else path->jpath.path.rows = path->jpath.path.parent->rows; /* ... */ } /* https://github.com/postgres/postgres/blob/144ad723a4484927266a316d1c9550d56745ff67/src/backend/optimizer/path/costsize.c#L4305 */ void final_cost_hashjoin(PlannerInfo *root, HashPath *path, JoinCostWorkspace *workspace, JoinPathExtraData *extra) { /* ... */ if (path->jpath.path.param_info) path->jpath.path.rows = path->jpath.path.param_info->ppi_rows; else path->jpath.path.rows = path->jpath.path.parent->rows; /* ... */ }
-
NestJS Multi-tenancy API Key Authorization
PostgreSQL as database
-
Strategies for Fast Lexers
> As introduced in the previous chapters, all identifers are hashed, thus we can also hash the known keywords at startup and make comparing them very fast.
One trick that postgres uses [1][2] is perfect hashing [3]. Since you know in advance what your keywords are, you can design such hashing functions that for each w(i) in list of i keywords W, h(w(i)) = i. It essentially means no collisions and it's O(i) for the memory requirement.
[1] https://github.com/postgres/postgres/blob/master/src/tools/P...
[2] https://github.com/postgres/postgres/blob/master/src/tools/g...
[3] https://en.wikipedia.org/wiki/Perfect_hash_function
-
Create ER Diagrams for PostgreSQL with a Free Design Tool
Understanding a database starts with understanding its structure. For PostgreSQL users, one of the most effective ways to visualize and manage your schema is by using an Entity-Relationship Diagram (ERD). Either if you're working with a large legacy database or starting something new, an ER diagram shows how your tables are connected and how your data is organized.
What are some alternatives?
vercel - Develop. Preview. Ship.
ClickHouse - ClickHouse® is a real-time analytics database management system
citus - Distributed PostgreSQL as an extension
MySQL - MySQL Server, the world's most popular open source database, and MySQL Cluster, a real-time, open source transactional database.
litestream - Streaming replication for SQLite.
Firebird - FB/Java plugin for Firebird