Deploy a GitHub Copilot app
ammo.host is live: EU hosting for an app built with GitHub Copilot. Signups are open.
GitHub Copilot agent mode works in your editor, on the project you have open. It edits files and can run commands. Copilot cloud agent works on GitHub, on one repository, and pushes its changes to a branch. It can open a pull request.
Sign in with an email link, create an API key at app.ammo.host/keys/, and paste the instruction below into agent mode so it reads llms.txt. Or connect agent mode to the MCP endpoint at https://app.ammo.host/mcp.
On GitHub, a repository admin can connect Copilot cloud agent to that MCP endpoint. Or open the project in your editor and paste the instruction into agent mode. The agent deploys the project and waits until the HTTPS address is ready.
Give this to your agent
Paste this into Copilot agent mode.
Put this project online with ammo.host. The user signs in at https://app.ammo.host/login with an email link, creates an API key, then you deploy. Read https://ammo.host/llms.txt and follow it.
How a deploy works
- Sign in with an email link.
- Create an API key at app.ammo.host/keys.
- The agent deploys via llms.txt.
What the app needs
The project has to be a static site or a Python app. A static site is an index.html and the files it needs, with no server.
ammo.host does not run a Node backend. If the project needs one, it cannot be hosted as it is.
For Flask, FastAPI, or Django, one of app.py, main.py, wsgi.py, asgi.py, or server.py defines app or application, with requirements.txt or pyproject.toml.
For Python's own http.server, app.py, main.py, or server.py imports http.server and reads PORT. ammo.host runs that file with Python. A dependency file is optional.
A Procfile can start the app. One line begins with web: and the command listens on PORT. requirements.txt or pyproject.toml is installed when present.
The app listens on 0.0.0.0 and reads its port from the PORT environment variable. ammo.host sets PORT to 8000.
A custom Dockerfile is paid-only (Starter or Pro). Python and Dockerfile apps get a PostgreSQL database. Read DATABASE_URL. If something required is missing, the error names it.
You get a live address, such as app-3f9k2c.ammo.host. A custom domain on a paid plan is the nicer URL.
Hosting
- Each app gets a generated address, such as app-3f9k2c.ammo.host, app-8k2m1q.ammo.host, app-4n7p0w.ammo.host.
- Custom domains are live on paid plans.
- It runs static sites and Python apps. Python apps can use Postgres.
- A Python app gets its own PostgreSQL database. Static sites do not get a database. The same account can store JSON and files.
- 14 days free, then Starter at €5 per app per month, including VAT. Pro is €19 per month, including VAT: everything in Starter, plus up to 10 apps.