From 373e6fca345412ab49a4d10792d6d6f378ca54a2 Mon Sep 17 00:00:00 2001 From: Juancho Date: Sat, 20 Dec 2025 19:18:08 -0500 Subject: [PATCH] =?UTF-8?q?Actualiza=20Dockerfile,=20docker-compose=20y=20?= =?UTF-8?q?scripts=20para=20mejorar=20la=20configuraci=C3=B3n=20y=20el=20a?= =?UTF-8?q?rranque=20de=20rclone-gui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 14 ++++++++++++++ .gitignore | 38 ++++++++++++++++++++++++++++++++++++++ Dockerfile | 27 ++++++++++++++++++--------- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ docker-compose.yaml | 2 ++ test.sh | 20 +++++++++++++++++++- 6 files changed, 133 insertions(+), 10 deletions(-) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 README.md diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2dd0853 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +# Evitar archivos innecesarios en el contexto de build +.git/ +.gitignore +.vscode/ +.idea/ +node_modules/ +dist/ +build/ +*.env +*.log +docker-compose.yaml +workspace.code-workspace +rclone.conf +.rclone/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a0ed01 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# OS / editor +.DS_Store +Thumbs.db +*.swp +*.swo +.vscode/ +.idea/ + +# Python +__pycache__/ +*.pyc +*.pyo +*.pyd +.pytest_cache/ +.coverage +coverage/ + +# Node / web (por si acaso) +node_modules/ +dist/ +build/ + +# Env y logs +.env +.env.* +*.env +*.log + +# Docker / Compose +*.pid +*.seed + +# Rclone config local (si existiera) +.rclone/ +rclone.conf + +# Overrides locales de Compose +docker-compose.override.yaml diff --git a/Dockerfile b/Dockerfile index 5469f1a..84b49c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,15 @@ -FROM ubuntu +FROM ubuntu:22.04 -RUN apt update && apt upgrade -y && apt autoremove -y && apt install python3 python3-pip -y && apt install git nano wget -y +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + wget \ + git \ + nano \ + python3 \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* ENV URL_DESCARGA_RCLONE="https://downloads.rclone.org/v1.72.1/rclone-v1.72.1-linux-amd64.deb" @@ -8,12 +17,12 @@ EXPOSE 5572 WORKDIR /app -RUN wget $URL_DESCARGA_RCLONE +RUN wget "$URL_DESCARGA_RCLONE" \ + && dpkg -i rclone-v1.72.1-linux-amd64.deb \ + && rm -f rclone-v1.72.1-linux-amd64.deb -RUN dpkg -i rclone-v1.72.1-linux-amd64.deb +# Copiamos el script local en lugar de descargarlo +COPY test.sh /app/test.sh +RUN chmod +x /app/test.sh -RUN wget https://raw.githubusercontent.com/kadma/pruebasdocker/main/rclone-gui/test.sh - -RUN chmod +x test.sh - -ENTRYPOINT ./test.sh \ No newline at end of file +ENTRYPOINT ["/app/test.sh"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a1b873e --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# rclone-gui + +Interfaz web (GUI) de Rclone ejecutada vía Docker. Este proyecto levanta un contenedor con `rclone rcd` y el plugin `--rc-web-gui` habilitado. + +## Requisitos +- Docker Desktop +- Docker Compose + +## Configuración rápida +1. Ajusta el volumen en `docker-compose.yaml` para apuntar a tu configuración local de Rclone. Por ejemplo en Windows: + ```yaml + volumes: + - C:/Users/TU_USUARIO/.config/rclone:/root/.config/rclone + ``` +2. Opcional: cambia las variables de entorno `USER_RCLONE` y `PASSWORD_RCLONE`. + +## Arranque +```bash +# Construir y levantar +docker compose up -d + +# Ver logs +docker compose logs -f +``` + +Abre: http://localhost:5572 + +## Variables de entorno +- `USER_RCLONE`: usuario para la GUI (por defecto `adm`) +- `PASSWORD_RCLONE`: contraseña para la GUI (por defecto `pass`) + +## Notas +- El contenedor expone el puerto `5572` y mapea a tu host. +- Asegúrate de que la ruta del volumen existe y contiene `rclone.conf`. +- En Windows, usa rutas con `/` (por ejemplo `C:/Users/...`) dentro de YAML. + +## Desarrollo +- Los archivos ignorados para Git están en `.gitignore`. +- El contexto de build de Docker excluye archivos innecesarios vía `.dockerignore`. + +## Mantenimiento +- Para actualizar la versión de Rclone, edita `URL_DESCARGA_RCLONE` en `Dockerfile`. diff --git a/docker-compose.yaml b/docker-compose.yaml index 09bacf6..1e55cc8 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -10,6 +10,8 @@ services: - PASSWORD_RCLONE=pass volumes: - /path/to/config:/root/.config/rclone + ports: + - "5572:5572" restart: unless-stopped network_mode: bridge hostname: rclone-gui diff --git a/test.sh b/test.sh index 0e6a1db..ab933b6 100644 --- a/test.sh +++ b/test.sh @@ -1 +1,19 @@ -rclone rcd --rc-web-gui --rc-addr :5572 --rc-serve --rc-user=$USER_RCLONE --rc-pass=$PASSWORD_RCLONE --rc-no-auth --config "/root/.config/rclone/rclone.conf" --user-agent "Mozilla" --transfers 24 \ No newline at end of file +#!/usr/bin/env bash +set -euo pipefail + +USER_RCLONE=${USER_RCLONE:-adm} +PASSWORD_RCLONE=${PASSWORD_RCLONE:-pass} +RC_ADDR=${RC_ADDR:-:5572} + +echo "Iniciando rclone GUI en ${RC_ADDR}" + +# Ejecuta rclone con GUI y autenticación +rclone rcd \ + --rc-web-gui \ + --rc-addr "${RC_ADDR}" \ + --rc-serve \ + --rc-user "${USER_RCLONE}" \ + --rc-pass "${PASSWORD_RCLONE}" \ + --config "/root/.config/rclone/rclone.conf" \ + --user-agent "Mozilla" \ + --transfers 24 \ No newline at end of file