proxmox-docker-host

Deploy and troubleshoot Docker services on Proxmox CT 100 with Traefik.

Updated May 14, 2024
One-click install
npx skills add https://github.com/wagnerra23/oimpresso.com --skill proxmox-docker-host
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: proxmox-docker-host
Source: https://github.com/wagnerra23/oimpresso.com/tree/main/.claude/skills/proxmox-docker-host
Command: npx skills add https://github.com/wagnerra23/oimpresso.com --skill proxmox-docker-host

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill solves the operational confusion of deploying and troubleshooting Docker services on a Proxmox LXC host (CT 100) behind Traefik, where the source-of-truth must be git + docker compose rather than Portainer.

Core Features & Use Cases

  • Subdomain + Let’s Encrypt TLS recipe: Creates the DNS A record and applies Traefik labels so the service is reachable at novo-servico.oimpresso.com with automatic certificates.
  • Compose-managed deployment (source-of-truth): Uses versioned docker-compose.yml and runs docker compose up -d over SSH to keep Portainer as an observer for logs/exec/restart rather than the authority.
  • Persistent Hostinger MySQL SSH tunnel (autossh sidecar): Adds an autossh-based tunnel container so the app can reach Hostinger MySQL reliably without exposing the DB publicly.
  • Troubleshooting playbook: Diagnoses common issues like certificate issuance failures, Traefik 504 timeouts due to wrong Docker networks, and Portainer/UI divergence.

Quick Start

Deploy a new service with a subdomain by following the Skill recipe to add the DNS A record, create a docker-compose.yml with Traefik labels, and run docker compose up -d on the CT 100 via SSH.

Frequently Asked Questions about proxmox-docker-host

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a new Docker service on a Proxmox host with Traefik and automatic Let's Encrypt TLS?

To deploy a new Docker service with Traefik and Let's Encrypt TLS, you create a DNS A record, define a versioned docker-compose.yml with correct Traefik labels, and run docker compose up -d over SSH on the Proxmox CT 100 host.

Why does Traefik return a 504 timeout for my Docker container on Proxmox?

Traefik 504 timeouts on Proxmox Docker containers typically occur due to wrong Docker network configurations. Diagnosing and correcting the network assignments in your docker-compose.yml resolves the routing issue.

How do I maintain a persistent SSH tunnel to a remote MySQL database from a Docker container?

You maintain a persistent SSH tunnel to a remote MySQL database by deploying an autossh sidecar container. This securely connects the app to the Hostinger MySQL endpoint without exposing the database publicly.

Does Portainer work as the source-of-truth for deploying Docker compose services on Proxmox?

Portainer does not work as the source-of-truth for deployments. You must use versioned docker-compose.yml files and run commands over SSH, keeping Portainer strictly as an observer for logs, exec, and restart actions.

What causes Let's Encrypt certificate issuance failures when adding new Traefik subdomains?

Let's Encrypt certificate issuance failures usually stem from missing DNS A records or incorrect Traefik label conventions in your docker-compose.yml. Verifying DNS propagation and label syntax resolves the certificate issuance.

Do I need SSH access to the Proxmox CT 100 host to deploy Docker containers?

Yes, you need SSH access to the Proxmox CT 100 host. The deployment process requires running docker compose up -d over SSH to ensure the versioned git configuration remains the source-of-truth.