TinyAuth for Nginx
TinyAuth es la forma más sencilla de proteger sus aplicaciones con una pantalla de inicio de sesión
Instalación
Ahora es el momento de agregar TinyAuth a su archivo docker-compose.yml existente o crear uno nuevo. Si crea un nuevo archivo, no olvide agregar la sección services:. La configuración puede ser tan simple como esta:
tinyauth:
container_name: tinyauth
hostname: tinyauth
image: ghcr.io/maposia/remnawave-tinyauth:latest
restart: always
ports:
- '127.0.0.1:3002:3002'
networks:
- remnawave-network
environment:
- PORT=3002
- APP_URL=https://tinyauth.example.com
- USERS=your-username-password-hash
- SECRET=some-random-32-chars-string
volumes:
- ./data:/data
# Para obtener USERS y SECRET lea a continuación
Configurar variables
Para generar su primer hash de usuario, use el siguiente comando
docker run -it --rm ghcr.io/maposia/remnawave-tinyauth:latest user create --interactive
Después de ejecutarlo, se le pedirá que ingrese un nombre de usuario y contraseña. También deberá seleccionar output format-docker
Después de eso, verá un mensaje de que el usuario ha sido creado y aparecerá un username:passwordHash que debe usarse en docker-compose.yml en la variable de entorno USERS
Después de iniciar el contenedor, puede generar un hash para un usuario usando el contenedor tinyAuth en ejecución con el comando.
docker exec -it tinyauth ./tinyauth user create --interactive
Cada opción de configuración que tiene un equivalente FILE (p. ej. USERS y USERS_FILE), puede usar el archivo en lugar de la variable de entorno.
USERS= lista separada por comas de usuarios tinyauth. (requerido)
USERS_FILE= Un archivo que contiene una lista de usuarios tinyauth.
Todas las variables de entorno se pueden ver en la documentación oficial https://tinyauth.app/docs/reference/configuration
Para generar la variable de entorno SECRET use openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32.
Configurar
A continuación, necesita configurar nginx.conf para proteger la ruta requerida.
upstream tinyauth {
server 127.0.0.1:3002;
}
server {
server_name tinyauth.example.com;
listen 443 ssl;
http2 on;
ssl_certificate "/etc/nginx/ssl/tinyauth.example.com/fullchain.pem";
ssl_certificate_key "/etc/nginx/ssl/tinyauth.example.com/privkey.pem";
ssl_trusted_certificate "/etc/nginx/ssl/tinyauth.example.com/fullchain.pem";
location / {
proxy_pass http://tinyauth;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}
server {
server_name panel.remnawave.com;
listen 443 ssl;
http2 on;
ssl_certificate "/etc/nginx/ssl/panel.remnawave.com/fullchain.pem";
ssl_certificate_key "/etc/nginx/ssl/panel.remnawave.com/privkey.pem";
ssl_trusted_certificate "/etc/nginx/ssl/panel.remnawave.com/fullchain.pem";
location / {
auth_request /tinyauth;
error_page 401 = @tinyauth_login;
proxy_http_version 1.1;
proxy_pass http://remnawave;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
location /tinyauth {
proxy_pass http://tinyauth/api/auth/nginx;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header x-forwarded-proto $scheme;
proxy_set_header x-forwarded-host $http_host;
proxy_set_header x-forwarded-uri $request_uri;
}
location @tinyauth_login {
return 302 https://tinyauth.example.com/login?redirect_uri=$scheme://$http_host$request_uri;
}
#Asegúrese de reemplazar http://tinyauth.example.com con la URL de su propia aplicación
Ejecutar el contenedor
Después de eso, reinicie nginx y lance tinyAuth
docker compose down && docker compose up -d && docker compose logs -f
Importante: Si usó tinyAuth antes del 01.12.2025 y actualizó, ha cambiado de la versión 3 a la versión 4.
Actualización de v3 a v4
A partir de v4, Tinyauth es una aplicación con estado que utiliza una base de datos SQLite para almacenar sesiones. Este cambio mejora la seguridad. Para configuraciones Docker, incluya el siguiente volumen:
services:
tinyauth:
volumes:
- ./data:/data
Emitir claves API
Puede usar Basic base64(username:password) en el encabezado X-Api-Key de sus solicitudes a la API.
Ejemplo: X-Api-Key: Basic dXNlcm5hbWU6cGFzc3dvcmQ=