Docs · Deploy
Upload a site
A static site can be deployed with no repository: choose Upload files in New app, pick a .zip or a folder with an index.html at the top, and it is checked and put live at name.homeport.run. Each upload after that is a new release.
The first upload
- In New app, choose Upload files.
- Give it a Name: its address is
name.homeport.run. - Choose a .zip or Choose a folder. A folder is zipped in your browser before it is sent.
- Choose Upload and deploy. You land on the app’s Deploys tab while it is checked, and it is live as soon as it passes.
What to upload
The site’s files, with index.html at the top of the upload, or inside the one folder the upload holds. Both of these work:
site.zip site.zip
├── index.html └── dist/
├── about/ ├── index.html
│ └── index.html └── assets/
└── assets/ └── app.css
└── app.cssUploads are served as files, exactly as they are. Nothing in an upload runs, so it is for static sites only. To run a server, deploy from a repository or from your own CI.
Limits
| Plan | Largest upload |
|---|---|
| Free | 50 MB |
| Starter | 500 MB |
| Growth | 500 MB |
| Business | 2 GB |
- The limit applies to the zip, and to what it unpacks to.
- Up to 20,000 files.
- An uploaded site counts as an app, so it is one of Free’s 3.
What is refused
The whole upload is refused, with the reason, if it has any of these:
| Problem | The message |
|---|---|
| No index.html at the top, or in a single top folder | no index.html at the top of the upload: zip the site's folder, or its contents |
| A symlink | … is a symlink: a site is served as files, not links |
| Something that is not a file or folder | … is not a file (…): a site is files and folders |
A path that leaves the site (.., an absolute path, a backslash) | "…" isn't a path inside the site |
| The same file twice | … is in the upload twice |
| Too many files | more than 20000 files: upload fewer |
| Too large once unpacked | the site unpacks to more than … MB: make it smaller |
| Not a zip, or a damaged one | this isn't a .zip file we can read |
macOS’s __MACOSX/ folders and .DS_Store files are skipped, not refused.
Uploading a new version
Choose Upload a new version in the app’s header or on its Settings tab, and upload the whole site again. Each upload is a release: it is live once it is checked, and the one before stays to roll back to.
An uploaded site follows no branch, and a site built from a repository cannot be uploaded to: push to deploy it.