tainersh/tainer

By tainersh

โ€ขUpdated 3 months ago

Self-service Proxmox dashboard. Multi-site, LXC/VM management, templates, 2FA, and audit trails.

Image
Networking
Developer tools
Monitoring & observability
4

10K+

tainersh/tainer repository overview

Self-service Proxmox LXC container management dashboard. Curated template catalog, deployment lifecycle, multi-site cluster support, env variable editing, user accounts, 2FA, and audit logs.

Architectures: linux/amd64 ยท linux/arm64


โ Quick start

docker run -d \
  --name tainer \
  --restart unless-stopped \
  -p 3000:3000 \
  -v tainer-data:/app/data \
  tainersh/tainer:latest

Open http://localhost:3000โ  โ€” the first-run wizard creates your admin account.

โ Docker Compose

services:
  tainer:
    image: tainersh/tainer:latest
    ports:
      - "3000:3000"
    volumes:
      - tainer-data:/app/data
    restart: unless-stopped
    environment:
      APP_URL: http://localhost:3000

volumes:
  tainer-data:

Run:

docker compose up -d

โ HTTPS / SSL

The Tainer container serves HTTP internally on port 3000. For HTTPS, run it behind a reverse proxy such as Caddy and set APP_URL to the public HTTPS URL.

services:
  tainer:
    image: tainersh/tainer:latest
    expose:
      - "3000"
    volumes:
      - tainer-data:/app/data
    restart: unless-stopped
    environment:
      APP_URL: https://tainer.example.com

  caddy:
    image: caddy:2
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data
      - caddy-config:/config
    depends_on:
      - tainer
    restart: unless-stopped

volumes:
  tainer-data:
  caddy-data:
  caddy-config:

Create Caddyfile:

tainer.example.com {
  encode zstd gzip

  reverse_proxy tainer:3000 {
    header_up Host {host}
  }
}

Run:

docker compose up -d

For private/self-signed HTTPS, add this inside the Caddy site block:

tls internal

For corporate certificates, mount your certs into the Caddy container and use:

tls /etc/caddy/certs/cert.pem /etc/caddy/certs/key.pem

โ Environment variables

VariableDescription
APP_URLPublic base URL โ€” required for password reset links and SSO redirect URIs
SMTP_HOST / SMTP_PORT / SMTP_USER / SMTP_PASS / SMTP_FROMSMTP for password reset emails
TAINER_DATA_DIROverride data directory (default /app/data)

โ Updating

docker compose pull && docker compose up -d

Data is preserved in the volume โ€” no migration needed.

Tag summary

Content type

Image

Digest

sha256:c55e8881aโ€ฆ

Size

377.8 MB

Last updated

3 months ago

docker pull tainersh/tainer