App Platform runs your own code — Node.js, Python, Go, Ruby, PHP, Java, Rust, .NET, Elixir, or anything with a Dockerfile. You deploy from GitHub or from your terminal, and we handle the build, the container, SSL and routing.
Never deployed an application before? Start with Deploy Your First App — Complete Walkthrough, which goes from an empty folder on your computer to a live site, one command at a time. This page is the overview; that one is the tutorial.
App Platform is for custom applications. If you want WordPress, a website builder, or email, choose Shared Hosting or the AI Website Builder instead.
Step 1 — Create your app
- Sign in to your Client Portal
- Go to Services → App Platform
- Click New App and give it a name
Your plan decides how many apps you can run. If you have capacity left, New App creates one straight away — you do not need to buy anything again. See Plans, Apps and Limits for what each plan includes.
Once created, your app has its own URL. It is shown on the app's Overview page — open the app and you will see it, with a link to click.
Step 2 — Choose how you deploy
There are two ways, and you can use either.
Option A — GitHub (recommended)
- Open your app and go to the GitHub tab
- Paste your repository URL
- Choose the branch to deploy from (usually
main) - Turn on Auto-deploy on push
- Click Connect Repository
Every push to that branch then deploys automatically.
Option B — Deploy token (from your terminal or CI)
Create a token in the app's Deploy Tokens tab. The page then prints a ready-to-run command with your token already in it — copy that and run it:
tar czf app.tar.gz -C my-app .
curl -X POST https://deploy.colosoft.com/deploy/your-app-name \
-H "Authorization: Bearer <YOUR_DEPLOY_TOKEN>" \
-H "Content-Type: application/gzip" \
--data-binary @app.tar.gzSee Deploying with a Deploy Token for the full walkthrough.
There is no SSH key deploy and no SSH access to the server. Deploy Tokens replace it. If you need shell or root access to a machine, you need a VPS rather than App Platform.
Step 3 — Your app goes live
When you deploy, the platform:
- Receives your code
- Detects the language (or uses your Dockerfile)
- Installs dependencies
- Builds the application
- Runs a health check
- Switches traffic to the new version with no downtime
Most apps are live in under a minute.
Supported languages
| Language | Detected from | Started with |
|---|---|---|
| Node.js | package.json | npm start or Procfile |
| Python | requirements.txt or Pipfile | gunicorn or Procfile |
| Go | go.mod | compiled binary |
| Ruby | Gemfile | bundle exec or Procfile |
| PHP | composer.json | php-fpm |
| Java | pom.xml or build.gradle | java -jar |
| Rust | Cargo.toml | compiled binary |
| .NET | *.csproj | dotnet run |
| Docker | Dockerfile | your CMD / ENTRYPOINT |
Your app must listen correctly
This is the single most common reason a deploy builds fine but the site does not load.
- Listen on the port the platform gives you in the
PORTenvironment variable - Bind to
0.0.0.0, notlocalhostor127.0.0.1— an app bound to localhost is unreachable from outside its own container
// Node.js
const port = process.env.PORT || 3000;
app.listen(port, '0.0.0.0');# Python
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)Procfile
A Procfile in your project root tells the platform how to start your app:
web: node server.jsweb: gunicorn app:app --bind 0.0.0.0:$PORTNext steps
- Add environment variables → Env Vars tab
- Connect your own domain → Domains tab
- Set up automatic deploys → GitHub tab
- Deploy from your terminal → Deploy Tokens tab