Skip to content

First Steps with Proximity

Welcome!

This guide walks you through your first deployment with Proximity. We'll deploy a simple web server and explore the basic features.

Prerequisites

  • Proximity installed and running (see Installation Guide)
  • Access to a Proxmox host with available resources
  • Administrator account created

Step 1: Login

Web UI Login

  1. Navigate to your Proximity instance (default: http://localhost:3000)
  2. Enter your username and password
  3. Click Sign In

You should see the Dashboard with system information.

API Authentication

To use the API, you'll need a token:

bash
# Get your JWT token
curl -X POST http://localhost:8000/api/auth/login/ \
  -H "Content-Type: application/json" \
  -d '{
    "username": "your-username",
    "password": "your-password"
  }'

# Response
{
  "key": "your-jwt-token-here"
}

# Save token for later use
TOKEN="your-jwt-token-here"

Step 2: Configure Proxmox Host

Via Web UI

  1. Go to SettingsProxmox Hosts
  2. Click Add New Host
  3. Fill in the details:
    • Name: pve (or your node name)
    • Hostname/IP: 192.168.1.100
    • Port: 8006
    • Username: root@pam
    • Password: your-proxmox-password
  4. Click Test Connection
  5. Click Save

Via API

bash
curl -X POST http://localhost:8000/api/proxmox/hosts/ \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "pve",
    "host": "192.168.1.100",
    "port": 8006,
    "user": "root@pam",
    "password": "your-password",
    "is_active": true
  }'

Step 3: Browse the Catalog

The application catalog contains pre-configured applications ready to deploy.

Via Web UI

  1. Go to Catalog
  2. Browse available applications
  3. Click on an app to see details:
    • Description
    • Resource requirements
    • Configuration options
    • Available versions

Via API

bash
# List all applications
curl http://localhost:8000/api/catalog/ \
  -H "Authorization: Bearer $TOKEN"

# Get specific app details
curl http://localhost:8000/api/catalog/nginx/ \
  -H "Authorization: Bearer $TOKEN"

# Browse by category
curl http://localhost:8000/api/catalog/categories/ \
  -H "Authorization: Bearer $TOKEN"

# Search apps
curl "http://localhost:8000/api/catalog/search?q=web" \
  -H "Authorization: Bearer $TOKEN"

Step 4: Deploy Your First Application

Let's deploy Nginx web server.

Via Web UI

  1. Go to ApplicationsNew Application
  2. Select Nginx from the catalog
  3. Configure deployment:
    • Hostname: my-webserver
    • Port: 8080 (web port)
    • Configuration: (leave defaults)
  4. Click Deploy
  5. Wait for deployment to complete (2-3 minutes)

Via API

bash
# Deploy Nginx
curl -X POST http://localhost:8000/api/apps/ \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "catalog_id": "nginx",
    "hostname": "my-webserver",
    "config": {
      "port": 8080
    }
  }'

# Response (202 Accepted)
{
  "id": "app-001",
  "status": "deploying",
  "message": "Application deployment started for nginx"
}

# Check deployment status
APP_ID="app-001"
curl http://localhost:8000/api/apps/$APP_ID/ \
  -H "Authorization: Bearer $TOKEN"

Monitor Deployment

bash
# Poll status (every 5 seconds)
while true; do
  curl http://localhost:8000/api/apps/$APP_ID/ \
    -H "Authorization: Bearer $TOKEN" | jq '.status'
  sleep 5
done

# Stop when status changes to "running"

Step 5: Access Your Application

Once deployment is complete:

  1. Go to Applications
  2. Click on my-webserver
  3. Click Open Application
  4. You should see the Nginx welcome page!

Or directly in a browser:

http://my-webserver.local:8080/

Step 6: Create a Backup

Let's back up your application.

Via Web UI

  1. Go to Applicationsmy-webserver
  2. Click Backups tab
  3. Click Create Backup
  4. Select backup type: "Snapshot"
  5. Click Create
  6. Wait for backup to complete

Via API

bash
# Create backup
curl -X POST http://localhost:8000/api/apps/$APP_ID/backups/ \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "backup_type": "snapshot",
    "compression": "zstd"
  }'

# Response (202 Accepted)
{
  "id": 1,
  "status": "creating",
  "message": "Backup creation started"
}

# Check backup status
curl http://localhost:8000/api/apps/$APP_ID/backups/ \
  -H "Authorization: Bearer $TOKEN"

Step 7: Restore from Backup

Let's simulate a failure and restore from backup.

Via Web UI

  1. Go to Applicationsmy-webserverBackups
  2. Find your backup in the list
  3. Click the ... menu → Restore
  4. Confirm restoration
  5. Wait for restore to complete

Via API

bash
# Restore from backup
BACKUP_ID=1

curl -X POST http://localhost:8000/api/apps/$APP_ID/backups/$BACKUP_ID/restore/ \
  -H "Authorization: Bearer $TOKEN"

# Response (202 Accepted)
{
  "status": "restoring",
  "message": "Restore operation started"
}

Step 8: Delete Application

When you're done testing:

Via Web UI

  1. Go to Applicationsmy-webserver
  2. Click Delete Application
  3. Confirm deletion
  4. Wait for deletion to complete

Via API

bash
curl -X DELETE http://localhost:8000/api/apps/$APP_ID/ \
  -H "Authorization: Bearer $TOKEN"

# Response (202 Accepted)
{
  "status": "removing",
  "message": "Application deletion started"
}

Next: Try More Applications

Now that you've deployed your first app, try:

  1. PostgreSQL - Database server
  2. Redis - Cache server
  3. Adminer - Database management UI
  4. Minecraft Server - Game server

Troubleshooting

Deployment Failed

  1. Check Activity Log for error messages
  2. Verify Proxmox host is online and configured
  3. Ensure sufficient resources (CPU, RAM, disk)
  4. Check application logs in ApplicationsLogs

Cannot Access Application

  1. Verify application status is running
  2. Check network connectivity
  3. Verify port is not blocked by firewall
  4. Check DNS resolution for hostname

Backup Failed

  1. Verify sufficient disk space for backup
  2. Check Proxmox storage is accessible
  3. Ensure backup storage is configured
  4. Check application logs

Common Commands

bash
# List all applications
curl http://localhost:8000/api/apps/ -H "Authorization: Bearer $TOKEN"

# Get application status
curl http://localhost:8000/api/apps/$APP_ID/ -H "Authorization: Bearer $TOKEN"

# List all backups
curl http://localhost:8000/api/apps/$APP_ID/backups/ \
  -H "Authorization: Bearer $TOKEN"

# Check system health
curl http://localhost:8000/api/health/ -H "Authorization: Bearer $TOKEN"

Learning Resources

Next Steps

  1. Deploy different applications
  2. Explore Settings and configuration options
  3. Read the Development Guide to contribute
  4. Check out Advanced Deployment options

First Steps Version: 1.0 Last Updated: October 31, 2025 Status: ✅ Ready to Deploy

Released under the MIT License.