Comments (10)
That's an interesting idea. Can it be provided in a way that doesn't modify the existing code (ie, in a deploy
directory, or something along those lines)? I've never used Fly.io before.
Perhaps also adding an example for GCP Cloud Run, Cloud SQL, and Memorystore would be useful.
from pagoda.
Yep deploy folder is perfect .
GitHub actions can use it and deploy.
from pagoda.
The other hosting providers can be done too of course. I tend to use fly because it’s anycast. So I standup an instance and via the cli or GitHub actions can scale the instance to any of the 30 data centers and it Al remains in sync.
also postresql works and scales in a master sake pattern . I normally pick Amsterdam as it’s the best for global origin. Than all slaves in the other 29 auto sync .
Clients get automatically send and load balanced to nearest DC and LB in each DC to how many instances you have in that DC.
this is why I guess I don’t use GCP or AWS.
S3 proxying also works and postresql is automatically Snapshot so if you blow away your Origin your can get your postresql data and s3 blobs.
from pagoda.
https://github.com/superfly/flyctl For cli.
https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/ for git ops.
https://github.com/superfly/flyctl-actions
https://github.com/superfly/fly-pr-review-apps for GitHub or ops
https://github.com/superfly/fly-log-shipper For log shipping. I use nats as they suggest so I can log async which is much faster and takes load off main servers.
from pagoda.
For back control plane is also nats but hosted :
it’s identical to nats golang server used for logging but I can control fky, s3, dns, etc etc via ngs Nats. GitHub actions just call a makefile that modifies all the operational things.
Ngs is just the command and control system for talking to all this things
from pagoda.
Just realised that the docker compose has Redis and postresql.
2 options:
- run each standalone
https://github.com/fly-apps/redis/
https://github.com/fly-apps/postgres-ha
Then run pagoda as a dock on fly
- inject the binaries into the one docker
from pagoda.
So what would be required to add to this repo in order to make deploying via fly easier? Does this app require anything highly specific? I'm curious if including it will actually be of much help to people. As always, my concern with adding things is that it's another thing to maintain and stay on top of, so it has to be worth it. I thought about adding something for cloud run but I'm not really sure how helpful that is. The other problem is that the list of cloud providers is very long.
from pagoda.
A fly.toml
A dockerfile that runs the golang main.
The fly cli is used to run the deployment
The fly GitHub action to auto deploy it.
postresql is supported on fly. You can even scale it out using the fly cli
Redis i think is provided on fly. https://fly.io/docs/reference/redis/
I tend to use NATS Jetstream instead of Redis because you can run NATS embedded in your golang binary .
from pagoda.
I'm going to close this. There's an endless amount of places and way to host this and there's really nothing specific about this app that requires anything custom. I'm also considering removing both Postgres and Redis as a default in favor of SQLite and something in-memory to really make this template as rapid/easy/fast as possible. If that is done, then there's really nothing regarding deployment required.
from pagoda.
Yeah I changed to SQLite and marmot . It’s been great having clustering and real time updates
from pagoda.
Related Issues (20)
- Workflow on making migrations with Ent and Atlas? HOT 3
- Syntax Highlighting for gohtml files HOT 1
- Error initializing ORM HOT 3
- Flash messages when using HTMX HOT 2
- Can't update Go and deps cleanly HOT 5
- htmx problem HOT 1
- Switching to embed.FS broke hot-reload of templates HOT 1
- A few suggestions / questions from a first time user HOT 10
- Problem implementing redirect with querystring parameters HOT 2
- Request for Tailwind CSS Support HOT 3
- Create a space for discussions, support and future roadmap planning HOT 2
- Best approach for mocking container services HOT 6
- what is the correct use of page.Form HOT 1
- Thoughts on Example for Splitting Out "Business Logic Layer"? HOT 2
- Adding custom javascript to an individual page HOT 1
- Default to SQLite rather than Postgres and Redis HOT 2
- Switch from Bulma to Tabler? HOT 2
- Setup problem HOT 2
- PocketBase integration into the administration area HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pagoda.