Hi, I’ve heard of fly.io quite recently and instantly wanted to give it a try.
With the help of the “Elixir Getting Started Guide” I’ve managed to deploy my project without much hassle . The experience has been delightful so far and I’m exited about the distributed possibilities fly.io offers and how it seems to naturally fit with the BEAM world.
My project is a GitHub clone mostly written in Elixir (NIFs written in C for working with libgit2). It is very self-contained and does not require much dependencies (solely libgit2
and openssh-ssh-keygen
).
You can check the GitHub project or the demo running on fly.io here:
https://git.limo/redrabbit/git-limo
It implements (in Elixir) the Git transfer protocol and provides support for both HTTP and SSH (:ssh.daemon/3
) transport protocols.
Now I’ve seen that only a handful of ports are allowed to be exposed. In my case, I’d like to use port 22
for Git client commands over SSH. I’ve tried to use the experimental allow_public_port
without success (IPv6 only?).
Currently, I’m using port 10022
but it’s somehow cumbersome to use on the client side:
git clone ssh://redrabbit@git.limo:10022/redrabbit/git-limo.git
against:
git clone redrabbit@git.limo:redrabbit/git-limo.git
I’d like to start experimenting with the distributed aspect of fly.io soon. Currently the setup is quite simple (see commit Mess around with fly.io) and has
- a single node running in Europe (fra)
- a postgres instance
- 40GB volume for storing Git data
but it would be nice to provide a multi-node environment running in different regions.