Go Binaries, Deployed Simply
Deploy standard Go applications with git push.
Scale with gigalixir ps:scale.
Get the raw performance of a compiled binary without wrestling with Docker multi-stage builds or Kubernetes manifests.

Go developers value simplicity and speed. Modern container deployment often ruins this by forcing you to maintain complex Dockerfiles and manage Linux base images just to run a single binary.
Gigalixir respects the simplicity of the Go toolchain.
You push your source code, and we handle the compilation and execution environment.
You get the benefits of a PaaS (managed database, aggregated logs, automatic scaling) without the operational overhead of managing the container runtime yourself.
Go is built for high concurrency and low latency.
We provide the infrastructure that lets those characteristics shine.
Your binary runs in a lightweight container without heavy agents or sidecars eating up your CPU cycles.
Because we do not impose artificial thread limits, your Goroutines can schedule efficiently across the available compute resources.
We do not limit the number of concurrent connections your application can accept.
This makes Gigalixir ideal for high-throughput Websocket servers or gRPC services that need to maintain thousands of active states without the memory bloat of thread-per-request languages.
When you push new code, we compile the new binary, spin up a new instance, and wait for it to pass health checks before switching traffic.
Your users never see a 502 error, and active connections are handled gracefully during the rollover.

The Questions We Get The Most at Gigalixir Support
No.
You should push your source code to Gigalixir.
We compile the binary on our servers using the correct architecture (Linux/amd64) for the deployment environment.
This ensures that your binary is always linked against the correct system libraries available in the runtime.
Yes. If your project depends on private modules, you can configure the build environment to authenticate with your version control system.
This typically involves setting a GO_GIT_CREDENTIALS or similar environment variable during the build phase so the go get command can fetch your private code.
Your Go application must listen on the port specified by the PORT environment variable.
We automatically route external HTTP and HTTPS traffic from your custom domain to that port.
If you hardcode port 80 or 8080, your app will crash; always use os.Getenv("PORT").
Yes.
We fully support Go Modules.
Ensure your go.mod and go.sum files are checked into your repository.
The buildpack favors modules over the older vendor directory approach.
Go makes it easy to run background tasks using Goroutines within your web process.
However, for robust, restart-tolerant work, we recommend defining a separate worker binary in your Procfile and scaling it independently.
This ensures your web server isn't slowed down by heavy background processing.
Reach out directly to the Engineers who built Gigalixir to discuss your specific architecture, integration challenges, or compliance constraints here 👇
Stop fighting generic cloud infrastructure.
Whether you’re working with Elixir, Python, or Node.js, get the specialized support and performance your application deserves.