Herramientas
📦

Biblioteca Docker Compose

Plantillas Docker Compose listas para servicios comunes.

Stacks Docker Compose listos para usar en servicios self-hosted comunes. Cada plantilla incluye almacenamiento persistente, reinicios automáticos y mejores prácticas de seguridad.

🌐 Traefik Proxy Inverso

Enrutador edge con TLS automático vía Let's Encrypt. Colócalo frente a todos tus servicios.

version: '3.8'
services:
  traefik:
    image: traefik:v3.3
    container_name: traefik
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/traefik.yml:/traefik.yml:ro
      - ./traefik/acme.json:/acme.json
      - ./traefik/dynamic:/dynamic:ro
    networks:
      - proxy
networks:
  proxy:
    external: true

📊 Uptime Kuma

Herramienta de monitoreo self-hosted. Monitorea HTTP(s), TCP, Ping, DNS y más.

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - ./uptime-kuma/data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock

🐳 Portainer

Interfaz web para gestionar contenedores, imágenes, redes y volúmenes Docker.

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: unless-stopped
    ports:
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./portainer/data:/data

🎬 Servidor Multimedia Jellyfin

Sistema multimedia de software libre. Transmite a cualquier dispositivo desde tu propio servidor.

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    ports:
      - "8096:8096"
    volumes:
      - ./jellyfin/config:/config
      - ./jellyfin/cache:/cache
      - /mnt/media/movies:/media/movies:ro
      - /mnt/media/tv:/media/tv:ro

🔐 Vaultwarden (Bitwarden)

Servidor compatible con Bitwarden no oficial. Gestor de contraseñas ligero.

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./vaultwarden/data:/data
    environment:
      - SIGNUPS_ALLOWED=false
      - WEBSOCKET_ENABLED=true

📈 Grafana + Prometheus + Loki

Stack completo de observabilidad — métricas, logs y dashboards.

services:
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./grafana/data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=${GF_PASSWORD}

  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: unless-stopped
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - ./prometheus/data:/prometheus

  loki:
    image: grafana/loki:latest
    container_name: loki
    restart: unless-stopped
    ports:
      - "3100:3100"
    volumes:
      - ./loki/config:/etc/loki
      - ./loki/data:/loki

💡 Consejos de Uso

  • • Crea siempre una red proxy dedicada para servicios enrutados por Traefik
  • • Usa archivos .env para secretos — nunca codifiques contraseñas
  • • Establece límites de recursos: deploy.resources.limits.memory: 512M
  • • Usa docker compose up -d para iniciar stacks en modo detached
  • • Etiqueta servicios para auto-descubrimiento de Traefik: traefik.enable=true