Deploy from GitHub
Connect GitHub, pick a repository and branch. Next.js, Vite, Astro, Nuxt, SvelteKit, Remix, Node.js and plain HTML are detected and built for you, no Docker needed.
Deploy a web app from GitHub, any public Docker image or a template like n8n. We build it, start it and serve it at its own HTTPS address, with a volume for the files it must keep.
Run a web app from GitHub or a Docker image at its own HTTPS address.
Connect GitHub, pick a repository and branch. Next.js, Vite, Astro, Nuxt, SvelteKit, Remix, Node.js and plain HTML are detected and built for you, no Docker needed.
Run nginx:alpine, ghcr.io/owner/app:1.0 or any public image, and enter the port it listens on. A repository with its own Dockerfile is built with it.
Every app is served at its own https address with a certificate issued for you. Only the app's port is reachable from the internet.
Each app gets a volume at /data, kept across restarts and redeploys. 1 GB is included; on Pro it grows as you need.
Idle apps go to sleep and wake on the next request, so you pay only for hours they run. On Pro, Always on keeps an app awake.
Start the n8n workflow tool or the Strapi CMS in one click. Strapi uses the project's Postgres and storage bucket for its data and uploads.
Click Add app on the project's Services tab and choose a GitHub repository, a Docker image or a template.
Name the app, set its size and add environment variables as KEY=value lines. They are stored encrypted.
Watch the build and start as they happen. The dialog ends with the app's HTTPS address.
import { createServer } from "node:http";
import { appendFile } from "node:fs/promises";
// PORT is set for you. Files under /data survive redeploys.
const port = Number(process.env.PORT ?? 3000);
createServer(async (req, res) => {
await appendFile("/data/visits.log", `${new Date().toISOString()} ${req.url}\n`);
res.end("Hello from CloudHike.dev");
}).listen(port, "0.0.0.0");Same project, same .env, same bill.
Postgres, auth, storage, Redis, email and AI models. One API key.