Docker or Git Deploy
Push your code or a pre-built Docker image. We handle the build and deployment process automatically.
Ship a static Go binary in a scratch or distroless image to a managed Docker platform. Managed PostgreSQL, MySQL and Redis attach to it. Images in the single-digit megabytes, no runtime to install.
# Dockerfile
FROM golang:1.23-alpine AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /app ./cmd/server
FROM gcr.io/distroless/static-debian12
COPY --from=build /app /app
EXPOSE 8080
ENTRYPOINT ["/app"]Go applications are famous for compiling down to a single, static binary. This makes them incredibly easy to distribute but also changes how they should be hosted compared to interpreted languages like PHP or Python.
Unlike Node.js or Python, a Go app doesn't need a heavy runtime environment on the server. You can build your app into a "scratch" Docker container that contains nothing but your binary, resulting in images that are just a few megabytes in size.
While you can just SCP a binary to a server, Docker provides a reproducible build environment. It ensures that your app runs exactly the same way in production as it does on your machine, regardless of the underlying Linux distribution.
Modern Go deployment leverages the language's strengths through containerization:
golang container, then copy only the binary to a lightweight alpine or scratch image for production.os.Getenv(), keeping your binary generic and secure.We provide a managed platform that maps directly to the standard Go architecture.
Push your code or a pre-built Docker image. We handle the build and deployment process automatically.
Spin up managed PostgreSQL, MySQL, or Redis instances alongside your app with a single click or line in your compose file.
Mount volumes for your uploads or local database files. Data persists across deployments and restarts.
All data and workloads are hosted in Germany (Falkenstein), ensuring low latency for European users and GDPR compliance.
CGO_ENABLED=0 is what makes the binary static and lets it run in scratch or distroless. Leave it on and the image needs glibc, which those base images do not have — the container exits immediately with no such file or directory for a binary that is clearly there. The usual culprits are the standard net resolver and mattn/go-sqlite3; the first has a pure-Go path, the second does not.http.ListenAndServe(":8080", …) is already correct. 127.0.0.1:8080 is not reachable from outside the container.signal.NotifyContext and call server.Shutdown(ctx) so in-flight requests finish. Without it, Go exits on the signal by default and every open request drops on each deploy.Nothing here is Hostim-specific — it is what any container runtime expects. Go just makes it visible, because there is no framework or process manager papering over it.
"Free" hosting usually comes with significant caveats. Providers offering free tiers often:
Free tiers are excellent for learning and prototypes but often break for real-world applications requiring reliability. Hostim.dev offers a preview tier for testing, but our focus is on reliable, paid production hosting with predictable pricing.
You might see terms like "web hosting" and "app hosting" used interchangeably, but they refer to different paradigms.
Traditional Web Hosting (Shared): Designed for PHP/WordPress. Almost never supports running custom Go binaries or listening on arbitrary ports. Not an option for Go.
App Hosting (PaaS): Designed for modern applications. Provides the necessary environment for containers, build processes, and service orchestration. This is what Hostim.dev provides.
The practical workflow on a container-based platform.
Dockerfile, then copy it into a minimal runtime image.Dockerfile. Hostim builds the image if needed.PORT, database connection strings, and feature flags in the dashboard.Get your Go application running in minutes.
Go on Hostim: a static binary in a small image, on a flat monthly plan.
€2.50/month
Small production stack
One app plan (sa-1-1) plus a free-tier managed database. The database only starts costing money at 1 GB (€1/month).
€2.50/month
Hostim entry app plan
Plan sa-1-1: 1 vCPU, 1 GB RAM. Flat price, billed hourly, no usage meter.
€0/GB
Traffic charges
No ingress fees and no per-GB egress line on app plans.
1 today (Falkenstein, Germany)
Regions
Bare metal, EU only, with more regions planned. No AWS, GCP or Azure underneath.
“Build simple, secure, scalable systems with Go”
— The Go project
Install the CLI, log in, deploy. The same three lines work from a CI job.
curl -fsSL https://raw.githubusercontent.com/hostimdev/cli/main/install.sh | sh
hostim login
hostim deploy app --git <your repository URL> \
--branch main --plan sa-1-1 --port 8080The app builds the Dockerfile in the repository and gets an HTTPS address on *.eu-center.hostim.dev for €2.50 a month. Databases, Redis and volumes are added with the same CLI, or as a template in one command. Deploy your app has the full set of commands, with an image, a repository, a Compose file or a template.
Yes. Build a small static Docker image (scratch or distroless) around your Go binary. Hostim runs it as a long-lived container behind HTTPS.
Managed PostgreSQL and MySQL with standard connection URLs — pgx, lib/pq, sqlx, GORM and Ent all connect normally. Redis is also available.
A typical Go deployment on Hostim is one app container plus one managed database. The app starts at €2.50/month and the database is free on the included tier, so a small production stack runs from €2.50/month.
Yes. The ingress proxies websockets and other long-lived HTTP connections to the container without extra configuration.
In Germany. Hostim apps and databases run on bare-metal servers in Falkenstein, with no AWS, GCP or Azure dependency — so data stays in the EU and GDPR compliance stays simple.