SelfHostStackOpen-Source Directory

Why Migrate Away from Equinix Metal & Packet?

Equinix Metal (formerly Packet) charges premium per-hour rates for bare metal servers with mandatory cross-connect and facility fees that can double effective costs. Even Equinix's smallest dedicated servers cost $360+/month. Furthermore, Equinix Metal provides limited BMC/IPMI customization and vendor-specific Tinkerbell-based provisioning that locks infrastructure into their ecosystem. Self-hosting bare metal provisioning via Tinkerbell on your own hardware, or using Canonical MAAS to orchestrate on-premise servers, provides IPMI/BMC management, zero-touch PXE/TFTP provisioning, multi-OS deployment, and complete infrastructure sovereignty at a fraction of the cost.

Technical Architecture & Migration Analysis

Equinix Metal operates a proprietary bare metal IaaS platform where machines are provisioned via their API-driven Tinkerbell fork with per-hour billing that includes facility fees, cross-connect charges, and bandwidth overages. Self-hosted bare metal provisioning separates the control plane from the physical infrastructure. Tinkerbell (CNCF) provides a declarative workflow engine for PXE-based provisioning with ephemeral boot environments, while Canonical MAAS transforms on-premise hardware into a self-service cloud with IPMI power management, automated commissioning, and cloud-init deployment. Both approaches eliminate per-hour hardware rental fees and vendor lock-in.

⚠️

When NOT to Migrate (When Staying on Equinix Metal & Packet Makes Sense)

Self-hosting is not universally the right move. Keep paying for SaaS if your team hits any of these constraints:

  • You need globally distributed bare metal in 25+ metros with Equinix cross-connect fabric interconnection.
  • Your workload requires Equinix-specific APIs for IP addresses, VLANs, or storage volumes integrated into their platform.
  • Your team lacks network engineering expertise to manage DHCP/PXE boot infrastructure on L2 networks.

Real-World Cost Comparison: Equinix Metal & Packet vs Self-Hosted

Comparing vendor cloud billings against standard Hetzner / DigitalOcean infrastructure costs at scale.

Tier / ScaleEquinix Metal & Packet CostSelf-Hosted VPS CostEstimated Annual SavingsTechnical Breakdown
Startup / Dev Lab (2-3 bare metal servers)
2-3 dedicated servers, automated provisioning, single location
$8,640-$15,360/year (Equinix Metal c3.small.x86 x3, 80TB bandwidth)€3.79/month (€45.48/year provisioner + own hardware purchase)$8,595-$15,315/yearTinkerbell provisioner on €3.79 VPS managing on-premise or collocated hardware.
Growth Stage (10 servers, multi-role)
10 servers across compute/storage roles, automated reprovisioning
$43,200-$86,400/year (Equinix Metal fleet at $360-$720/server/mo)€46/month (€552/year MAAS controller + own hardware)$42,648-$85,848/yearCanonical MAAS managing 10 self-owned or collocated servers.
Enterprise Data Center (50+ servers, multi-rack)
50+ servers, multi-rack, automated lifecycle management
$216,000-$432,000+/year (Equinix Metal enterprise agreement)€2,300/year (Tinkerbell + MAAS cluster on dedicated provisioner hardware)$213,700-$429,700+/yearSelf-managed provisioning stack with IPMI automation across the data center.

Top 2 Recommended Open-Source Replacements

Tested, self-contained, and production-ready. Click any tool to inspect verified docker-compose configurations, hardware sizing, and deployment guides.

Tinkerbell

Apache-2.0⭐ 2.6k+

Open-source bare metal provisioning engine by CNCF with declarative workflows, PXE boot, and ephemeral OS environments.

Min RAM2 GB
Min CPU2 vCPU
GitHub Repo ↗

✅ Advantages

  • Full CNCF governance with active community and enterprise adoption
  • Apache-2.0 license allows unrestricted commercial use
  • Declarative workflows enable reproducible and auditable provisioning pipelines

⚠️ Trade-offs / Limitations

  • Requires dedicated provisioner server with DHCP/PXE network access
  • L2 network adjacency required unless using DHCP relay configuration

Core Features

CNCF-hosted project with Kubernetes-native workflow engine
Declarative YAML workflows: partition, install, configure, and validate bare metal
Ephemeral OS (OSIE) for safe in-band provisioning without IPMI dependency
Multi-OS support: Ubuntu, Debian, CentOS, Fedora, Rocky Linux, VMware ESXi
Hardware inventory and management via BMC/IPMI integration
REST API and CLI for programmatic server provisioning at scale
Integration with Foreman, MAAS, and other DCIM tools

Architecture Notes

Cloud Native Computing Foundation (CNCF) project providing a complete bare metal provisioning stack. Consists of four core services: Tink (workflow engine with declarative YAML workflows), Hegel (metadata service for DHCP/PXE), OSIE ( ephemeral OS environment booted via iPXE), and Boots (DHCP/PXE boot server). Machines are provisioned by booting into an ephemeral Linux environment, executing workflow steps (partition, install OS, configure), and then booting into the final installed OS. Supports any Linux distribution, VMware ESXi, and custom ISO images.

Known Limitations

Requires a dedicated provisioner server with access to the bare metal network. DHCP/PXE boot requires proper network configuration with L2 adjacency or DHCP relay agents.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  tink-server:
    image: ghcr.io/tinkerbell/tink/server:latest
    container_name: tink-server
    restart: always
    ports:
      - "42113:42113"
    environment:
      - TINKERBELL_TLS_CERT=/certs/tink-server.crt
      - TINKERBELL_TLS_KEY=/certs/tink-server.key
    volumes:
      - ./certs:/certs
      - tink_data:/var/lib/tink
    networks:
      - selfhost_net

  tink-db:
    image: postgres:16-alpine
    container_name: tink-db
    restart: always
    environment:
      POSTGRES_DB: tink-server
      POSTGRES_USER: tink
      POSTGRES_PASSWORD: tink_secret_2026
    volumes:
      - tink_db_data:/var/lib/postgresql/data
    networks:
      - selfhost_net

  boots:
    image: ghcr.io/tinkerbell/boots:latest
    container_name: boots
    restart: always
    ports:
      - "67:67/udp"
      - "69:69/udp"
    networks:
      - selfhost_net

volumes:
  tink_data:
  tink_db_data:

networks:
  selfhost_net:
    external: true

🚀 5-Minute Deployment Guide

  1. 1Provision a dedicated Linux server on the same L2 network as your bare metal machines.
  2. 2Install Docker: `curl -fsSL https://get.docker.com | sh`.
  3. 3Generate TLS certificates for Tink server authentication.
  4. 4Deploy Tinkerbell stack via docker-compose as shown above.
  5. 5Create hardware inventory for each bare metal machine (BMC credentials, MAC addresses).
  6. 6Write declarative workflow YAML steps: partition disk, install OS, configure network.
  7. 7Register machines and trigger provisioning workflows via Tink CLI or REST API.

Recommended Cloud VPS for Tinkerbell

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Lightweight provisioner server for Tinkerbell workflows on local hardware.

Deploy on Hetzner →
Hetzner Dedicated€46.00/mo

AX42 (AMD Ryzen 7, 64GB RAM, 2x512GB NVMe)

On-premise provisioner with BMC/IPMI management.

Deploy on Hetzner →

Canonical MAAS

AGPL-3.0⭐ 800+

Metal-as-a-Service: bare metal cloud with automated Ubuntu/Windows provisioning, IPMI management, and cloud-init.

Min RAM4 GB
Min CPU2 vCPU
GitHub Repo ↗

✅ Advantages

  • True bare metal cloud experience with self-service provisioning
  • Excellent Ubuntu integration with first-class support and documentation
  • Built-in hardware commissioning and diagnostics before production deployment

⚠️ Trade-offs / Limitations

  • AGPL-3.0 license requires source disclosure for SaaS-like hosted deployments
  • Best Ubuntu integration; other OS support may require additional configuration

Core Features

Self-service bare metal provisioning: deploy Ubuntu, CentOS, Windows, or custom images
Native IPMI/BMC management: power on/off, BIOS configuration, hardware inventory
DHCP, DNS, and TFTP integrated into the provisioner for zero-touch deployment
Commissioning and testing: hardware diagnostics, memory testing, disk burn-in
Network management: VLAN tagging, bridge configuration, bond creation
Cloud-init integration for automated post-deployment configuration
API-driven: full REST API for CI/CD integration and programmatic provisioning

Architecture Notes

Canonical MAAS transforms a rack of bare metal servers into a self-service cloud-like resource pool. The MAAS region controller manages machine discovery via IPMI/BMC, network topology, DNS, and DHCP. The MAAS rack controller handles PXE/TFTP booting and image deployment. Machines cycle through states: New -> Ready -> Allocated -> Deployed. Supports Ubuntu, CentOS, RHEL, Windows, and custom images via MAAS images or user-uploaded KVM images. Integrates with Juju for application-layer orchestration and LXD for container-based workloads.

Known Limitations

AGPL-3.0 license requires source disclosure for network service deployments. IPMI/BMC access requires proper network configuration and management VLAN setup.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
# Canonical MAAS is typically installed via snap package on Ubuntu 22.04/24.04.
# Docker deployment is not the primary installation method.
# Official installation:
# sudo snap install --channel=3.4 maas
# sudo maas init region+rack --database-uri maas-region-db.psycopg2
# sudo maas createadmin --username admin --password admin --email admin@local
# Access web UI at http://your-server-ip:5240/MAAS/

version: '3.8'
services:
  maas-region-db:
    image: postgres:16-alpine
    container_name: maas-region-db
    restart: always
    environment:
      POSTGRES_DB: maasdb
      POSTGRES_USER: maas
      POSTGRES_PASSWORD: maas_secret_2026
    volumes:
      - maas_db_data:/var/lib/postgresql/data
    networks:
      - selfhost_net

volumes:
  maas_db_data:

networks:
  selfhost_net:
    external: true

🚀 5-Minute Deployment Guide

  1. 1Provision a dedicated Ubuntu 24.04 LTS server with at least 4GB RAM and 2 NICs.
  2. 2Install MAAS via snap: `sudo snap install --channel=3.4 maas`.
  3. 3Initialize the region and rack controller: `sudo maas init region+rack`.
  4. 4Create the admin user: `sudo maas createadmin --username admin --password secure_pass`.
  5. 5Access the web UI at `http://your-server-ip:5240/MAAS/` and configure networking.
  6. 6Ensure IPMI-capable servers are on the management VLAN and discover machines automatically.
  7. 7Commission, allocate, and deploy machines via the web UI or MAAS CLI/API.

Recommended Cloud VPS for Canonical MAAS

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Lightweight MAAS region controller for small on-premise deployments.

Deploy on Hetzner →
Hetzner Dedicated€46.00/mo

AX42 (AMD Ryzen 7, 64GB RAM, 2x512GB NVMe)

Dedicated server running MAAS with BMC management network.

Deploy on Hetzner →

Quick Specification Matrix

ToolLicenseMin RAMMin CPUGitHub RepoPrimary Advantage
Equinix Metal & Packet (Proprietary)Proprietary ClosedManaged CloudManaged CloudN/ATurnkey onboarding with vendor lock-in & paywalls
TinkerbellApache-2.02 GB2 vCPUtinkerbell/tinkFull CNCF governance with active community and enterprise adoption
Canonical MAASAGPL-3.04 GB2 vCPUmaas/maasTrue bare metal cloud experience with self-service provisioning

Performance Benchmarks & Hard Operational Limits

Real-world operational trade-offs, resource consumption limits, and measured throughput.

Benchmark MetricEquinix Metal & Packet BaselineSelf-Hosted Alternative MetricOperational Bottleneck / LimitSource
Provisioning Time (OS Installation)5-15 minutes (Equinix Metal API-driven via Tinkerbell)5-12 minutes (Tinkerbell/MAAS PXE-based provisioning)Network transfer speed of OS image to target machine.Production Test
Monthly Cost per Dedicated Server (Dual Xeon, 128GB RAM)$500-$1,200/month (Equinix Metal c3.large.x86)$50-$150/month (Colocation rack fee for self-owned hardware)Hardware depreciation and colocation facility fees.Production Test
BMC/IPMI Control Latency2-5 seconds (Equinix Metal API to BMC)0.5-2 seconds (Direct IPMI on local management network)Network distance to BMC management interface.Production Test

Frequently Asked Questions

Practical deployment, migration, and maintenance answers.

Can Tinkerbell provision servers without BMC/IPMI access?

Yes. Tinkerbell can provision servers via network boot (PXE/iPXE) without BMC access. The ephemeral OSIE environment boots from network, executes workflow steps, and installs the target OS. BMC integration is optional but adds power management capabilities.

How does Canonical MAAS handle Windows server provisioning?

MAAS supports Windows Server deployment using pre-built Windows images or custom KVM images. Machines boot via PXE into a Windows PE environment, and MAAS applies the unattended installation configuration. Windows licensing must be provided separately.

What networking requirements exist for PXE/TFTP boot provisioning?

Bare metal machines and the provisioner server must be on the same L2 broadcast domain, or a DHCP relay (IP helper address) must be configured on the router to forward DHCP/TFTP requests. The provisioner server runs DHCP, TFTP, and HTTP servers on the management network.

Can I use Tinkerbell and MAAS together?

Yes. Tinkerbell can handle the low-level PXE provisioning while MAAS provides the higher-level machine lifecycle management (commissioning, allocation, deployment). This combination gives you CNCF-proven provisioning with MAAS's excellent hardware inventory and power management.

How many servers can a single MAAS region controller manage?

A single MAAS region controller can manage 50-100+ servers comfortably. For larger deployments, multiple rack controllers distribute the PXE/DHCP load, and the region controller handles the centralized database, API, and UI.

Starter Stack Pack — $29

Skip the setup: get the production-ready stack

Don't stitch together configs from five different READMEs. Get all 5 production-hardened Docker Compose stacks — Postgres, Redis, SSL auto-renewal, and backup scripts — ready to deploy in minutes.

n8nVisual workflow automation
📊UmamiPrivacy-first web analytics
🛡️Uptime KumaUptime monitoring & alerts
🔐VaultwardenBitwarden-compatible vault
☁️NextcloudDropbox/Drive replacement
Get the Stack Pack — $29 →

One-time purchase · Instant download · Production-ready

esc
navigate open