---
title: "How to get an app from localhost onto the internet"
description: "Move a working local app to a public URL with a production runtime, health checks, TLS, and routing handled by Ample."
canonical_url: "https://ample.computer/guides/localhost-to-internet"
last_updated: "2026-07-30"
author: "Ample Computer"
---

# How to get an app from localhost onto the internet

Move a working local app to a public URL with a production runtime, health checks, TLS, and routing handled by Ample.

## The short version

Localhost is only reachable on your computer. To put the app on the internet, deploy its source to a production runtime that listens on the assigned PORT and expose it through a public route. Ample packages the project, selects a compatible runtime, checks the release, and returns an HTTPS URL.

## Who this is for

This guide is for anyone whose app works at localhost but is not yet reachable by teammates, customers, or testers.

## How to do it

1. **Identify what is listening locally.** Determine whether the project is a static site, a web server, an API, or several linked services. Ample can detect common structures, but knowing the shape makes the plan easier to review.

2. **Make the server production-ready.** A web process must listen on 0.0.0.0 and use the PORT value supplied by the platform. Do not hard-code localhost as the production host.

3. **Run the Ample plan.** The plan chooses the runtime and records services, databases, volumes, links, and visibility.

   ```sh
   ample plan --write
   ```

4. **Deploy and wait for the result.** Ample builds the source, boots the release, runs health checks, and activates public routing only after the app is ready.

   ```sh
   ample up
   ```

5. **Test the public path.** Open the returned HTTPS URL and test the same path and workflow you used locally. Pay special attention to API URLs, environment variables, and persistent files.

## What this supports

- Generated HTTPS URLs for public web and static services
- Automatic runtime selection for supported languages
- Health-gated activation
- Custom domains after the first successful release

## Know the limits

- Files written only to a release filesystem do not become durable storage
- A process bound only to 127.0.0.1 cannot receive platform traffic
- Local services and localhost URLs must be replaced with deployed links

## Common failure modes

- **Health checks time out** Confirm the process binds to 0.0.0.0:$PORT and that the configured health path returns success.
- **The page loads but data does not** Replace localhost API or database addresses with Ample links or environment variables.
- **Uploaded data disappears after a release** Put runtime-written data on a volume or managed database instead of the release filesystem.

## Related guides

- [How to deploy a vibe-coded app](https://ample.computer/guides/deploy-vibe-coded-app)
- [What to do when an app works locally but not in production](https://ample.computer/guides/works-locally-not-production)
- [How to add environment variables during deployment](https://ample.computer/guides/environment-variables-deployment)

## Machine-readable resources

- [llms.txt](https://ample.computer/llms.txt) | [AGENTS.md](https://ample.computer/AGENTS.md) | [sitemap.md](https://ample.computer/sitemap.md) | [OpenAPI](https://ample.computer/openapi.json)
