Files
2025-11-30 08:30:10 +08:00

93 lines
1.9 KiB
Markdown

# Getting Started with Modal
## Sign Up
Sign up for free at https://modal.com and get $30/month of credits.
## Authentication
Set up authentication using the Modal CLI:
```bash
modal token new
```
This creates credentials in `~/.modal.toml`. Alternatively, set environment variables:
- `MODAL_TOKEN_ID`
- `MODAL_TOKEN_SECRET`
## Basic Concepts
### Modal is Serverless
Modal is a serverless platform - only pay for resources used and spin up containers on demand in seconds.
### Core Components
**App**: Represents an application running on Modal, grouping one or more Functions for atomic deployment.
**Function**: Acts as an independent unit that scales up and down independently. No containers run (and no charges) when there are no live inputs.
**Image**: The environment code runs in - a container snapshot with dependencies installed.
## First Modal App
Create a file `hello_modal.py`:
```python
import modal
app = modal.App(name="hello-modal")
@app.function()
def hello():
print("Hello from Modal!")
return "success"
@app.local_entrypoint()
def main():
hello.remote()
```
Run with:
```bash
modal run hello_modal.py
```
## Running Apps
### Ephemeral Apps (Development)
Run temporarily with `modal run`:
```bash
modal run script.py
```
The app stops when the script exits. Use `--detach` to keep running after client exits.
### Deployed Apps (Production)
Deploy persistently with `modal deploy`:
```bash
modal deploy script.py
```
View deployed apps at https://modal.com/apps or with:
```bash
modal app list
```
Stop deployed apps:
```bash
modal app stop app-name
```
## Key Features
- **Fast prototyping**: Write Python, run on GPUs in seconds
- **Serverless APIs**: Create web endpoints with a decorator
- **Scheduled jobs**: Run cron jobs in the cloud
- **GPU inference**: Access T4, L4, A10, A100, H100, H200, B200 GPUs
- **Distributed volumes**: Persistent storage for ML models
- **Sandboxes**: Secure containers for untrusted code