Guide
Docker vs binary deployment
A container and a static binary solve different problems. Choosing the unit of deployment first makes the rest of the release path simpler.
What a container adds
A container packages the application with its runtime, libraries, and filesystem assumptions, which makes the artifact portable across hosts and isolates system-level dependencies. That is valuable when the app needs a non-trivial runtime image or when several services must share one host cleanly.
The cost is a second runtime to operate: image storage and pruning, registry credentials, daemon health, and a layer between the process and the host. Debugging starts one level lower.
What a binary adds
Go and Rust both produce self-contained binaries. Deploying the binary directly removes the image build, registry, and daemon from the release path; the host toolchain compiles the artifact and the supervisor runs it.
The trade-off is host coupling: the binary must match the host OS and architecture, and host-level dependencies must exist on the machine.
Both are supported
Phelix defaults to native binaries. For container deployments it can build and publish images from a Dockerfile or a generated multi-stage one, run app instances as containers under the same zero-downtime proxy, and generate Compose files for sidecars.
Compose generation is not orchestration: Phelix writes the file and you run the stack. Choose containers when portability or isolation is the point, and binaries when the shortest release path on hosts you control is the point.
Frequently asked questions
Short answers; the docs go deeper.
Should I deploy a Go binary or a Docker image?
Choose a binary when the shortest release path on hosts you control matters and the app has no system-level dependencies. Choose a container when portability across hosts or isolation of runtime dependencies is the priority.
Does Phelix deploy Docker containers?
Yes, optionally. It can build and push images, run app instances as containers under the same zero-downtime proxy, and generate Compose files for sidecars, while native binaries remain the default.
One binary between git push and production.
Install the CLI, verify the host, and follow the quick start to build your first application.