Skip to main content

Use Cases & Examples

Real-world scenarios and workflows demonstrating how to use noBGP to manage infrastructure through AI conversation.

Development Workflows

Rapid Prototyping Environment

Scenario: You need a clean environment to test a new feature without cluttering your local machine.

Conversation:

You: I need to test my new API feature. Can you set up a fresh Ubuntu server?

AI: I'll provision a new Ubuntu server for you.

Creating server...
✓ Server "api-test-1" is online (Ubuntu 22.04, 2 vCPU, 4GB RAM)

You: Install Node.js 20 and PostgreSQL

AI: Installing Node.js 20 and PostgreSQL...
✓ Node.js v20.9.0 installed
✓ PostgreSQL 15 installed and running

You: Clone my repo from github.com/username/api-project and install dependencies

AI: [Clones repo and runs npm install]
✓ Dependencies installed (234 packages)

You: Start the API on port 3000 and publish it as a web service

AI: [Starts the API]
✓ API running on port 3000
✓ Published at https://api-test-abc.nobgp.com

Your API is now accessible for testing!

[After testing...]

You: I'm done. Tear everything down.

AI: Deprovisioning api-test-1...
✓ Server terminated

Time saved: 30+ minutes of manual setup


Multi-Environment Testing

Scenario: Test your app on different operating systems simultaneously.

Conversation:

You: I need to test my Python script on Ubuntu, Debian, and Alpine

AI: I'll provision three servers for you.

Creating servers...
✓ test-ubuntu (Ubuntu 22.04)
✓ test-debian (Debian 12)
✓ test-alpine (Alpine 3.19)

You: Install Python 3.11 on all of them

AI: Installing Python 3.11...
✓ test-ubuntu: Python 3.11.5
✓ test-debian: Python 3.11.4
✓ test-alpine: Python 3.11.6

You: Copy my script to all servers and run it

AI: [Copies script and executes on all servers]

Results:
✓ test-ubuntu: Script completed (exit code 0)
✓ test-debian: Script completed (exit code 0)
✗ test-alpine: Error - missing libssl dependency

You: Install libssl on Alpine and retry

AI: [Installs dependency and reruns]
✓ test-alpine: Script completed (exit code 0)

All tests passed! Your script works on all three distributions.

Benefit: Parallel testing across multiple OS versions


DevOps & Automation

Emergency Debugging

Scenario: Production server is having issues at 2 AM.

Conversation:

You: My production web server is running slow. Help me diagnose it.

AI: I'll check the server health.

Checking prod-web-1...

CPU: 95% (high!)
Memory: 89% (high)
Disk: 45% (normal)

Top processes:
1. nginx: 2% CPU
2. node (app.js): 87% CPU ← Problem here!
3. postgres: 6% CPU

Your Node.js application is consuming most CPU. Let me check what it's doing...

You: Show me the app logs from the last 10 minutes

AI: [Retrieves logs]

[ERROR] Infinite loop detected in user authentication
[ERROR] Database connection pool exhausted
[ERROR] Too many concurrent requests

I see the issue - there's an infinite loop in the authentication code causing
excessive database connections.

You: Restart the app and temporarily reduce max connections

AI: [Restarts application with new settings]
✓ Application restarted
✓ Max connections: 100 → 50
✓ CPU usage: 95% → 12%
✓ Memory usage: 89% → 45%

Server is stable now. I recommend fixing the authentication bug before
increasing connections again.

Impact: Incident resolved in minutes, not hours


Automated Deployments

Scenario: Deploy a new version of your application.

Conversation:

You: Deploy version 2.5.0 of my app to all production servers

AI: I'll deploy version 2.5.0 to your production servers.

Target servers: prod-web-1, prod-web-2, prod-web-3

Step 1: Backing up current version...
✓ Backups created

Step 2: Pulling v2.5.0 from GitHub...
✓ Code updated on all servers

Step 3: Installing dependencies...
✓ Dependencies installed

Step 4: Running database migrations...
✓ Migrations complete (3 migrations applied)

Step 5: Running tests...
✓ All tests passed (142/142)

Step 6: Performing rolling restart...
✓ prod-web-1 restarted (health check: OK)
✓ prod-web-2 restarted (health check: OK)
✓ prod-web-3 restarted (health check: OK)

Deployment complete! Version 2.5.0 is now live on all servers.

You: Monitor the error rate for the next 5 minutes

AI: Monitoring error rates...

Minute 1: 0.1% (normal)
Minute 2: 0.1% (normal)
Minute 3: 0.0% (normal)
Minute 4: 0.1% (normal)
Minute 5: 0.0% (normal)

Error rates are normal. Deployment successful!

Reliability: Consistent, repeatable deployments


Home Lab & Personal Projects

Home Media Server

Scenario: Set up a Plex media server on a Raspberry Pi.

Conversation:

You: Help me set up Plex on my Raspberry Pi

AI: I'll install and configure Plex Media Server on your raspberry-pi.

Step 1: Updating system packages...
✓ System updated

Step 2: Installing Plex Media Server...
✓ Plex installed

Step 3: Starting Plex service...
✓ Plex running on port 32400

Step 4: Publishing web interface...
✓ Plex dashboard: https://plex-abc123.nobgp.com

Your Plex server is ready! Open the URL above to complete setup.

You: Mount my external hard drive at /dev/sda1 to /media/movies

AI: [Mounts drive]
✓ Mounted 2TB drive to /media/movies
✓ Added to /etc/fstab for persistence

You: Add /media/movies as a library in Plex

AI: [Configures Plex library]
✓ Library added
✓ Scanning for media...

Found 247 movies. Plex is now indexing metadata.

Result: Media server running in 10 minutes


Network-Wide Ad Blocking

Scenario: Install Pi-hole for network-wide ad blocking.

Conversation:

You: Install Pi-hole on my raspberry-pi and set it up as my network DNS

AI: I'll install Pi-hole and configure it for network-wide ad blocking.

Installing Pi-hole...
✓ Pi-hole installed

Configuring...
✓ DNS configured (blocking ads)
✓ DHCP disabled (using router DHCP)
✓ Web interface enabled

Publishing admin dashboard...
✓ Admin URL: https://pihole-def456.nobgp.com

Pi-hole is running! To use it:
1. Set your router's DNS to: 192.168.1.42 (raspberry-pi's IP)
2. Or manually set DNS on each device

You: What's the current ad blocking stats?

AI: [Queries Pi-hole]

Today's stats:
- Queries: 12,847
- Blocked: 3,241 (25.2%)
- Domains on blocklist: 1,245,678

Top blocked domain: doubleclick.net

Benefit: Ad-free browsing across all devices


IoT & Edge Computing

Weather Station

Scenario: Collect and monitor data from IoT sensors.

Conversation:

You: My Raspberry Pi has a temperature sensor. Help me log data to a database.

AI: I'll set up a data logging system for your sensor.

Installing dependencies...
✓ PostgreSQL installed
✓ Python libraries installed

Creating database...
✓ Database 'weather_data' created
✓ Table 'readings' created

Would you like me to write a Python script to read the sensor?

You: Yes, read from GPIO pin 4 every 5 minutes

AI: [Creates Python script]

Script created at /home/pi/weather_logger.py

Features:
- Reads temperature/humidity from DHT22 sensor
- Logs to PostgreSQL every 5 minutes
- Handles errors gracefully

Installing as a systemd service...
✓ Service installed and started

Data logging is active. Want me to create a dashboard?

You: Yes, create a simple web dashboard

AI: [Creates dashboard with Flask]
✓ Dashboard created
✓ Published at https://weather-ghi789.nobgp.com

Your dashboard shows:
- Current temperature
- Current humidity
- 24-hour graph
- 7-day trends

Result: Complete IoT data logging system in minutes


Learning & Education

Docker Learning Environment

Scenario: Learn Docker without cluttering your laptop.

Conversation:

You: I want to learn Docker. Set up a practice environment for me.

AI: I'll create a server with Docker installed for you to practice.

Provisioning server...
✓ Server "docker-practice" ready (Ubuntu 22.04, 2GB RAM)

Installing Docker...
✓ Docker Engine installed
✓ Docker Compose installed

Creating browser terminal...
✓ Terminal: https://docker-term-jkl012.nobgp.com

You can now practice Docker! Try these beginner exercises:

1. Run your first container:
docker run hello-world

2. Run an interactive container:
docker run -it ubuntu bash

3. Run a web server:
docker run -d -p 80:80 nginx

You: Run nginx and show me how to access it

AI: [Runs nginx container]
✓ nginx running on port 80

Publishing nginx...
✓ Web server: https://nginx-mno345.nobgp.com

You can now see nginx running! The default page is live.

Next steps to try:
- Modify the default page
- Create your own Dockerfile
- Set up a multi-container app with Docker Compose

Advantage: Safe experimentation without local setup


Security & Compliance

Security Audit

Scenario: Audit servers for security issues.

Conversation:

You: Run a security audit on all my production servers

AI: I'll perform a security audit on your production servers.

Checking prod-web-1, prod-api-1, prod-db-1...

✓ Operating System:
- All servers updated to latest patches
- No EOL OS versions detected

✓ SSH Configuration:
- Root login disabled ✓
- Password authentication disabled ✓
- Key-only authentication enabled ✓

⚠ Firewall:
- prod-db-1: Port 5432 open to internet (should be internal only)

⚠ Services:
- prod-web-1: Elasticsearch running on default port (security risk)

✓ SSL Certificates:
- All certificates valid
- No expiring certificates in next 30 days

✗ User Accounts:
- prod-api-1: User 'temp_dev' still has sudo access (should be removed)

I found 3 issues. Should I fix them?

You: Yes, fix all issues

AI: Applying security fixes...

✓ Restricted PostgreSQL to internal network only
✓ Configured Elasticsearch authentication
✓ Removed 'temp_dev' user account

All issues resolved. Your servers are more secure now.

Compliance: Regular automated security checks


Cost Optimization

Resource Cleanup

Scenario: Find and remove unused resources to reduce costs.

Conversation:

You: I think I have servers I'm not using anymore. Help me find them.

AI: I'll analyze your infrastructure for unused resources.

Scanning all networks...

Potentially unused servers:
1. dev-test-server (offline for 15 days)
2. staging-old (online but 0% CPU for 30 days)
3. experiment-1 (created 60 days ago, never used)
4. temp-build-server (created for CI, no longer needed)

Estimated monthly cost: $287

You: Can you verify these are actually not needed?

AI: Let me check for dependencies and recent activity...

dev-test-server:
- No published services
- No active cron jobs
- No incoming connections (last 30 days)
→ Safe to remove

staging-old:
- Running nginx but no traffic
- SSL cert expired (not renewed)
- Replaced by staging-new
→ Safe to remove

experiment-1:
- Empty server, nothing installed
→ Safe to remove

temp-build-server:
- Was used for CI builds
- CI moved to GitHub Actions
→ Safe to remove

All four can be safely deprovisioned. Proceed?

You: Yes, remove them all

AI: Deprovisioning servers...
✓ dev-test-server terminated
✓ staging-old terminated
✓ experiment-1 terminated
✓ temp-build-server terminated

Estimated savings: $287/month ($3,444/year)

Savings: Significant cost reduction through cleanup


Collaborative Workflows

Pair Programming

Scenario: Collaborate with a remote colleague on a shared environment.

Conversation:

You: I need to pair program with my colleague. Set up a shared server.

AI: I'll create a shared development environment.

Provisioning server...
✓ Server "pair-dev-1" ready

Installing development tools...
✓ VS Code Server installed
✓ tmux installed (for terminal sharing)

Publishing access points...
✓ VS Code: https://vscode-pqr678.nobgp.com
✓ Terminal: https://term-stu901.nobgp.com

Both URLs require authentication. Share these links with your colleague.

You: My colleague is in. Now clone our project repo

AI: [Clones repository]
✓ Repository cloned to /home/dev/project

Your colleague can now access the same files through the VS Code URL.
Any changes either of you make will be instantly visible to the other.

You: Start a tmux session so we can both see the terminal

AI: [Starts tmux session]
✓ tmux session 'pair-session' started

Both of you can now see and interact with the same terminal through the
terminal URL. Perfect for collaborative debugging!

Collaboration: Real-time shared development environment


Sample Prompts Library

Discovery & Monitoring

- Show me all my networks and nodes
- What's the status of my production servers?
- Check disk space on all servers
- Monitor CPU usage on web-server-1
- Show me which services are published
- List all offline nodes
- What processes are using the most memory on my-server?

Infrastructure Management

- Provision an Ubuntu server with 4GB RAM
- Install Docker on all my development servers
- Update all packages on production-web-1
- Restart nginx on web-server-1
- Create a new network called "staging"
- Add my existing server to the production network

Deployment & CI/CD

- Deploy my app from the main branch to production
- Run tests on staging-server before deploying
- Create a backup of the database before updating
- Rollback to the previous version
- Deploy version 2.1.0 to all web servers

Troubleshooting

- Why is my web server slow?
- Check if postgres is running on db-server
- Show me error logs from the last hour
- Is port 443 accessible from the internet?
- Test connectivity between web-server and db-server

Security

- Run a security audit on all servers
- Check which ports are open on my-server
- List all users with sudo access
- Update SSL certificates
- Enable firewall on all production servers

Service Publishing

- Publish my app running on port 8080
- Create a browser terminal for my raspberry-pi
- Make the service at abc123.nobgp.com public
- Disable the staging-app service temporarily
- Delete all services from old-test-server

Tips for Effective Conversations

Be Specific

❌ "Check my server" ✅ "Check CPU and memory usage on web-server-1"

Provide Context

❌ "Something is broken" ✅ "My web app on port 3000 is returning 502 errors. Help me debug it."

Ask Follow-up Questions

Don't understand the output? Ask!

  • "What does this error mean?"
  • "Why is the CPU so high?"
  • "Is this normal?"

Use Natural Language

You don't need to know exact commands:

  • "I want to see if my database is running" (not "check if postgres process exists")
  • "Make my web app accessible from the internet" (not "create a reverse proxy")

Confirm Before Destructive Actions

The AI will usually ask, but you can be explicit:

  • "Delete old-server, but confirm with me first"
  • "Update packages but don't restart services without asking"

Next Steps

Share Your Use Case

Have an interesting use case? We'd love to hear about it! Share your workflow on: