Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
146578 stories
·
33 followers

Azure SDK Release (January 2026)

1 Share

Thank you for your interest in the new Azure SDKs! We release new features, improvements, and bug fixes every month. Subscribe to our Azure SDK Blog RSS Feed to get notified when a new release is available.

You can find links to packages, code, and docs on our Azure SDK Releases page.

Release highlights

AI Foundry 1.2.0-beta.1 for .NET

This major update brings feature support for Microsoft Foundry Agents Service, integration with the new Azure.AI.Projects.OpenAI package, expanded evaluation capabilities, insights, red teaming, schedules, and more. It’s a significant expansion of AI capabilities for .NET developers working with Azure AI services.

Azure AI Search 11.8.0-beta.1 for .NET

This release adds support for the 2025-11-01-preview service version with many new features including multiple facet aggregation types (avg, min, max, cardinality), new knowledge source types (web, remoteSharePoint, indexedSharePoint, indexedOneLake), and support for new Azure OpenAI models (gpt-5, gpt-5-mini, gpt-5-nano). Note that this release includes breaking changes where Knowledge Agent has been renamed to Knowledge Base across all APIs and models.

Functions Extension for WebPubSub for SocketIO 1.0.0 for .NET

The stable release of the Azure Functions extension for Web PubSub for SocketIO has shipped. This library enables developers to build real-time, bidirectional communication applications using the familiar Socket.IO programming model with Azure Web PubSub as the backend.

Initial stable releases

Initial beta releases

Release notes

The post Azure SDK Release (January 2026) appeared first on Azure SDK Blog.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Building environmental-aware API platforms w/ API Management

1 Share
From: Microsoft Azure Developers
Duration: 18:25
Views: 22

Are you striving to reduce the impact on the environment for your A(P)I landscape? Azure API Management is here to help!

๐ŸŒฎ Chapter Markers:

0:00 โ€“ Introduction
01:37 โ€“ Measuring carbon emissions with Azure Carbon Optimizations
03:03 โ€“ Carbon-optimized load balancing in Azure API Management
11:20 โ€“ Carbon insights & traffic shaping in policies
15:18 โ€“ Benefit of carbon-optimization at-scale
17:03 โ€“ wrap up

๐ŸŒฎ Resources
Announcement: https://aka.ms/apim/sustainability/preview/announcement
Sign-up: https://aka.ms/apim/sustainability/preview/join
Learn Docs: https://aka.ms/apim/sustainability/docs
Azure Product page: https://azure.microsoft.com/products/api-management

๐ŸŒฎ Follow us on social:
Scott Hanselman | @SHanselman โ€“ https://x.com/SHanselman
Azure Friday | @AzureFriday โ€“ https://x.com/AzureFriday
Tom Kerkhove | @tomkerkhove โ€“ https://x.com/TomKerkhove

Blog - https://aka.ms/azuredevelopers/blog
Twitter - https://aka.ms/azuredevelopers/twitter
LinkedIn - https://aka.ms/azuredevelopers/linkedin
Twitch - https://aka.ms/azuredevelopers/twitch

#azuredeveloper #azure

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

TanStack Start, AI, and the Future of Frontend Architecture - JSJ 701

1 Share
Itโ€™s great to be back behind the mic! In this episode of JavaScript Jabber, Iโ€™m joined by Dan Shapir and our guest Jack Harrington from Netlify and TanStack for a wide-ranging, high-energy conversation that covers everything from modern frontend architecture to AI toolingโ€”and a few entertaining detours along the way.

We dig into whatโ€™s new and exciting in the TanStack ecosystem, including TanStack Start and TanStack AI, and explore how these tools rethink the balance between frontend-first development and server-side capabilities. Along the way, we unpack React Server Components, AI SDKs, agentic workflows, and how developers can realistically use AI today without losing their mindsโ€”or their context windows.

Links & Resources

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.



Download audio: https://dts.podtrac.com/redirect.mp3/api.spreaker.com/download/episode/69667684/jsj_701.mp3
Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

๐Ÿฆž Deploy MoltBot to Azure Container Apps: Your 24/7 AI Assistant in 30 Minutes

1 Share

๐Ÿš€ 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:

CapabilityDescription
๐Ÿ”„ Runs 24/7On your own infrastructure, always available
๐Ÿ’ฌ Multi-channelTelegram, Discord, WhatsApp, Slack, iMessage, and more
๐Ÿง  Persistent memoryRemembers your preferences and context across sessions
โš™๏ธ Task executionAutonomously clears inboxes, deploys code, manages files
๐Ÿ“š Skill learningCreates 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 FeatureAzure 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

BenefitDescription
๐Ÿ”ง Zero MaintenanceNo VMs to patch, no Kubernetes to manage
๐Ÿ“ˆ Auto-scalingScales to zero when idle, scales up under load
๐Ÿ”’ Built-in HTTPSAutomatic TLS certificates from Azure
๐Ÿ“Š Integrated MonitoringLogs flow to Azure Log Analytics automatically
๐Ÿ›ก๏ธ Security FeaturesManaged Identity, VNet integration, Private Endpoints
๐ŸŒ Global ReachDeploy to any Azure region worldwide

๐Ÿš€ The 30-Minute Setup

๐Ÿ“‹ Prerequisites

Before you start, you'll need:

RequirementLink
โœ… Azure subscriptionFree tier works for testing
โœ… Azure CLIInstall here
โœ… Azure Developer CLI (azd)Install here
โœ… OpenRouter API Keyopenrouter.ai/keys (recommended)
โœ… Discord AccountFor 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.

StepAction
1Go to Discord Developer Portal
2Click New Application โ†’ Name it (e.g., "MoltBot-Azure")
3Go to Bot โ†’ Click Add Bot
4Enable Privileged Gateway Intents: Message Content โœ…, Server Members โœ…
5Click Reset Token โ†’ Copy the bot token (save it securely!)
6Go to OAuth2 โ†’ URL Generator
7Select Scopes: bot, applications.commands
8Select Permissions: Send Messages, Read Message History, View Channels
9Copy the generated OAuth2 URL (you'll need this to invite the bot)

Get Your Discord User ID:

StepAction
1In Discord: Settings โ†’ Advanced โ†’ Enable Developer Mode
2Right-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:

PromptWhat to Enter
Environment nameMoltBot-prod
Azure subscriptionSelect from your list
Azure locationeastus2 (recommended)

Note: azd provision creates the Azure infrastructure without deploying the app. We need to build the image first.

This creates:

StepWhat 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:

PartWhat It Does
--registry $ACR_NAMEBuild in your Azure Container Registry (in the cloud)
--image "MoltBot:latest"Name the output image MoltBot:latest (we choose this name)
--file src/MoltBot/DockerfileUse 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:

  1. Starts from a Node.js base image
  2. Clones the official MoltBot source code from GitHub
  3. Installs dependencies with pnpm
  4. Builds the TypeScript application
  5. Builds the Control UI
  6. Adds our custom entrypoint.sh that generates config from Azure environment variables

You 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:

VariableWhere to Get It
OPENROUTER_API_KEYopenrouter.ai/keys
DISCORD_BOT_TOKENDiscord Developer Portal โ†’ Your App โ†’ Bot โ†’ Reset Token
DISCORD_ALLOWED_USERSDiscord โ†’ 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 deploy again 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!

StepAction
1Open the OAuth2 URL you copied in Step 0
2Select a server to invite the bot to (or create a new one)
3Click Authorize

4๏ธโƒฃ Start Chatting! ๐Ÿ’ฌ

StepAction
1Find your bot in the server's member list (right sidebar)
2Right-click the bot โ†’ Message to open a DM
3Send: Hello!
4Wait 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-sonnetclaude-sonnet-4-5
openrouter/anthropic/claude-3-opusopenrouter:anthropic/claude-3.5-sonnet
openrouter/openai/gpt-4-turboanthropic/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:

  1. Invite the bot to a server using the OAuth2 URL
  2. 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:

CapabilityExample
๐Ÿ–ฅ๏ธ Execute shell commandsDeploy code, manage files
๐ŸŒ Browse the webFill forms, extract data
๐Ÿ“ง Connect to servicesGmail, Calendar, GitHub
๐Ÿ“ Manage filesCreate, edit, organize
โฐ Run scheduled tasksCron jobs, reminders
๐Ÿ“ž Call you on the phoneWith 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 FeatureBenefit
๐Ÿ” SOC 2 / ISO 27001Azure's security certifications apply
๐ŸŒ VNet integrationKeep traffic on private networks
๐Ÿชช Managed IdentityNo secrets in code
๐Ÿ‘ฅ RBACFine-grained access control
๐Ÿ“ Audit logsEverything 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 ConcernHow ACA Addresses ItConfiguration
1. Close ports / IP allowlistโœ… Built-in IP restrictions on ingressALLOWED_IP_RANGES parameter
2. Auth (JWT/OAuth/strong secret + TLS)โœ… Gateway token auth + automatic HTTPSMOLTBOT_GATEWAY_TOKEN + free TLS certs
3. Rotate keys (assume compromise)โœ… Container App secrets + easy rotationaz containerapp secret set
4. Rate limiting + logs + alertsโœ… Log Analytics + Azure Monitor alertsPreconfigured 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:

LayerWhat It DoesHow It Works
HTTPS/TLSEncrypts all trafficAutomatic Let's Encrypt certificates
Gateway TokenAuthenticates Control UI access32-char random token in secret
DM AllowlistRestricts who can message the botDiscord/Telegram user ID whitelist
Managed IdentityAuthenticates to Azure servicesNo 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:

AlertTriggerIndicates
High Error Rate>10 auth errors in 5 minPotential brute force attack
Container Restarts>3 restarts in 15 minCrash loop or OOM attack
Unusual Request Volume>100 messages/hourPotential abuse
Channel DisconnectDiscord/Telegram goes offlineToken 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:

  1. Discord/Telegram rate limits - Both platforms limit message frequency
  2. DM Allowlist - Only approved users can send messages
  3. OpenRouter rate limits - API calls are throttled by your plan
  4. 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 StepLink/Action
๐Ÿ”ง Browse Skillsmolthub.com
๐Ÿ“š Create Custom SkillsTeach through natural language
๐Ÿ”— Add IntegrationsGmail, Calendar, GitHub
โฐ Set Up Cron JobsSchedule recurring tasks
๐ŸŽค Enable VoiceAdd ElevenLabs for voice

๐Ÿ“š Resources

ResourceLink
๐Ÿ“– MoltBot Docsdocs.molt.bot
๐Ÿ’ป MoltBot GitHubgithub.com/MoltBot/MoltBot
๐Ÿ’ฌ MoltBot Discorddiscord.gg/molt
โ˜๏ธ Azure Container AppsDocumentation
๐Ÿ“ฆ Sample RepositoryGitHub

 

๐Ÿš€ 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.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Announcing the Microsoft 365 Community Conference 2026

1 Share

Your front row seat to the future of intelligent work

The Microsoft 365 Community Conference is back April 21โ€“23, 2026, at Loews Sapphire Falls and Loews Royal Pacific Resort in Orlando, Florida. This yearโ€™s theme โ€” a beacon for builders, innovators, and icons of intelligent work โ€” reflects the momentum across Microsoft 365 and Copilot as we enter a new era of AIโ€‘powered productivity.

Across three days, attendees will gain access to 200+ sessions, 21 workshops, and 200+ Microsoft experts and engineers, making this one of the largest and most comprehensive Microsoft 365 learning events in the world. Whether you're deploying Copilot, modernizing your intranet, securing your environment, elevating communications, or building next-generation apps and automations, thereโ€™s content tailored for every role and organization.

Learn From the Product Leaders

Expect big announcements, deep dives, and roadmap insights from leaders including Jeff Teper, Vasu Jakkal, Charles Lamanna, Rohan Kumar, and Jaime Teevan along with additional guests. Their keynotes will explore the future of collaboration, AI, security, and the Microsoft 365 platform โ€” and how organizations can turn innovation into impact.

Hands-On Experiences

Attendees can get up close with the latest product capabilities inside the Innovation Hub โ€” our Microsoft booth experience featuring live demos, Copilot workshops, and a full lineup of Lightning Talks throughout the week. The show floor also hosts community spotlights, podcasts, interviews, and creator activations.

Weโ€™re also celebrating a major milestone: SharePointโ€™s 25th anniversary, including a special celebration and premiere moment that brings the community together to honor 25 years of innovation.

Community at the Center

Onsite programming includes the Women in Tech & Allies Luncheon, MVP meetups, NDA roundtables, community led meet & greets, and one on one opportunities to connect with Microsoft product teams. Plus, donโ€™t miss the attendee party at Universal Islands of Adventure โ€” always a highlight of the conference experience!

Deep-Dive Workshops

Those looking for hands-on, immersive learning can join pre and post-day workshops on April 19, 20 & 24, covering everything from Copilot rollout to Teams Rooms, SharePoint, Viva, security, governance, development, and more. The workshop program is designed to help organizations accelerate adoption and build real world capability fast.

Join Us in Orlando

Registration is officially live. Save your seat and be part of the worldwide Microsoft 365 community as we explore whatโ€™s new, whatโ€™s possible, and whatโ€™s next.

๐Ÿ‘‰ Register now: https://aka.ms/M365Con26
๐Ÿ’ธCustomer discount available: $150 off with code SAVE150
๐Ÿ“… April 21โ€“23, 2026
๐Ÿ“ Orlando, Florida

Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

From MermaidJS to .NET: Bringing Text-Based Diagrams into Your WinForms Apps

1 Share
Learn how to move your text-based diagrams from MermaidJS to .NET in this tutorial from ComponentOne. Continue reading
Read the whole story
alvinashcraft
3 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories