GETTING STARTED

Three steps, a few minutes

This guide is for people bringing their own code. Don't have any? Create an app and choose Describe it or Use a template instead, and skip all of this.

Step 1: Prepare Your Project Files

Place your Python code in a directory with a standard dependency manifest. Cloudilio supports requirements.txt, Pipfile, and pyproject.toml.

# Example directory layout
my-python-app/
├── app.py                  # Entry point file
├── requirements.txt        # Pinned Python dependencies
└── data/                   # Local assets (optional)

Here is a minimal Flask application in app.py:

# app.py
import os
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def home():
    return jsonify({
        "status": "online",
        "platform": "Cloudilio",
        "port": os.environ.get("PORT", "8000")
    })
if __name__ == "__main__":
    port = int(os.environ.get("PORT", "8000"))
    app.run(host="0.0.0.0", port=port)

Add the necessary packages to requirements.txt:

flask==3.0.3
gunicorn==22.0.0

Step 2: Create Your Application in Cloudilio

Sign in and press New app. If you're bringing code, choose one of these:

Deployment Source Description Ideal For
Source ZIP Upload Upload a compressed archive containing your repository. Instant deployments and local testing.
Built-In Starters Select a pre-configured template (Flask, Django, FastAPI, General Python). New projects and proof of concepts.
GitHub Repository Link a public or private GitHub repository branch. Continuous delivery and team workflows.

Step 3: Deploy and Inspect Runtime Output

The platform triggers the build pipeline immediately upon submission. The deployment worker executes the following steps:

  1. Security Inspection: The worker unpacks files and checks paths against directory traversal attempts.
  2. Runtime Detection: The worker identifies the framework from dependencies and entry files.
  3. Container Assembly: The worker builds a secure image running under user ID 1000.
  4. Process Launch: The worker launches the process and mounts /app/data for persistent storage.
  5. Edge Verification: The worker sends an HTTP probe to the health check endpoint.
LIVE ENDPOINT ROUTING
Cloudilio assigns a subdomain formatted as https://<app-slug>.apps.local. When running on a public node, the edge router provisions an automatic Let's Encrypt certificate.
Next Steps

Explore framework specifics or configure persistent databases: