MoltBot is an open-source personal AI assistant that runs 24/7 and communicates through Discord, Telegram, WhatsApp, and more. This guide shows you how to deploy it on Azure Container Apps with a single command (azd up), with built-in security features.
π The Quick Version: Create a Discord bot, clone the repo, run
azd up, invite bot to server, start chatting. Total time: ~25 minutes. Total cost: ~$40-60/month.
Why Azure Container Apps over other options?
- β Managed Identity - No credentials in config files
- β Built-in Secrets - API keys never exposed in logs
- β Automatic HTTPS - Free TLS certificates
- β Hyper-V Isolation - Hardware-level container security
- β Compliance Ready - SOC2, ISO, HIPAA certifications
π€ What is MoltBot?
If you've ever wanted a personal AI assistant that actually does things - not just answers questions - MoltBot is for you. Created by Peter Steinberger and a growing open-source community, MoltBot is a personal AI assistant that:
| Capability | Description |
|---|---|
| π Runs 24/7 | On your own infrastructure, always available |
| π¬ Multi-channel | Telegram, Discord, WhatsApp, Slack, iMessage, and more |
| π§ Persistent memory | Remembers your preferences and context across sessions |
| βοΈ Task execution | Autonomously clears inboxes, deploys code, manages files |
| π Skill learning | Creates reusable "skills" that you teach it |
π‘ Think of it as: A very capable coworker who never sleeps, works and gets better over time.
βοΈ Why Azure Container Apps?
The original setup guide for MoltBot uses AWS EC2, but Azure Container Apps offers significant advantages for running a 24/7 AI assistant - especially around security.
π Security Posture Comparison
When deploying a personal AI assistant that can execute code, access APIs, and potentially connect to sensitive services, security isn't optional. Here's how Azure Container Apps compares to other popular deployment options:
| Security Feature | Azure Container Apps |
|---|---|
| Managed Identity (passwordless auth) | β Native |
| Secrets Management | β Built-in secrets |
| VNet Integration | β Native |
| Private Endpoints | β Supported |
| Automatic TLS/HTTPS | β Free, auto-renewed |
| DDoS Protection | β Azure DDoS |
| Compliance Certifications | β SOC2, ISO, HIPAA |
| RBAC (Role-Based Access) | β Azure RBAC |
| Audit Logging | β Log Analytics |
| Container Isolation | β Hyper-V |
| Network Policies | β Native |
| Vulnerability Scanning | β Defender for Cloud |
π‘οΈ Why Security Matters for AI Assistants
MoltBot isn't just a chatbot - it can:
- Execute shell commands on the container
- Access external APIs with your credentials
- Store conversation history including potentially sensitive information
- Connect to messaging platforms with bot tokens
This makes security architecture critical. Let's break down the key advantages:
1. Managed Identity: Zero Secrets in Code
Azure Container Apps:
// No credentials needed - Azure handles auth automatically
identity: {
type: 'UserAssigned'
userAssignedIdentities: { '${managedIdentity.id}': {} }
}
Other platforms: Require storing access keys in environment variables or config files, creating potential leak vectors.
2. Secrets Management: First-Class Support
Azure Container Apps:
# Secrets stored securely, referenced by name
az containerapp secret set --name MoltBot --secrets "api-key=$MY_KEY"
# Used as: secretRef: 'api-key'
Other platforms: Secrets typically live in .env files on disk, visible to anyone with SSH access.
3. Network Isolation: VNet by Default
Azure Container Apps can be deployed into a VNet with:
- Private ingress only - no public IP
- Private Endpoints for Azure services
- Network Security Groups for fine-grained control
- Service Endpoints for secure storage access
This means your MoltBot can be completely isolated from the public internet while still connecting to your messaging channels.
4. Container Runtime Security
Azure Container Apps runs on Hyper-V isolated containers, providing:
- Kernel-level isolation between workloads
- No shared kernel vulnerabilities
- Hardware-backed security boundaries
Compare this to standard Docker on VPS providers where containers share the host kernel
π Why Container Apps Wins
| Benefit | Description |
|---|---|
| π§ Zero Maintenance | No VMs to patch, no Kubernetes to manage |
| π Auto-scaling | Scales to zero when idle, scales up under load |
| π Built-in HTTPS | Automatic TLS certificates from Azure |
| π Integrated Monitoring | Logs flow to Azure Log Analytics automatically |
| π‘οΈ Security Features | Managed Identity, VNet integration, Private Endpoints |
| π Global Reach | Deploy to any Azure region worldwide |
π The 30-Minute Setup
π Prerequisites
Before you start, you'll need:
| Requirement | Link |
|---|---|
| β Azure subscription | Free tier works for testing |
| β Azure CLI | Install here |
| β Azure Developer CLI (azd) | Install here |
| β OpenRouter API Key | openrouter.ai/keys (recommended) |
| β Discord Account | For bot creation |
π‘ Why OpenRouter? OpenRouter provides access to multiple AI models (Claude, GPT-4, Gemini) through a single API. For the simplicity for this demo we are using OpenRouter.
0οΈβ£ Create Your Discord Bot First! (5 minutes)
β οΈ Important: Do this before running azd up - you'll need the bot token during deployment.
| Step | Action |
|---|---|
| 1 | Go to Discord Developer Portal |
| 2 | Click New Application β Name it (e.g., "MoltBot-Azure") |
| 3 | Go to Bot β Click Add Bot |
| 4 | Enable Privileged Gateway Intents: Message Content β , Server Members β |
| 5 | Click Reset Token β Copy the bot token (save it securely!) |
| 6 | Go to OAuth2 β URL Generator |
| 7 | Select Scopes: bot, applications.commands |
| 8 | Select Permissions: Send Messages, Read Message History, View Channels |
| 9 | Copy the generated OAuth2 URL (you'll need this to invite the bot) |
Get Your Discord User ID:
| Step | Action |
|---|---|
| 1 | In Discord: Settings β Advanced β Enable Developer Mode |
| 2 | Right-click your username β Copy User ID |
π Security Note: The Discord User ID is used for the DM allowlist. Only users in this list can message your bot directly.
1οΈβ£ Get the Sample (2 minutes)
Clone the deployment template:
git clone https://github.com/BandaruDheeraj/moltbot-azure-container-apps
cd moltbot-azure-container-apps
2οΈβ£ Provision Infrastructure (5-7 minutes)
Run the initial provisioning:
azd provision
You'll be prompted for:
| Prompt | What to Enter |
|---|---|
| Environment name | MoltBot-prod |
| Azure subscription | Select from your list |
| Azure location | eastus2 (recommended) |
Note:
azd provisioncreates the Azure infrastructure without deploying the app. We need to build the image first.
This creates:
| Step | What Happens |
|---|---|
| 1οΈβ£ | Creates a Resource Group |
| 2οΈβ£ | Deploys Azure Container Registry |
| 3οΈβ£ | Sets up Azure Storage for persistent data |
| 4οΈβ£ | Creates a Container Apps Environment |
| 5οΈβ£ | Configures Log Analytics for monitoring |
2.5οΈβ£ Build the Container Image (Required - 3-5 minutes)
β οΈ This must be done before deploying the app. The container image needs to exist in ACR before the Container App can pull it.
# Get your ACR name from the provisioned resources
ACR_NAME=$(az acr list --resource-group rg-MoltBot-prod --query "[0].name" -o tsv)
# Build the image in Azure Container Registry (no local Docker needed!)
az acr build --registry $ACR_NAME --image "MoltBot:latest" --file src/MoltBot/Dockerfile src/MoltBot/
Understanding this command:
| Part | What It Does |
|---|---|
--registry $ACR_NAME | Build in your Azure Container Registry (in the cloud) |
--image "MoltBot:latest" | Name the output image MoltBot:latest (we choose this name) |
--file src/MoltBot/Dockerfile | Use the Dockerfile from our sample repo |
src/MoltBot/ | Send this folder as the build context |
π‘ What happens during the build? The Dockerfile in our sample (at
src/MoltBot/Dockerfile) automatically:
- Starts from a Node.js base image
- Clones the official MoltBot source code from GitHub
- Installs dependencies with pnpm
- Builds the TypeScript application
- Builds the Control UI
- Adds our custom
entrypoint.shthat generates config from Azure environment variablesYou don't need to download MoltBot separately - it's pulled fresh from GitHub during the ACR build. The resulting image is stored in your ACR as
MoltBot:latest.
2.6οΈβ£ Configure Your Credentials (Required)
Set your secrets before deploying:
cd moltbot-azure-container-apps
# Set your required secrets
azd env set OPENROUTER_API_KEY "sk-or-v1-your-key-here"
azd env set DISCORD_BOT_TOKEN "your-discord-bot-token"
azd env set DISCORD_ALLOWED_USERS "your-discord-user-id"
Where to get these values:
| Variable | Where to Get It |
|---|---|
OPENROUTER_API_KEY | openrouter.ai/keys |
DISCORD_BOT_TOKEN | Discord Developer Portal β Your App β Bot β Reset Token |
DISCORD_ALLOWED_USERS | Discord β Settings β Advanced β Developer Mode β Right-click your username β Copy User ID |
Optional settings:
# Change the AI model
azd env set MOLTBOT_MODEL "openrouter/anthropic/claude-3.5-sonnet"
# Change the bot's name
azd env set MOLTBOT_PERSONA_NAME "Clawd"
# Add IP restrictions (for security)
azd env set ALLOWED_IP_RANGES "1.2.3.4/32"
# Enable email alerts
azd env set ALERT_EMAIL_ADDRESS "your-email@example.com"
2.7οΈβ£ Deploy the Application
Now deploy with your configuration:
azd deploy
This deploys MoltBot to Container Apps with all your secrets configured.
β οΈ Important: If you change any environment variables later, run
azd deployagain to apply them.
3οΈβ£ Invite Your Bot to a Server (2 minutes)
β οΈ Critical: Discord requires bots and users to share a server before DMs work!
| Step | Action |
|---|---|
| 1 | Open the OAuth2 URL you copied in Step 0 |
| 2 | Select a server to invite the bot to (or create a new one) |
| 3 | Click Authorize |
4οΈβ£ Start Chatting! π¬
| Step | Action |
|---|---|
| 1 | Find your bot in the server's member list (right sidebar) |
| 2 | Right-click the bot β Message to open a DM |
| 3 | Send: Hello! |
| 4 | Wait a few seconds for the response π |
π You're now chatting with your personal AI assistant running 24/7 on Azure!
π Troubleshooting Common Issues
We encountered these issues during testing - here's how to fix them:
Container Image Not Found (MANIFEST_UNKNOWN)
Problem: Logs show MANIFEST_UNKNOWN: manifest tagged by "latest" is not found
Cause: The container image wasn't built before deployment.
Solution: Build the image manually:
ACR_NAME=$(az acr list --resource-group rg-MoltBot-prod --query "[0].name" -o tsv)
az acr build --registry $ACR_NAME --image "MoltBot:latest" --file src/MoltBot/Dockerfile src/MoltBot/
azd deploy
Windows Line Endings Breaking entrypoint.sh
Problem: Logs show exec /app/entrypoint.sh: no such file or directory
Cause: Windows CRLF line endings in shell scripts break Linux containers.
Solution: Convert to Unix line endings before building:
# PowerShell - convert CRLF to LF
$content = Get-Content src/MoltBot/entrypoint.sh -Raw
$content -replace "`r`n", "`n" | Set-Content src/MoltBot/entrypoint.sh -NoNewline
Then rebuild the image:
az acr build --registry $ACR_NAME --image "MoltBot:latest" --file src/MoltBot/Dockerfile src/MoltBot/
Secrets Not Applied (Discord Application ID Error)
Problem: Logs show Failed to resolve Discord application id
Cause: azd env set stores values locally, but they weren't applied to the container.
Solution: Manually set secrets on the container app:
RESOURCE_GROUP="rg-MoltBot-prod"
APP_NAME="MoltBot"
az containerapp secret set --name $APP_NAME --resource-group $RESOURCE_GROUP \
--secrets "discord-bot-token=YOUR_ACTUAL_TOKEN"
az containerapp update --name $APP_NAME --resource-group $RESOURCE_GROUP \
--set-env-vars "DISCORD_ALLOWED_USERS=YOUR_DISCORD_USER_ID"
# Restart to apply
REVISION=$(az containerapp show --name $APP_NAME --resource-group $RESOURCE_GROUP \
--query "properties.latestRevisionName" -o tsv)
az containerapp revision restart --name $APP_NAME --resource-group $RESOURCE_GROUP --revision $REVISION
"Unknown model" Error
Problem: MoltBot logs show Unknown model: openrouter/anthropic/claude-sonnet-4-5
Cause: Model IDs must be exact. There's no model called claude-sonnet-4-5.
Solution:
azd env set MOLTBOT_MODEL "openrouter/anthropic/claude-3.5-sonnet"
azd deploy
| β Correct Model IDs | β These Don't Exist |
|---|---|
openrouter/anthropic/claude-3.5-sonnet | claude-sonnet-4-5 |
openrouter/anthropic/claude-3-opus | openrouter:anthropic/claude-3.5-sonnet |
openrouter/openai/gpt-4-turbo | anthropic/claude-opus-4-5 |
π‘ Tip: Check openrouter.ai/models for current model names.
HTTP 401 Authentication Error
Problem: Logs show HTTP 401: authentication_error
Cause: Invalid or missing OpenRouter API key.
Solution:
# Verify your key at openrouter.ai/keys first
azd env set OPENROUTER_API_KEY "sk-or-v1-your-actual-key"
azd deploy
Can't DM the Bot
Problem: Discord says "Unable to send messages to this user"
Cause: Discord requires a shared server before you can DM a bot.
Solution:
- Invite the bot to a server using the OAuth2 URL
- Then DM the bot from that server's member list
Bot Doesn't Respond to DMs
Problem: Bot is online but ignores your messages.
Cause: Your Discord user ID isn't in the allowlist.
Solution:
azd env set DISCORD_ALLOWED_USERS "your-discord-user-id"
azd deploy
ποΈ What You Just Deployed
Here's what's running in your Azure subscription:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Azure Resource Group β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Azure Container Apps Environment ββ
β β ββ
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β β π¦ MoltBot Container App β ββ
β β β β ββ
β β β Gateway β Control plane for sessions and tools β ββ
β β β Control UI β Web dashboard for management β ββ
β β β Channels β Telegram, Discord, WhatsApp connections β ββ
β β β Skills β Extensible automation capabilities β ββ
β β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββ βββββββββββββββββββββββ βββββββββββββββββββββββ β
β β π¦ Container β β πΎ Storage β β π Log Analytics β β
β β Registry β β Account β β β β
β β (stores image) β β (persistent data) β β (logs & metrics) β β
β βββββββββββββββββββββββ βββββββββββββββββββββββ βββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
πͺ Why This is So Powerful
βοΈ 1. It Actually Does Things
Unlike ChatGPT or other chat interfaces, MoltBot can:
| Capability | Example |
|---|---|
| π₯οΈ Execute shell commands | Deploy code, manage files |
| π Browse the web | Fill forms, extract data |
| π§ Connect to services | Gmail, Calendar, GitHub |
| π Manage files | Create, edit, organize |
| β° Run scheduled tasks | Cron jobs, reminders |
| π Call you on the phone | With ElevenLabs integration |
π 2. It Learns and Improves
MoltBot uses a "skills" system. Teach it something new:
"Create a skill that checks my flight status and texts me if there are delays"
It will create that skill, test it, and run it whenever you ask (or on a schedule).
π§ 3. It Remembers Context
Unlike stateless AI chats, MoltBot maintains persistent memory:
- β Your preferences
- β Past conversations
- β Files you've shared
- β Skills you've taught it
This context persists across sessions, even if the container restarts.
π 4. Secure by Default
Running on Azure Container Apps means:
| Security Feature | Benefit |
|---|---|
| π SOC 2 / ISO 27001 | Azure's security certifications apply |
| π VNet integration | Keep traffic on private networks |
| πͺͺ Managed Identity | No secrets in code |
| π₯ RBAC | Fine-grained access control |
| π Audit logs | Everything logged to Log Analytics |
π§ͺ Quick Test Drive
Once deployed, try these commands with your MoltBot:
π Basic Tasks
"What's the weather in New York?"
"Set a reminder for tomorrow at 9am to call the dentist"
π Research
"Research the top 5 project management tools and give me a comparison"
π§ Automation
"Check my last 10 emails and tell me which ones need a response"
π οΈ Skills
"Create a skill that summarizes any webpage I send you"
βοΈ Advanced Configuration
οΏ½ How It Works Under the Hood
When you run azd up, the deployment does something clever: it builds MoltBot from source in Azure Container Registry, then injects your configuration at runtime via an entrypoint script.
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β azd up ββββββΆβ ACR Build ββββββΆβ Container App β
β β β (from source) β β (your config) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β entrypoint.sh β
β β
β Generates JSON β
β config from β
β env variables β
βββββββββββββββββββ
The entrypoint script converts your environment variables into MoltBot's JSON configuration format at startup. This means:
- Secrets stay out of the image - Configuration is injected at runtime
- Easy updates - Just change env vars and redeploy
- No manual config files - The script handles schema changes
π Viewing Logs
az containerapp logs show \
--name MoltBot \
--resource-group rg-MoltBot-prod \
--follow --tail 50
# What healthy logs look like:
# Discord channel configured: yes (DM allowlist: 123456789)
# [discord] logged in to discord as 987654321
# [gateway] agent model: openrouter/anthropic/claude-3.5-sonnet
# [gateway] listening on ws://0.0.0.0:18789
π Updating Secrets
After changing secrets, you must restart the container:
# Update a secret
az containerapp secret set --name MoltBot --resource-group rg-MoltBot-prod \
--secrets "openrouter-api-key=sk-or-v1-new-key"
# Get current revision
REVISION=$(az containerapp show --name MoltBot --resource-group rg-MoltBot-prod \
--query "properties.latestRevisionName" -o tsv)
# Restart to apply
az containerapp revision restart --name MoltBot --resource-group rg-MoltBot-prod \
--revision $REVISION
π Security Best Practices
Azure Container Apps includes several security features by default. Here's how to use them effectively for MoltBot:
οΏ½ Addressing Common Security Concerns
The community has raised several valid security concerns about self-hosting AI assistants. Here's how our Azure Container Apps deployment addresses each one:
| Security Concern | How ACA Addresses It | Configuration |
|---|---|---|
| 1. Close ports / IP allowlist | β Built-in IP restrictions on ingress | ALLOWED_IP_RANGES parameter |
| 2. Auth (JWT/OAuth/strong secret + TLS) | β Gateway token auth + automatic HTTPS | MOLTBOT_GATEWAY_TOKEN + free TLS certs |
| 3. Rotate keys (assume compromise) | β Container App secrets + easy rotation | az containerapp secret set |
| 4. Rate limiting + logs + alerts | β Log Analytics + Azure Monitor alerts | Preconfigured alerts included |
Let's dive into each:
π 1. IP Restrictions / VPN Access
The Concern: "Close the port/firewall to VPN or IP allowlist"
ACA Solution: Container Apps supports IP security restrictions at the ingress level - no need for external firewalls.
# Restrict access to your home IP and VPN
azd env set ALLOWED_IP_RANGES "1.2.3.4/32,10.0.0.0/8"
azd deploy
This creates ingress rules that:
- Allow traffic only from specified CIDR ranges
- Block all other IP addresses at the edge
- Apply before traffic reaches your container
For maximum security (internal-only):
# Deploy with no public ingress at all
azd env set INTERNAL_ONLY "true"
azd deploy
This makes MoltBot accessible only from within your Azure VNet - perfect for corporate environments with VPN access.
π 2. Authentication (Gateway Token + TLS)
The Concern: "Add auth - JWT/OAuth at least a strong secret + TLS"
ACA Solution: Multiple layers of authentication are enabled by default:
| Layer | What It Does | How It Works |
|---|---|---|
| HTTPS/TLS | Encrypts all traffic | Automatic Let's Encrypt certificates |
| Gateway Token | Authenticates Control UI access | 32-char random token in secret |
| DM Allowlist | Restricts who can message the bot | Discord/Telegram user ID whitelist |
| Managed Identity | Authenticates to Azure services | No passwords in config |
The gateway token is auto-generated if not provided:
# Auto-generate (recommended)
azd up # Token generated automatically
# Or specify your own
azd env set MOLTBOT_GATEWAY_TOKEN "your-strong-secret-here"
azd deploy
Why this is better than JWT/OAuth:
- JWT/OAuth requires identity provider setup and maintenance
- Gateway token is simpler but equally secure for single-user scenarios
- DM allowlist provides identity verification at the messaging layer
- Combined with IP restrictions, attack surface is minimal
π 3. Key Rotation (Assume Compromise)
The Concern: "Rotate keys regularly, assume compromise"
ACA Solution: Container App secrets can be rotated without rebuilding or redeploying:
# Rotate OpenRouter API key
az containerapp secret set --name MoltBot --resource-group rg-MoltBot \
--secrets "openrouter-api-key=sk-or-v1-new-key-here"
# Rotate Discord bot token
az containerapp secret set --name MoltBot --resource-group rg-MoltBot \
--secrets "discord-bot-token=new-discord-token"
# Rotate gateway token
az containerapp secret set --name MoltBot --resource-group rg-MoltBot \
--secrets "gateway-token=new-32-char-secret"
# Restart to apply new secrets
REVISION=$(az containerapp show --name MoltBot --resource-group rg-MoltBot \
--query "properties.latestRevisionName" -o tsv)
az containerapp revision restart --name MoltBot --resource-group rg-MoltBot \
--revision $REVISION
Rotation best practices:
- Rotate API keys monthly or after any suspected exposure
- Use Azure Key Vault for automated rotation (optional)
- Monitor for failed auth attempts (covered by alerts below)
π 4. Rate Limiting + Logs + Alerts
The Concern: "Rate limit + comprehensive logging + alerts for anomalies"
ACA Solution: Full observability stack included by default:
Logging (Included)
All container output flows automatically to Log Analytics:
# View real-time logs
az containerapp logs show --name MoltBot --resource-group rg-MoltBot \
--follow --tail 50
# Query historical logs
az monitor log-analytics query \
--workspace $LOG_ANALYTICS_WORKSPACE_ID \
--analytics-query "ContainerAppConsoleLogs_CL | where TimeGenerated > ago(1h)"
Alerts (Preconfigured)
Our deployment includes four security-focused alerts:
| Alert | Trigger | Indicates |
|---|---|---|
| High Error Rate | >10 auth errors in 5 min | Potential brute force attack |
| Container Restarts | >3 restarts in 15 min | Crash loop or OOM attack |
| Unusual Request Volume | >100 messages/hour | Potential abuse |
| Channel Disconnect | Discord/Telegram goes offline | Token revoked or network issue |
Enable email notifications:
azd env set ALERT_EMAIL_ADDRESS "security@yourcompany.com"
azd deploy
Rate Limiting
While Container Apps doesn't have built-in rate limiting, you get effective protection from:
- Discord/Telegram rate limits - Both platforms limit message frequency
- DM Allowlist - Only approved users can send messages
- OpenRouter rate limits - API calls are throttled by your plan
- Unusual activity alerts - Notified when volume spikes
For additional rate limiting, add Azure API Management in front of the gateway.
π§Ή Cleaning Up
When you're done experimenting:
azd down --purge
This removes all Azure resources. Your data in Azure Storage will be deleted.
π― What's Next?
Once your MoltBot is running, explore these capabilities:
| Next Step | Link/Action |
|---|---|
| π§ Browse Skills | molthub.com |
| π Create Custom Skills | Teach through natural language |
| π Add Integrations | Gmail, Calendar, GitHub |
| β° Set Up Cron Jobs | Schedule recurring tasks |
| π€ Enable Voice | Add ElevenLabs for voice |
π Resources
| Resource | Link |
|---|---|
| π MoltBot Docs | docs.molt.bot |
| π» MoltBot GitHub | github.com/MoltBot/MoltBot |
| π¬ MoltBot Discord | discord.gg/molt |
| βοΈ Azure Container Apps | Documentation |
| π¦ Sample Repository | GitHub |
π Try It Yourself
Deploy MoltBot with a single command:
# Clone the sample repository
git clone https://github.com/BandaruDheeraj/moltbot-azure-container-apps
cd moltbot-azure-container-apps
# Deploy everything with Azure Developer CLI
azd up
π¦ Repository: github.com/BandaruDheeraj/moltbot-azure-container-apps
π¬ Questions or feedback? Join the MoltBot Discord or open an issue on the sample repository.