Documentation

Everything you need to deploy and run a project on Deployka.

Project not starting? Open the troubleshooting guide →

Getting started

Register on the site (email or Telegram login), open your dashboard → "Projects" and click "New project". Pick a source: a GitHub repo URL or a ready-made template.

After deploy, the project shows up in your project list with a live status. Logs and status update in real time.

Deploy from your terminal

Deployka CLI uploads a project from your terminal. Node.js 20 or newer is required. The npm package is in beta; Deployka CLI API access is currently limited to invited QA accounts. Open your project folder and run:

npx deployka login
npx deployka deploy

On first login, Deployka opens in your browser. Compare the terminal code with the code on screen, confirm that you started the CLI, and return to the terminal. The token is stored in your system credential store; if unavailable, the CLI asks before saving a private local file.

Before upload, the CLI shows the first 30 file paths and ZIP size and asks for confirmation. `.env*`, keys and credentials, `.git`, dependencies, build outputs, caches, symlinks, and `.deployka` are excluded. The limit is 20 MB and 300 files. Enter ENV separately using hidden prompts; local `.env` files are never read automatically.

The first deploy uses the normal project preflight and Free/Nano offer. If you receive a paid offer or enter the Free queue, finish that step in your dashboard. The CLI does not create invoices or charge you.

npx deployka deploy
npx deployka status
npx deployka logs
npx deployka logout

Running `deploy` again from this folder updates the linked project. If the project fails to start, inspect the redacted logs. If login expires, run `npx deployka login`; view and revoke devices in Dashboard Settings.

If preflight stops the launch, fix the reported issue and retry `npx deployka deploy`. The draft remains in your dashboard; a failed preflight does not create an invoice.

Deployka CLI on npm

Connect an AI agent with MCP

First sign in with the CLI under the same OS account used by your AI agent. Add this server to the client MCP configuration and replace cwd with the absolute project path:

{
  "mcpServers": {
    "deployka": {
      "command": "npx",
      "args": ["--yes", "deployka-mcp"],
      "cwd": "/absolute/path/to/your/project"
    }
  }
}

The MCP server can inspect a project, prepare an archive, report status, and show logs. A compatible MCP client must ask for your confirmation before uploading source. The server never reads `.env`; complete any Free/Nano choice or payment on the website. CLI API access remains invite-only.

Deployka MCP on npm

Deploying via GitHub

Only GitHub repos over HTTPS are supported (e.g. https://github.com/owner/repo). For private repos, provide a read-access GitHub token.

We clone the latest commit on the default branch and look for a Dockerfile — if there isn't one, we build an image automatically based on package.json/requirements.txt.

More: deploy from GitHub →

Stack hosting guides

Dedicated landing pages for real deploy scenarios — with ENV, common failures, and pricing.

Templates — full reference

Every template below deploys without any code of your own — pick it, fill in the required env vars, and click Deploy. On the Templates page, templates needing just one variable deploy immediately after you fill it in (one-tap), skipping the full wizard.

TemplateStackRequired env vars (example value)Detailed guide
Telegram Bot
Python / aiogram.
PythonBOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
Telegram Bot + SQLite
Bot with a database.
PythonBOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
Telegram Bot (Node.js)
Node.js / Telegraf.
Node.jsBOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
Telegram Bot (C#)
C# / Telegram.Bot.
C#BOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
Discord Bot
Python / discord.py.
PythonDISCORD_TOKEN = MTA1Mj...(Discord Developer Portal → Bot → Token)Open guide →
Discord Bot (JS)
Node.js / discord.js.
Node.jsDISCORD_TOKEN = MTA1Mj...(Discord Developer Portal → Bot → Token)Open guide →
Discord Bot (C#)
C# / Discord.Net.
C#DISCORD_TOKEN = MTA1Mj...(Discord Developer Portal → Bot → Token)Open guide →
Telegram Mini App
Backend for a Mini App.
PythonBOT_TOKEN = 123456789:AAHf3x...(from @BotFather); WEBAPP_URL = https://your-miniapp.example.comOpen guide →
WhatsApp Bot
Python / Baileys API.
PythonAPI_KEY = sk-...(provider-specific)Open guide →
FastAPI Backend
Python API server.
PythonPORT = 8000Open guide →
Flask App
Simple Python web app.
PythonPORT = 8000Open guide →
Express API
Node.js / Express.
Node.jsPORT = 8000Open guide →
NestJS API
Node.js / NestJS.
Node.jsPORT = 8000Open guide →
Next.js App
React / SSR.
Node.jsPORT = 8000Open guide →
Nuxt.js App
Vue / SSR.
Node.jsPORT = 8000Open guide →
Go API
Go / net/http.
GoPORT = 8000Open guide →
Rust API
Rust / Actix.
RustPORT = 8000Open guide →
ASP.NET API
C# / .NET 8.
C#PORT = 8000Open guide →
ASP.NET WebApp
C# / MVC + Razor.
C#PORT = 8000Open guide →
Webhook Receiver
FastAPI endpoint.
PythonSECRET_KEY = a random 32+ char stringOpen guide →
AI Chatbot (OpenAI)
Telegram bot + GPT.
PythonOPENAI_API_KEY = sk-proj-...(platform.openai.com/api-keys); BOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
AI Chatbot (Claude)
Telegram bot + Claude.
PythonANTHROPIC_API_KEY = sk-ant-...(console.anthropic.com); BOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
RAG Chatbot Lite
Chat with memory.
PythonAPI_KEY = sk-...(provider-specific); BOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
OpenClaw
AI agent for Telegram/WhatsApp. Requires an API key.
Node.jsOPENAI_API_KEY = sk-proj-...(platform.openai.com/api-keys); TELEGRAM_BOT_TOKEN = 123456789:AAHf3x...(from @BotFather)Open guide →
Hermes Agent
Self-improving AI agent from Nous Research.
PythonOPENROUTER_API_KEY = —; TELEGRAM_BOT_TOKEN = 123456789:AAHf3x...(from @BotFather); TELEGRAM_ALLOWED_USERS = —Open guide →
Cron Python Script
Scheduled tasks.
PythonSCHEDULE = */15 * * * * (5-field cron, UTC)Open guide →
Data Parser
Scrape data from websites.
PythonURL = https://example.com/page-to-scrape; SCHEDULE = */15 * * * * (5-field cron, UTC)Open guide →
n8n + Telegram
Visual automation. n8n server.
Node.jsnoneOpen guide →
Landing Page
HTML / static.
StaticnoneOpen guide →
API MVP
FastAPI + database.
PythonPORT = 8000Open guide →
React SPA
React / Vite.
ReactnoneOpen guide →

Every template has its own detailed step-by-step guide — where to get each token, what to click, how to verify it worked. These links are safe to hand to people with zero deploy experience.

OpenClaw and Hermes Agent one-tap deploy the same way as other templates — we clone the project's real upstream repo (github.com/openclaw/openclaw and github.com/NousResearch/hermes-agent respectively, each ships its own Dockerfile) and build it with your env vars. These are genuine third-party agent frameworks, not our fork — updates come from the original repo on every deploy.

Worked examples: what to fill in per template type

Below is one worked example per template category: what you type into the form and what happens on deploy.

CategoryExampleWhat you enterWhat you get
BotsTelegram Bot (aiogram)BOT_TOKEN = 123456789:AAHf...A container running aiogram, up in ~30s, status running plus a URL like https://name.deployka.dev if the template has a web component.
BackendsFastAPI BackendPORT = 8000A FastAPI app served by uvicorn, reachable over an HTTPS subdomain, with PORT passed through into the container.
AIAI Chatbot (OpenAI)OPENAI_API_KEY = sk-proj-...; BOT_TOKEN = 123456789:AAHf...A Telegram bot that forwards messages to OpenAI and replies to the user — both keys are required, deploy won't start without either.
AutomationData parserURL = https://example.com; SCHEDULE = */15 * * * *A requests + BeautifulSoup script, run on a schedule inside the container (not the host's system cron).
Vibe MVPLanding PagenoneA static HTML page, deploys instantly with no env vars — good for a landing page or placeholder.

Environment variables

Set in the project creation form as key-value pairs. Names must be uppercase letters, digits and underscores only. Values are stored encrypted and injected into the container at runtime.

Your own code: GitHub or ZIP — what files you need

If you're not using a template, deploy your own code via a GitHub repo URL or by uploading a .zip archive (the "Upload ZIP" button in the project wizard). We look for a Dockerfile at the repo root; if there isn't one, we auto-build based on your stack's marker file.

StackRequired fileWithout a Dockerfile
Pythonrequirements.txtpip install, runs python main.py
Node.jspackage.jsonAuto-build for Next.js / Vite / CRA / Node (requires scripts.start). Package manager from packageManager or lockfile.
Go / Rust / .NET / otherDockerfileRequired — the build won't start for non-Python stacks without one.

Easiest path: copy the Dockerfile from any matching-stack template above and adapt it to your code — they are all verified and actually build.

ZIP limits: up to 20 MB, up to 300 files. Nested folders are preserved. Symlinks are skipped; absolute paths and `..` are rejected.

Telegram bot & cabinet

Log in via the "Login with Telegram" button on the site to link your account. Then open the bot and send /cabinet — you'll see your projects with Start/Stop/Restart and Logs buttons right in the chat.

The /support command opens a ticket right from the chat. /tickets shows your history and lets you reply in an existing thread. Administrator replies arrive in Telegram and appear in the dashboard. /status shows that the bot is online.

Billing & payments

Balance is charged monthly per active project at the selected plan's price. Top up in the dashboard via Telegram Stars or crypto (Heleket, CryptoBot).

If your balance runs out, the project is suspended but not deleted — top up and it resumes.

My project won't start — what now?

Check the project logs in your dashboard or via /cabinet → Logs in Telegram — they show the failure reason (missing env var, code error, wrong start command).

Diagnose BOT_TOKEN, webhook, OOM, or build failures →

Still stuck? Open a support ticket, or run the free Deploy Doctor scan on the Deploy Doctor page — it flags common deploy blockers.

Didn't find your answer?

Reach support from your dashboard or at support@deployka.dev.