Migrar documentación a wiki de Gitea
This commit is contained in:
@@ -82,10 +82,11 @@ Este stack no expone el puerto `8000` por defecto. Si necesitas gestionar agente
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Documentación adicional
|
## Documentación adicional
|
||||||
- Guía inicial: [`docs/Home.md`](docs/Home.md)
|
Consulta la [**Wiki del proyecto**](https://git.ictiberia.com/ICT-IT/portainer/wiki) para documentación detallada:
|
||||||
- Instalación avanzada y TLS: [`docs/Instalacion.md`](docs/Instalacion.md)
|
- [Guía inicial](https://git.ictiberia.com/ICT-IT/portainer/wiki/Home)
|
||||||
- Backup/Restore del volumen `data`: [`docs/Backup.md`](docs/Backup.md)
|
- [Instalación avanzada y TLS](https://git.ictiberia.com/ICT-IT/portainer/wiki/Instalacion)
|
||||||
- Proxy inverso y TLS con Traefik: [`docs/Traefik.md`](docs/Traefik.md)
|
- [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
|
## Solución de problemas
|
||||||
- Puerto ocupado (`9443/8000`): comprueba procesos con `netstat` o `Get-NetTCPConnection` y ajusta puertos en `docker-compose.yaml`.
|
- Puerto ocupado (`9443/8000`): comprueba procesos con `netstat` o `Get-NetTCPConnection` y ajusta puertos en `docker-compose.yaml`.
|
||||||
|
|||||||
@@ -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?
|
|
||||||
58
docs/Home.md
58
docs/Home.md
@@ -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://<HOST>: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?
|
|
||||||
@@ -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://<HOST>:9443`
|
|
||||||
|
|
||||||
---
|
|
||||||
¿Quieres que añada configuración de Traefik con reglas y certificados (Let's Encrypt)?
|
|
||||||
@@ -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.
|
|
||||||
Reference in New Issue
Block a user