STPM es una interfaz web intuitiva para gestionar y configurar Traefik como proxy inverso para servicios http que no están necesariamente en el mismo host que el contenedor de Traefik. Simplifica la administración de rutas, certificados SSL, middleware y demás configuraciones sin necesidad de editar archivos YAML manualmente.
- 🌐 Gestión de enrutamiento: Configura rutas para tus servicios web fácilmente
- 🔒 Certificados SSL automáticos: Gestión simplificada de Let's Encrypt
- ⚡ Tiempo real: Cambios aplicados instantáneamente sin reiniciar Traefik
- 🛡️ Middlewares: Configuración de seguridad, redireccionamientos, compresión y más
- 📊 Monitorización: Visualiza el estado de tus servicios y rutas
- TO DO: 🔑 Autenticación segura: Acceso protegido mediante clave API
- Docker y Docker Compose
- Puertos 80 y 443 disponibles para Traefik. El puerto 80 debe ser accesible desde el exterior para la validación de Let's Encrypt.
- Puerto 9000 disponible para el configurador. Puedes cambiarlo en el archivo
docker-compose.yml
si es necesario.
-
Clona este repositorio:
git clone https://github.com/rafasb/traefik-configurador.git cd traefik-configurador
-
Recuerda cambiar el email en el archivo
traefik/traefik.yml
para la gestión de certificados SSL. -
Recuerda crear y establecer los permisos del archivo
traefik/acme.json
a 600:touch traefik/acme.json chmod 600 traefik/acme.json
-
Inicia los contenedores:
docker compose up -d
-
Accede a la interfaz de configuración en: Es recomendable usarlo localmente
http://localhost:9000
-
Accede al dashboard de Traefik en: Es recomendable usarlo localmente
http://localhost:8080
-
Cambia el valor de caServer en el fichero
traefik/traefik.yml
tomando como referencia la documentación. Estos cambios requieren resetear el contenedor de Traefik eliminando el contenido del fichero acme.json:
El acceso a la API del configurador está protegido mediante una clave API definida en la variable de entorno MIDDLEWARE_KEY
. Por defecto, se establece una clave en el archivo docker-compose.yml, pero se recomienda cambiarla por razones de seguridad.
proxy-traefik/
├── docker-compose.yml # Definición de los servicios
├── traefik/ # Configuración de Traefik
│ ├── traefik.yml # Archivo principal de configuración estática
│ ├── acme.json # Almacenamiento de certificados
│ ├── traefik.d/ # Configuraciones adicionales
│ │ └── http.yml # Configuración dinámica de HTTP
├── configurador/ # Aplicación web de configuración
Para integrar tus aplicaciones con Traefik, simplemente añade las siguientes etiquetas a tus servicios Docker. Esta funcionalidad es parte de Traefik y no es objeto de este proyecto:
labels:
- "traefik.enable=true"
- "traefik.http.routers.miservicio.rule=Host(`midominio.com`)"
- "traefik.http.routers.miservicio.tls=true"
- "traefik.http.routers.miservicio.tls.certresolver=myresolver"
- "traefik.http.services.miservicio.loadbalancer.server.port=80"
- "traefik.http.middlewares.miservicio.middleware=mi-middleware"
networks:
- traefik-private
Las contribuciones son bienvenidas. Por favor, considera:
- Hacer fork del repositorio
- Crear una rama para tu funcionalidad (
git checkout -b feature/nueva-funcionalidad
) - Hacer commit de tus cambios
- Subir la rama (
git push origin feature/nueva-funcionalidad
) - Abrir un Pull Request
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE
para más detalles.
Si tienes preguntas o sugerencias, no dudes en abrir un issue en este repositorio o contactarnos directamente.
¿Te ha resultado útil este proyecto? ¡Invítame a un café! ☕
Desarrollado con ❤️ para la comunidad de DevOps y administradores de sistemas