first commit

This commit is contained in:
2026-07-16 20:48:43 -03:00
commit 5696cee264
1111 changed files with 322270 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
FROM debian:bookworm-slim
# Instala herramientas necesarias, incluyendo mongodump
RUN apt-get update && apt-get install -y \
gzip \
tar \
curl \
unzip \
fuse \
cron \
&& rm -rf /var/lib/apt/lists/*
# Instala dependencias necesarias
RUN apt-get update && apt-get install -y \
gnupg \
curl \
ca-certificates \
lsb-release \
apt-transport-https
# Añade la clave GPG del repositorio de MongoDB
RUN curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg
# Añade el repositorio de MongoDB
RUN echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" \
> /etc/apt/sources.list.d/mongodb-org-8.0.list
# Instala mongodump (mongo-tools)
RUN apt-get update && apt-get install -y mongodb-database-tools
# Instala rclone
RUN curl https://rclone.org/install.sh | bash
# Crea los directorios necesarios
RUN mkdir -p /backup /data-uploads /root/.config/rclone
# Declaramos los volúmenes
VOLUME ["/data-uploads", "/backup", "/root/.config/rclone"]
# Copia el script de backup
COPY backup.sh /usr/local/bin/backup.sh
RUN chmod +x /usr/local/bin/backup.sh
# Copia el cron job
COPY backup-cron /etc/cron.d/backup-cron
RUN chmod 0644 /etc/cron.d/backup-cron && \
crontab /etc/cron.d/backup-cron
# Necesario para cron
RUN touch /var/log/cron.log
# Comando de inicio: corre cron y muestra logs
CMD cron && tail -f /var/log/cron.log
+3
View File
@@ -0,0 +1,3 @@
# Ejecutar el script todos los días a las 3:00 AM
#*/5 * * * * root /usr/local/bin/backup.sh >> /var/log/cron.log 2>&1
0 3 * * * root /usr/local/bin/backup.sh >> /var/log/cron.log 2>&1
+29
View File
@@ -0,0 +1,29 @@
#!/bin/bash
set -e
DATE=$(date +"%Y-%m-%d_%H-%M")
BACKUP_DIR="/backup"
DATA_SRC="/data-uploads"
DUMP_DIR="$BACKUP_DIR/mongo_$DATE"
ARCHIVE="$BACKUP_DIR/backup_$DATE.tar.gz"
echo "1. Realizando backup de MongoDB..."
mongodump \
--host mongodb \
--username txuser \
--password hdR2102Frx8us2WkuN21quAn12 \
--authenticationDatabase turnosxpress \
--db turnosxpress \
--out "$DUMP_DIR"
echo "2. Comprimendo datos..."
tar -czf "$ARCHIVE" "$DATA_SRC" "$DUMP_DIR"
echo "3. Subiendo a Mega con rclone..."
rclone copy "$ARCHIVE" hdrdevs-mega:
echo "4. Eliminando archivos temporales..."
rm -rf "$DUMP_DIR"
echo "✅ Backup finalizado correctamente: $ARCHIVE"
+7
View File
@@ -0,0 +1,7 @@
docker run -d \
--name backupper \
--restart unless-stopped \
-v /root/my-docker-images/uploads:/data-uploads \
-v /root/my-docker-images/backups:/backup \
-v /root/my-docker-images/rclone:/root/.config/rclone \
backupper
+10
View File
@@ -0,0 +1,10 @@
Esto ejecuta un contenedor con rclone y permite autorizar la conexion con google drive.
docker run -it --rm rclone/rclone config
Una vez generada la configuracion sera almacenada en el home del usuario del host que ejecuto el comando.
si es root, en /root/.config/rclone/rclone.conf
la vamos a copiar a /root/hdr/tx-data/rclone/rclone.conf
para que el contenedor backupper tenga acceso a esta configuracion.
+5
View File
@@ -0,0 +1,5 @@
[hdrdevs-mega]
type = mega
user = hdrdevs@gmail.com
pass = uB_5v7fUEtxSd-Fifkno7AGXLoM6vxTKT0XY66QYJQ