Skip to content

Publish a site from GitHub

Hosting is built, and a few accounts are using it first. It opens to everyone once the rules, a way to report a site and a way for us to take one down are ready.

Hosting publishes one folder of a public GitHub repository, exactly as it is. We download the branch you name (a version of your repository), keep the files in the folder you name, and serve them. Nothing from your repository is run on our side: not a build command, not a Dockerfile, not a git hook.

Read this part before you fill in the form.

  • A published site is open to everyone. Every file in the folder you publish is served, not only the pages you link to. A file nobody links to can still be reached by its address.
  • A public GitHub repository is public too, including its history. A commit is a saved change in the repository, and it stays: a key committed once and deleted in a later commit is still there, and still readable.
  • Look through the folder first. API keys, passwords, tokens, .env files, database dumps, private addresses, anyone’s personal data — if you would not hand it to a stranger, it does not belong in the folder you publish.
  • We do not check your files for secrets, and we do not scan them for malware. The importer refuses a few shapes it cannot serve — a link instead of a file, a file name the platform keeps for itself — and that is all it looks at. It is not a review of what is in your files.
  • Deleting a site later does not un-publish it. It takes the files off our side and stops the charge. It does not reach anyone who already copied them, and it changes nothing in your repository. A key that was published is a key to replace, not a key to hide.
  • A public GitHub repository. Private repositories are refused before anything is charged; see What hosting does not do yet.
  • An index.html at the top of the folder you are going to publish. Without one the address would answer “not found”, so the publish is refused instead.
  • An account with a wallet. The Free plan costs nothing; a paid plan is charged from your wallet when the site is created. See Plans and limits.

The form is in the Hosting tab of your console, under New site.

It opens on three ways to start a site. From GitHub is the one that is open. The other two, Upload from your computer and Describe it, we'll build it, are shown but not offered; the form says so itself:

Both are being built. This page will say so when they open.
Field What to put in it
Name Letters, digits and dashes. It becomes your address: a site named my-landing-page answers at my-landing-page.oraicle.app. Some names are kept for our own services and are refused when you press Create site.
Repository Your public GitHub repository, written owner/name — for example your-name/your-repo. We only read it.
Branch The branch to publish. main unless you change it.
Plan Free, Start, Business or Pro. One site, one plan.
Folder in your repository The folder inside the repository that holds your index.html, such as dist or public. Leave it empty if index.html sits at the top of the repository.

The folder is the field a first site most often gets wrong, and it is the one worth reading twice. It is a path inside your repository — not a folder on your computer, and not something we create. Nothing is built: the files in it are published as they are.

The site appears in Your sites with a state on it. Three states are the normal path:

  1. Setting up — the site is registered and the files have not been fetched yet.
  2. Building — we are downloading the branch and uploading the folder.
  3. Live — the address serves your files.

The card refreshes on its own while a site is setting up or building. A site that did not make it reads Failed and carries the reason as a sentence: When a site says Failed goes through each one.

Two more states can appear later: Suspended, when the plan was not paid or the site went past its traffic quota, and Taken down, when we took the site down.

A site answers at https://<name>.oraicle.app, where <name> is the name you gave it.

  • / is the index.html at the top of the folder you published.
  • A file called about.html is also served at /about.
  • If the folder has a 404.html, that page is what an address with nothing behind it shows.

A worked example: the site sits in a folder

Section titled “A worked example: the site sits in a folder”

Say your repository builds into dist, and dist is committed:

your-repo/
src/
index.astro
dist/
index.html
about.html
assets/
style.css

Fill the form in like this:

Field Value
Name my-landing-page
Repository your-name/your-repo
Branch main
Plan Free
Folder in your repository dist

The site then answers at my-landing-page.oraicle.app, about.html is at /about, and assets/style.css at /assets/style.css. Nothing outside dist is published.

Leave the folder empty here and the whole repository is published instead. There is no index.html at the top of it, so the publish is refused and the message names the folders that do have one.

Each site’s card carries its own buttons.

  • Redeploy publishes the branch and folder again, as they are on GitHub at that moment. We do not watch your repository: a commit goes online when you press this.
  • Change folder opens Change branch or folder, which takes a new branch, a new folder, or both. Saving publishes the site again and counts as one of the day’s deploys, exactly like Redeploy.
  • Delete removes the site. The console asks first, in these words:
The site goes offline and its files are removed. The monthly charge stops. This cannot be undone.

Redeploy and Change folder both count against the deploys your plan allows in a day; Plans and limits has the number for each plan.