Railway

Deploy Database Backup + Restore

highly configurable solution for automated database backup and restore

Deploy Database Backup + Restore

Database Backup + Restore

JamesWRC/db-backup

Just deployed

/db_backup

For Influx DB2:

Your Organization will be mapped to DB_USER and your root token will need to be mapped to DB_PASS. You may use DB_NAME=ALL to backup the entire set of databases. For DB_HOST use syntax of http(s)://db-name

Scheduling Options

ParameterDescriptionDefault
DB_DUMP_FREQHow often to do a dump, in minutes after the first backup. Defaults to 1440 minutes, or once per day.1440
DB_DUMP_BEGINWhat time to do the first dump. Defaults to immediate. Must be in one of two formats
Absolute HHMM, e.g. 2330 or 0415
Relative +MM, i.e. how many minutes after starting the container, e.g. +0 (immediate), +10 (in 10 minutes), or +90 in an hour and a half
DB_DUMP_TARGETDirectory where the database dumps are kept.${DB_DUMP_TARGET}/archive/
DB_DUMP_TARGET_ARCHIVEOptional Directory where the database dumps archives are kept.
DB_CLEANUP_TIMEValue in minutes to delete old backups (only fired when dump freqency fires). 1440 would delete anything above 1 day old. You don't need to set this variable if you want to hold onto everything.FALSE
DB_ARCHIVE_TIMEValue in minutes to move all files files older than (x) from DB_DUMP_TARGET to DB_DUMP_TARGET_ARCHIVE - which is useful when pairing against an external backup system.
  • You may need to wrap your DB_DUMP_BEGIN value in quotes for it to properly parse. There have been reports of backups that start with a 0 get converted into a different format which will not allow the timer to start at the correct time.

Backup Options

ParameterDescriptionDefault_FILE
COMPRESSIONUse either Gzip GZ, Bzip2 BZ, XZip XZ, ZSTD ZSTD or none NONEZSTD
COMPRESSION_LEVELNumberical value of what level of compression to use, most allow 1 to 9 except for ZSTD which allows for 1 to 19 -3
ENABLE_PARALLEL_COMPRESSIONUse multiple cores when compressing backups TRUE or FALSETRUE
PARALLEL_COMPRESSION_THREADSMaximum amount of threads to use when compressing - Integer value e.g. 8autodetected
GZ_RSYNCABLEUse --rsyncable (gzip only) for faster rsync transfers and incremental backup deduplication. e.g. TRUEFALSE
ENABLE_CHECKSUMGenerate either a MD5 or SHA1 in Directory, TRUE or FALSETRUE
CHECKSUMEither MD5 or SHA1MD5
EXTRA_OPTSIf you need to pass extra arguments to the backup command, add them here e.g. --extra-command
MYSQL_MAX_ALLOWED_PACKETMax allowed packet if backing up MySQL / MariaDB512M
MYSQL_SINGLE_TRANSACTIONBackup in a single transaction with MySQL / MariaDBTRUE
MYSQL_STORED_PROCEDURESBackup stored procedures with MySQL / MariaDBTRUE
MYSQL_ENABLE_TLSEnable TLS functionality for MySQL clientFALSE
MYSQL_TLS_VERIFY(optional) If using TLS (by means of MYSQL_TLS_* variables) verify remote hostFALSE
MYSQL_TLS_VERSIONWhat TLS v1.1 v1.2 v1.3 version to utilizeTLSv1.1,TLSv1.2,TLSv1.3
MYSQL_TLS_CA_FILEFilename to load custom CA certificate for connecting via TLS/etc/ssl/cert.pemx
MYSQL_TLS_CERT_FILEFilename to load client certificate for connecting via TLSx
MYSQL_TLS_KEY_FILEFilename to load client key for connecting via TLSx
  • When using compression with MongoDB, only GZ compression is possible.

Backing Up to S3 Compatible Services

If BACKUP_LOCATION = S3 then the following options are used.

ParameterDescriptionDefault_FILE
S3_BUCKETS3 Bucket name e.g. mybucketx
S3_KEY_IDS3 Key ID (Optional)x
S3_KEY_SECRETS3 Key Secret (Optional)x
S3_PATHS3 Pathname to save to (must NOT end in a trailing slash e.g. 'backup')x
S3_REGIONDefine region in which bucket is defined. Example: ap-northeast-2x
S3_HOSTHostname (and port) of S3-compatible service, e.g. minio:8080. Defaults to AWS.x
S3_PROTOCOLProtocol to connect to S3_HOST. Either http or https. Defaults to https.httpsx
S3_EXTRA_OPTSAdd any extra options to the end of the aws-cli process executionx
S3_CERT_CA_FILEMap a volume and point to your custom CA Bundle for verification e.g. /certs/bundle.pemx
OR
S3_CERT_SKIP_VERIFYSkip verifying self signed certificates when connectingTRUE
  • When S3_KEY_ID and/or S3_KEY_SECRET is not set, will try to use IAM role assigned (if any) for uploading the backup files to S3 bucket.

See Full Config:

https://github.com/JamesWRC/db-backup


Template Content

Database Backup + Restore

JamesWRC/db-backup

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
View Template
NEW
Evolution API with n8n
WhatsApp HTTP REST API with n8n automation, PostgreSQL and Redis.

codestorm
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates