https://github.com/evertcode/mvn-proxy
https://github.com/evertcode/mvn-proxy
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/evertcode/mvn-proxy
- Owner: evertcode
- Created: 2025-04-15T21:02:32.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-15T22:17:52.000Z (9 months ago)
- Last Synced: 2025-04-15T22:24:48.968Z (9 months ago)
- Language: Dockerfile
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Proxy NGINX para Maven con Java 7
Este proyecto configura un proxy inverso usando **NGINX** para permitir que entornos con **Java 7** y **Maven 3.5** se conecten a repositorios Maven HTTPS modernos que requieren TLS 1.2 y autenticación básica.
## 🚀 Características
- **Proxy TLS 1.2**: Convierte conexiones HTTP de Maven/Java 7 a HTTPS con TLS 1.2.
- **Autenticación Básica**: Maneja credenciales de repositorios privados de forma segura.
- **Dockerizado**: Fácil despliegue con Docker Compose.
- **Configuración Flexible**: Adaptable a distintos repositorios y puertos.
## 📋 Requisitos Previos
- Docker ([Instalación](https://docs.docker.com/get-docker/))
- Docker Compose ([Instalación](https://docs.docker.com/compose/install/))
- Credenciales de acceso al repositorio remoto (usuario y contraseña).
## 🛠️ Configuración Rápida
### 1. Clonar el repositorio
```bash
git clone https://github.com/evertcode/mvn-proxy.git
cd mvn-proxy
```
### 2. Configurar variables de entorno
```yaml
environment:
REPO_URL: "https://repo.example.com" # URL del repositorio con autenticación
REPO_HOST: "repo.example.com" # Host del repositorio
REPO_USER: "tu_usuario" # Reemplaza con tu usuario
REPO_PASSWORD: "tu_password" # Reemplaza con tu contraseña
```
### 3. Construir y desplegar el contenedor
```bash
docker-compose up -d
```
### 4. Verificar el contenedor
```bash
docker-compose ps
```
### 5. Configurar el proxy en Maven
```xml
nginx-proxy
http://localhost:8080
central
```
### 6. Verificar la configuración
```bash
# Verificar la conexión al repositorio
mvn dependency:get -Dartifact=org.example:example-artifact
# Ver logs del contenedor
docker-compose logs nginx-proxy
```
### Seguridad
- No exponer el puerto 8080 públicamente.
- Usar variables de entorno o un gestor de secretos (ej: Docker Secrets) para credenciales en entornos productivos.
- Rotar contraseñas periódicamente.
## 🚨 Solución de Problemas
### Errores comunes
- **401 Unauthorized**: Credenciales incorrectas. Verificar `REPO_USER` y `REPO_PASSWORD`.
- **502 Bad Gateway**: Repositorio inaccesible. Validar conectividad desde el contenedor: `docker-compose exec nginx-proxy curl -v https://repo.example.com`.
- **SSL Handshake Failed**: TLS no compatible. Asegurar que `proxy_ssl_protocols` esté configurado como `TLSv1.2`.
### Soluciones
- **401 Unauthorized**: Verificar credenciales en `REPO_USER` y `REPO_PASSWORD`.
- **502 Bad Gateway**: Validar conectividad desde el contenedor: `docker-compose exec nginx-proxy curl -v https://repo.example.com`.
- **SSL Handshake Failed**: Asegurar que `proxy_ssl_protocols` esté configurado como `TLSv1.2`.
## 📝 Licencia
Este proyecto está bajo licencia MIT.
## 📝 Nota
Este proyecto es un ejemplo básico y puede necesitar adaptaciones para entornos de producción.
## 📝 Contribución
Contribuciones son bienvenidas. Por favor, abra un Pull Request.