diff --git a/README.md b/README.md index 80d6f4f..c14bafc 100644 --- a/README.md +++ b/README.md @@ -82,10 +82,11 @@ Este stack no expone el puerto `8000` por defecto. Si necesitas gestionar agente ``` ## Documentación adicional -- Guía inicial: [`docs/Home.md`](docs/Home.md) -- Instalación avanzada y TLS: [`docs/Instalacion.md`](docs/Instalacion.md) -- Backup/Restore del volumen `data`: [`docs/Backup.md`](docs/Backup.md) - - Proxy inverso y TLS con Traefik: [`docs/Traefik.md`](docs/Traefik.md) +Consulta la [**Wiki del proyecto**](https://git.ictiberia.com/ICT-IT/portainer/wiki) para documentación detallada: +- [Guía inicial](https://git.ictiberia.com/ICT-IT/portainer/wiki/Home) +- [Instalación avanzada y TLS](https://git.ictiberia.com/ICT-IT/portainer/wiki/Instalacion) +- [Backup/Restore del volumen data](https://git.ictiberia.com/ICT-IT/portainer/wiki/Backup) +- [Proxy inverso y TLS con Traefik](https://git.ictiberia.com/ICT-IT/portainer/wiki/Traefik) ## Solución de problemas - Puerto ocupado (`9443/8000`): comprueba procesos con `netstat` o `Get-NetTCPConnection` y ajusta puertos en `docker-compose.yaml`. diff --git a/docs/Backup.md b/docs/Backup.md deleted file mode 100644 index 2ab3fe2..0000000 --- a/docs/Backup.md +++ /dev/null @@ -1,29 +0,0 @@ -# Backup y Restore del volumen `data` - -Portainer guarda su estado en el volumen `data`. Aquí tienes comandos para realizar copias de seguridad y restaurarlas. - -## Backup -```powershell -# Crear backup comprimido del volumen 'data' -docker run --rm -v data:/data -v "$PWD:/backup" alpine sh -c "tar czf /backup/portainer-data-$(date +%Y%m%d).tar.gz -C /data ." -``` -El archivo se guardará en el directorio actual con timestamp. - -## Restore -```powershell -# Restaurar backup al volumen 'data' -docker run --rm -v data:/data -v "$PWD:/backup" alpine sh -c "rm -rf /data/* && tar xzf /backup/portainer-data-YYYYMMDD.tar.gz -C /data" -``` -Sustituye `YYYYMMDD` por la fecha del backup. - -## Comprobación -```powershell -docker ps --filter name=portainer -``` -Si el contenedor estaba corriendo, reinícialo tras restaurar: -```powershell -docker restart portainer -``` - ---- -¿Quieres que convierta estos comandos en scripts (`scripts/backup.sh`, `scripts/restore.sh`) con validaciones? \ No newline at end of file diff --git a/docs/Home.md b/docs/Home.md deleted file mode 100644 index 4e2aa98..0000000 --- a/docs/Home.md +++ /dev/null @@ -1,58 +0,0 @@ -# Inicio — Infra Portainer - -Bienvenido a la wiki del repositorio **infra-portainer**. Esta página es la primera entrada y contiene la información esencial para desplegar Portainer usando Docker Compose. - ---- - -## Propósito - -Este repositorio contiene la infraestructura mínima para desplegar Portainer Community Edition (CE) con Docker Compose. Está pensado para facilitar la administración de contenedores y stacks en entornos pequeños o de laboratorio. - -## Contenido principal - -- `docker-compose.yaml`: definición del servicio Portainer (puertos, volúmenes y variables). -- `.env` (variables de entorno): fichero donde pueden definirse variables de entorno (contraseñas, rutas, etc.). - -## Puertos expuestos - -- 9443: Interfaz web segura (HTTPS) de Portainer. -- 8000: Puerto para el agente Edge (opcional). - -## Despliegue rápido (modo local) - -1. Sitúate en la carpeta del repositorio: - -```powershell -cd C:\Users\gustavo.roales.ICT-IBERIA\repos\infra-portainer -``` - -2. (Opcional) revisa `.env` y adapta variables si existen. - -3. Arranca con Docker Compose: - -```powershell -docker compose up -d -# o, en sistemas con docker-compose clásico: -docker-compose up -d -``` - -4. Verifica que el contenedor está corriendo: - -```powershell -docker ps --filter name=portainer -``` - -5. Accede a la interfaz en: https://:9443 - -## Buenas prácticas - -- Asegúrate de tener un volumen persistente para `/data` (ya definido en `docker-compose.yaml`) para mantener la configuración. -- No exponer puertos innecesarios a Internet sin un proxy y HTTPS correctamente configurado. - -## Contribuciones a la documentación - -Puedes editar esta documentación directamente en `docs/` dentro del repositorio y enviar tus cambios mediante Pull Request. Si en el futuro habilitas la wiki de Gitea, también podrás mantenerla allí. - ---- - -Si quieres, puedo añadir más páginas (instalación avanzada, certificados TLS, backup/restore del volumen `data`, integración con Traefik, etc.). ¿Qué te gustaría añadir en la siguiente página? \ No newline at end of file diff --git a/docs/Instalacion.md b/docs/Instalacion.md deleted file mode 100644 index 3c57bb7..0000000 --- a/docs/Instalacion.md +++ /dev/null @@ -1,42 +0,0 @@ -# Instalación avanzada y TLS - -Esta guía cubre pasos adicionales para desplegar Portainer con mejores prácticas, incluyendo uso de `.env`, TLS y consideraciones de seguridad. - -## Requisitos -- Docker y Docker Compose instalados -- Archivo `.env` creado a partir de `stack.env.example` -- Puertos disponibles: `9443` (HTTPS), `8000` (opcional) - -## Variables en `.env` -Ejemplo de variables útiles en `.env`: -``` -PORTAINER_IMAGE=portainer/portainer-ce:latest -HTTPS_PORT=9443 -EDGE_PORT=8000 -DATA_VOLUME=data -``` -Asegúrate de que `docker-compose.yaml` las usa correctamente. - -## Arranque del stack -```powershell -cd C:\Users\gustavo.roales.ICT-IBERIA\repos\infra-portainer -docke compose up -d -``` - -## Certificados TLS -- Si usas un proxy (Traefik, Nginx), gestiona TLS en el proxy y expón Portainer internamente. -- Si expones Portainer directamente, configura certificados válidos o asigna reverse proxy delante. - -## Seguridad -- Limita el acceso por red (firewall/VPN). -- No compartas `.env` ni secretos. -- Haz backup periódico del volumen `data`. - -## Verificación -```powershell -docker ps --filter name=portainer -``` -Accede: `https://:9443` - ---- -¿Quieres que añada configuración de Traefik con reglas y certificados (Let's Encrypt)? \ No newline at end of file diff --git a/docs/Traefik.md b/docs/Traefik.md deleted file mode 100644 index f087fe3..0000000 --- a/docs/Traefik.md +++ /dev/null @@ -1,70 +0,0 @@ -# Traefik — Proxy inverso y TLS para Portainer - -Esta guía muestra cómo exponer Portainer detrás de **Traefik** con HTTPS automático (Let's Encrypt) y reglas limpias. - -## Requisitos -- Traefik corriendo en el mismo host (como servicio en otro `docker-compose` o stack). -- Resolución DNS del dominio hacia tu host. - -## Etiquetas (labels) de ejemplo para Portainer -Añade estas etiquetas al servicio `portainer` cuando uses Traefik (en el mismo `compose` o en un overlay). Nota: si mantienes `ports: 9443:9443`, la UI seguirá accesible directamente; con Traefik se recomienda eliminar la exposición directa y publicar solo vía proxy. - -```yaml -services: - portainer: - image: portainer/portainer-ce:lts - container_name: portainer - restart: always - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - portainer_data:/data - # Quita los puertos directos si usas Traefik - # ports: - # - 9443:9443 - labels: - - "traefik.enable=true" - - "traefik.http.routers.portainer.rule=Host(`portainer.tudominio.com`)" - - "traefik.http.routers.portainer.entryPoints=websecure" - - "traefik.http.routers.portainer.tls=true" - - "traefik.http.services.portainer.loadbalancer.server.port=9443" - - "traefik.http.routers.portainer.tls.certresolver=myresolver" -``` - -## Configuración Traefik (resumen) -Traefik necesita: -- `entryPoints` `web` (80) y `websecure` (443). -- `certResolver` configurado (por ejemplo, `myresolver` con ACME/Let's Encrypt). - -Ejemplo mínimo de `traefik.yml` (referencia): -```yaml -entryPoints: - web: - address: ":80" - websecure: - address: ":443" - -certificatesResolvers: - myresolver: - acme: - email: tu-email@ejemplo.com - storage: /letsencrypt/acme.json - httpChallenge: - entryPoint: web -``` - -Volúmenes para Traefik (contenedor): -```yaml -- /var/run/docker.sock:/var/run/docker.sock:ro -- ./letsencrypt:/letsencrypt -``` - -## Pasos -1. Configura y levanta Traefik con `web` y `websecure`, y un `certResolver`. -2. Aplica las labels a Portainer y evita exponer puertos directos. -3. Apunta el DNS `portainer.tudominio.com` al host. -4. Accede por: `https://portainer.tudominio.com` - -## Notas -- Si Portainer corre en 9443 con certificado propio, especifica `loadbalancer.server.port=9443` (como en el ejemplo). -- Para publicar en HTTP interno puedes cambiar a puerto 9000 (HTTP) y ajustar labels acorde (`server.port=9000`). -- Revisa logs de Traefik y Portainer si hay errores de TLS o reglas. \ No newline at end of file