Services
Hosted apps
Run a container from a Docker image, a GitHub repository, n8n or an empty service, at its own HTTPS address.
Deploy
Click Add app at the top of the project's Services tab and choose what to deploy. A dialog asks for the app's name (2 to 20 lowercase letters, digits and dashes) and its details, shows the build and start as they happen, and ends with the app's address. A project can hold several apps, up to your plan's limit; every deployed app gets a card under Deployed services, and Manage opens its page:
| Start from | What runs |
|---|---|
| Empty service | A small Node.js container with a placeholder page. Redeploy it with your own image later. |
| n8n | The n8n workflow tool. Workflows and credentials are kept on the app's volume (/home/node/.n8n). Runs best on Small or larger. |
| Web App (GitHub) | A repository with a Dockerfile, built on the app host from the branch you choose. Click Connect GitHub in the dialog to allow access, then pick the repository and branch. Under Advanced settings, set a folder or Dockerfile path. Enter the port the app listens on. |
| Docker | Any public image, such as nginx:alpine, ghcr.io/owner/app:1.0 or owner/app@sha256:…. Enter the port it listens on. |
- Images are pulled without credentials, so they must be public. Registries on localhost, IP addresses and internal host names are refused.
- Environment variables are entered as
KEY=valuelines and stored encrypted.PORTis set to the app's port unless you set it yourself. - Each app gets a 1 GB volume, mounted at
/data(or the template's own folder). It is kept across restarts and redeploys, and deleted with the app. - Redeploy builds a GitHub app again from the latest commit of its branch. Builds stop after 10 minutes. Deploying on every push, custom domains and autoscaling are not available yet.
- An app's page has Overview, Logs, Environment and Settings tabs: restart, stop or redeploy, read the logs, edit variables, change the source and size, or delete it.
Address
Every app is served at https://<name>-<project slug>.<apps domain>, shown on its card. HTTPS certificates are issued automatically. Requests reach the app's port through the platform's proxy; nothing else on the container is reachable from the internet.
curl -i https://web-my-shop-a1b2c3.apps.example.com/Sizes and prices
| Size | Memory | CPU | Price while running | Plans |
|---|---|---|---|---|
| Micro | 256 MB | 0.25 | $0.004 per hour (about $2.92 a month) | Free and Pro |
| Small | 512 MB | 0.5 | $0.008 per hour (about $5.84 a month) | Pro |
| Medium | 1 GB | 1 | $0.016 per hour (about $11.68 a month) | Pro |
| Large | 2 GB | 2 | $0.032 per hour (about $23.36 a month) | Pro |
Free projects can run 2 apps, Pro projects 5. Compute is charged only for hours the app runs: an app that is asleep, stopped or paused costs nothing. The volume is included, up to 1 GB on Free and 5 GB on Pro.
Sleep and wake
An app with no requests for an hour goes to sleep: its container stops and its data stays. The next request wakes it. The visitor sees a short “Waking up” page that reloads by itself, usually for a few seconds, and then the app.
- On Pro, switch on Always on for apps that must answer at once or run work in the background (n8n schedules, queues, bots). Always-on apps never sleep.
- Only requests through the app's address keep it awake. Work it does on its own, such as polling, does not.
- The platform runs a limited number of apps at once. When it is full, the app that has been idle the longest goes to sleep to make room; if none can, the waking page asks the visitor to try again shortly.
- Stop keeps an app down until you start it again; visitors see a “Stopped” page meanwhile.
Manage
| Button | What it does |
|---|---|
| Show logs | The last 200 lines of the app's output, read only. |
| Restart | Restarts the container. The volume and settings stay. |
| Redeploy | Pulls the image again and recreates the container, so a new version of the same tag is picked up. The volume stays. |
| Settings | Change the image, port, size, variables or Always on, then redeploy with them. |
| Stop / Start | Stops the app until you start it again, or starts a sleeping app now. |
| Delete | Removes the container and its volume. This cannot be undone. |
Limits
- Memory and CPU are capped at the app's size, with no swap. An app that needs more memory is stopped by the system and restarted.
- At most 256 processes per app, no privileged mode, and all Linux capabilities dropped except the few images need to switch to their own user.
- Outgoing email ports (25, 465, 587) are blocked. Send email through the Email service or an email API.
- Docker keeps up to 10 MB of each app's logs.
- When credits run out, apps are paused like databases and Redis. After credits are added, always-on apps start again and the others wake on their next request.
Use with AI
Ask your coding agent to get your app ready to run as a container.
- 1
Open a terminal in your app's folder and start Claude Code.
claude
- 2
Paste the prompt below and press Enter. Approve the file edits and commands it asks about.
- 3
Optional: save a short note about CloudHike.dev in CLAUDE.md so every session knows about it.
Read https://cloudhike.dev/docs/md/apps. Check that this app can run as a container on CloudHike.dev: it needs a public Docker image, must listen on the port given in the PORT environment variable on 0.0.0.0, should keep files it must not lose under /data, and must not send email over SMTP. Suggest a Dockerfile and the changes needed, but do not edit any files yet.
Replace the placeholders in <angle brackets> before sending. Always review what the agent changes.
