diff --git a/Home.md b/Home.md index b66b802..1fa3642 100644 --- a/Home.md +++ b/Home.md @@ -77,7 +77,6 @@ https://:9443 ## Próximos Pasos -- 📖 [Instalación Avanzada](Instalacion) - Configuración de TLS, variables de entorno y opciones avanzadas - 💾 [Backup y Restauración](Backup) - Cómo respaldar y restaurar datos de Portainer - 🌐 [Integración con Traefik](Traefik) - Configurar proxy inverso con TLS automático - 🔌 [Edge Agents](Edge-Agents) - Gestionar entornos remotos con agentes Edge diff --git a/Instalacion.md b/Instalacion.md deleted file mode 100644 index 7cdd6d1..0000000 --- a/Instalacion.md +++ /dev/null @@ -1,263 +0,0 @@ -# Instalación Avanzada - -Esta página cubre opciones avanzadas de instalación y configuración para Portainer CE. - -## Configuración con Variables de Entorno - -Puedes usar un archivo `.env` para gestionar variables de configuración. Crea el archivo en la raíz del proyecto: - -```bash -# .env -PORTAINER_HTTPS_PORT=9443 -PORTAINER_EDGE_PORT=8000 -PORTAINER_DATA_VOLUME=portainer_data -PORTAINER_NETWORK=portainer_network -``` - -Luego referencia estas variables en `docker-compose.yaml`: - -```yaml -services: - portainer: - container_name: portainer - image: portainer/portainer-ce:lts - restart: always - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - ${PORTAINER_DATA_VOLUME:-portainer_data}:/data - ports: - - "${PORTAINER_HTTPS_PORT:-9443}:9443" - # - "${PORTAINER_EDGE_PORT:-8000}:8000" # Descomenta para Edge Agents - networks: - - ${PORTAINER_NETWORK:-portainer_network} -``` - -## Configuración de Certificados SSL/TLS - -### Opción 1: Certificado Autofirmado (Por Defecto) - -Portainer genera automáticamente un certificado autofirmado al iniciar. No requiere configuración adicional, pero los navegadores mostrarán advertencias de seguridad. - -### Opción 2: Certificados Propios - -Para usar tus propios certificados SSL: - -1. **Prepara tus certificados**: - - `cert.pem` - Certificado público - - `key.pem` - Clave privada - -2. **Crea una carpeta para certificados**: - ```bash - mkdir -p ./certs - cp /ruta/a/tu/cert.pem ./certs/ - cp /ruta/a/tu/key.pem ./certs/ - chmod 600 ./certs/*.pem - ``` - -3. **Modifica docker-compose.yaml**: - ```yaml - services: - portainer: - # ... configuración existente ... - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - portainer_data:/data - - ./certs:/certs:ro - command: --sslcert /certs/cert.pem --sslkey /certs/key.pem - ``` - -4. **Reinicia Portainer**: - ```bash - docker compose down - docker compose up -d - ``` - -### Opción 3: Proxy Inverso con Let's Encrypt - -La forma más profesional es usar un proxy inverso como Traefik o Nginx con certificados Let's Encrypt. Ver [Integración con Traefik](Traefik). - -## Habilitar Edge Agents - -Los Edge Agents permiten gestionar entornos Docker remotos que no tienen conectividad directa con Portainer Server. - -### 1. Exponer Puerto 8000 - -Edita `docker-compose.yaml` y descomenta la línea del puerto 8000: - -```yaml -ports: - - "9443:9443" - - "8000:8000" # ← Descomentar esta línea -``` - -### 2. Configurar Firewall - -Asegúrate de que el puerto 8000 esté accesible desde tus agentes remotos: - -```bash -# Ejemplo con UFW (Ubuntu) -sudo ufw allow 8000/tcp - -# Ejemplo con firewall-cmd (RHEL/CentOS) -sudo firewall-cmd --permanent --add-port=8000/tcp -sudo firewall-cmd --reload -``` - -### 3. Desplegar Edge Agent - -Desde la interfaz de Portainer: -1. Ve a **Environments** → **Add environment** -2. Selecciona **Docker Standalone** -3. Elige **Edge Agent** -4. Copia el comando de instalación y ejecútalo en el host remoto - -📖 Más información: [Documentación oficial de Edge Agents](https://docs.portainer.io/admin/environments/add/docker/edge) - -## Configuración de SELinux - -Si usas SELinux en Linux, necesitas ejecutar Portainer con el flag `--privileged`: - -```yaml -services: - portainer: - # ... configuración existente ... - privileged: true -``` - -O configurar políticas SELinux específicas (recomendado para producción): - -```bash -sudo semanage fcontext -a -t svirt_sandbox_file_t "/var/lib/docker/volumes/portainer_data(/.*)?" -sudo restorecon -R /var/lib/docker/volumes/portainer_data -``` - -## Docker Rootless - -Portainer puede ejecutarse con Docker rootless, pero con algunas limitaciones: - -1. **Montar socket rootless**: - ```yaml - volumes: - - $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock - ``` - -2. **Limitaciones conocidas**: - - No se puede gestionar el host (stats, eventos del sistema) - - Algunas funciones de networking pueden no funcionar - - Host management features deshabilitadas - -📖 Más información: [Docker Rootless](https://docs.docker.com/engine/security/rootless/) - -## Despliegue con Docker Run - -Si prefieres no usar Docker Compose: - -```bash -# Crear volumen -docker volume create portainer_data - -# Ejecutar Portainer -docker run -d \ - -p 9443:9443 \ - --name portainer \ - --restart=always \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v portainer_data:/data \ - portainer/portainer-ce:lts -``` - -## Configuración de Red Avanzada - -### Usar Red Externa - -Si ya tienes una red Docker existente: - -```yaml -networks: - portainer_network: - external: true - name: mi_red_existente -``` - -### IPv6 - -Para habilitar IPv6: - -```yaml -networks: - portainer_network: - enable_ipv6: true - ipam: - config: - - subnet: "fd00::/64" -``` - -## Limitar Recursos - -Para limitar CPU y memoria de Portainer: - -```yaml -services: - portainer: - # ... configuración existente ... - deploy: - resources: - limits: - cpus: '1.0' - memory: 512M - reservations: - cpus: '0.5' - memory: 256M -``` - -## Configuración de Logging - -Personalizar el driver de logs: - -```yaml -services: - portainer: - # ... configuración existente ... - logging: - driver: "json-file" - options: - max-size: "10m" - max-file: "3" -``` - -## Troubleshooting Avanzado - -### Logs Detallados - -Habilitar modo debug: - -```yaml -services: - portainer: - # ... configuración existente ... - command: --log-level=DEBUG -``` - -### Verificar Conectividad al Socket Docker - -```bash -# Desde dentro del contenedor -docker exec -it portainer ls -la /var/run/docker.sock - -# Verificar permisos -docker exec -it portainer stat -c '%a %U:%G' /var/run/docker.sock -``` - -### Reset de Admin Password - -Si olvidaste la contraseña del admin: - -```bash -docker stop portainer -docker run --rm -v portainer_data:/data portainer/helper-reset-password -docker start portainer -``` - ---- - -**Próximos pasos**: [Backup y Restauración](Backup) | [Integración con Traefik](Traefik)