Cloud Deploy
Airupt can run on any cloud VM or PaaS. First-class configs are provided for Fly.io and Railway.
Fly.io
The repo includes a fly.toml. Deploy in three commands:
bash
# Install flyctl if needed
curl -L https://fly.io/install.sh | sh
# Authenticate
fly auth login
# Launch (first time)
fly launch
# Or deploy updates
fly deploySet secrets
bash
fly secrets set AIRUPT_LLM_API_KEY=sk-...
fly secrets set AIRUPT_CHANNELS_TELEGRAM_BOT_TOKEN=123456:ABC...Persistent storage
Airupt needs a volume for memory and cost data:
bash
fly volumes create airupt_data --size 1The fly.toml already mounts this at /home/airupt/.airupt.
fly.toml overview
toml
[build]
[env]
PORT = "8080"
[mounts]
source = "airupt_data"
destination = "/home/airupt/.airupt"
[[services]]
internal_port = 8080
protocol = "tcp"No public HTTP port is required unless you enable the WhatsApp webhook.
Railway
The repo includes a railway.json. Deploy via the Railway dashboard or CLI:
bash
npm i -g @railway/cli
railway login
railway upEnvironment variables
Set these in the Railway dashboard under your service's Variables tab:
| Variable | Value |
|---|---|
AIRUPT_LLM_API_KEY | Your OpenAI/Anthropic key |
AIRUPT_CHANNELS_TELEGRAM_BOT_TOKEN | Telegram bot token |
AIRUPT_LLM_PROVIDER | openai or anthropic |
AIRUPT_LLM_MODEL | e.g. gpt-4o |
Persistent volume
Add a Railway volume mounted at /home/airupt/.airupt to persist memory and costs across deploys.
Generic VPS
On any Ubuntu/Debian server:
bash
# Install Node 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt install -y nodejs
# Install Airupt
npm i -g airupt
# Configure
airupt setup
# Run with pm2
npm i -g pm2
pm2 start "airupt start" --name airupt
pm2 save
pm2 startup