Docs · Start
Quickstart
Sign in at app.homeport.sh, choose New app, and pick where the code comes from: a connected GitHub repository, a public repository’s URL, one of our examples, or files you upload. homeport works out the build, and the app is live at your-app.homeport.run.
From GitHub, deployed on every push
- Choose Continue with GitHub and install the homeport GitHub App on your account or organization, for all repositories or just the ones you pick. It asks to read your code, never to write to it. In an organization, an owner may have to approve the installation first.
- Back in homeport, Select a repository and choose Next. Missing one? Use Configure the GitHub App to give it access.
- Give the app a Name. If the repository holds several apps, pick its Root directory.
- Check what was detected. homeport shows the plan before anything builds: what it is, the build command and what gets deployed. Change it under Build and output settings if the guess is wrong; see What homeport detects.
- Optionally add environment variables, choose the branch, and pick a size.
- Choose Deploy. You land on the build’s live log, and the app answers at its address once it passes its health check.
From then on, every push to the app’s branch builds and deploys it. GitLab works the same way, with Continue with GitLab, for projects you maintain.
From a public repository’s URL
No account to connect: choose clone a public repository by its Git URL and paste its address, like https://github.com/owner/repo. GitHub and GitLab (gitlab.com) addresses work, and a /tree/branch/folder address deploys that branch and folder.
A public repository deploys when you ask, with Deploy latest, not on every push. Connect it when you want that.
Deploy an example
Deploy an example puts one of the starters from homeport-sh/examples live in one click, usually in under a minute:
- Go API: a small HTTP API in Go, one binary.
- Bun API: an HTTP API on Bun, compiled to a single binary.
- Static site: a page of HTML and CSS.
Upload files
For a static site with no repository: choose Upload files, give it a name, choose a .zip or a folder with an index.html at the top, and Upload and deploy. See Upload a site.
Your app’s address
- Production answers at
name.homeport.run, over HTTPS. Another environment, such as staging, answers atname-staging.homeport.run. - The name is lowercased, with anything other than letters and digits turned into dashes. If the address is already taken, a short random suffix is added.
- On a paid plan, add your own domain from the app’s Domains tab: Custom domains.
App names are lowercase letters, digits and dashes, up to 40 characters. Free runs up to 3 apps, and every environment counts as one.
After the first deploy
Each app has Overview, Deploys, Logs, Usage, Variables, Domains and Settings tabs. Deploys lists every deploy with its build log, and a build can be cancelled from its page. Logs shows what your app writes to stdout and stderr, live.