Skip to content

Publish a site from GitHub

Hosting is open to everyone.

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 first goes live. 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. Upload from your computer is picked when the form opens; press From GitHub to publish from a repository instead. The third, Describe it, we'll build it, is shown but not offered; the form says so itself:

Describing a site is being built. This page will say so when it opens.

With From GitHub pressed, you fill it in from the top down:

Field What to put in it
GitHub repository Your public GitHub repository, written owner/name — for example your-name/your-repo — or pasted as its github.com address. We only read it.
Branch The branch to publish. main unless you press Change next to it.
Folder in your repository You do not type it. Once the repository is in, the form lists the folders that hold an index.html, and the top of the repository reads Top of the repository. If there is one, it is picked for you; if there are several, pick the one with your site.
Site name Filled in from the repository’s name; change it if you like. 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 Publish.
Plan Free, Start, Business or Pro, each with its price. One site, one plan.

The button then says what it costs: Publish free, or Publish for $3 / 30 days on Start. It stays off until a folder with an index.html is picked. A branch with no index.html anywhere is said so at once, and nothing is made or charged. Nothing is built: the files in the folder 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.

A site is usually live in under a minute. 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 fair-use ceiling, and Taken down, when we took the site down for breaking the acceptable-use policy. If you think that is a mistake, write to abuse@oraicle.me.

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

The form fills in like this:

Field Value
GitHub repository your-name/your-repo
Branch main
Folder in your repository dist, the only folder with an index.html, picked for you
Site name my-landing-page
Plan Free

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.

The top of this repository has no index.html, so the form does not offer it. A site whose folder has none is refused before anything is charged, 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.

On a paid site the question also says that the days already paid for are not given back, before its last sentence:

The site goes offline and its files are removed. The monthly charge stops. The days already paid for are not given back. 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.