Added backup scripts
This commit is contained in:
		
							parent
							
								
									4160f106b3
								
							
						
					
					
						commit
						3342da0c94
					
				
							
								
								
									
										18
									
								
								backup/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								backup/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
FROM alpine:3.10
 | 
			
		||||
 | 
			
		||||
# install dependencies
 | 
			
		||||
RUN apk add restic
 | 
			
		||||
RUN apk add curl
 | 
			
		||||
 | 
			
		||||
# install rclone
 | 
			
		||||
RUN curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip &&\
 | 
			
		||||
    unzip rclone-current-linux-amd64.zip &&\
 | 
			
		||||
    cd rclone-*-linux-amd64 &&\
 | 
			
		||||
    cp rclone /usr/bin/ &&\
 | 
			
		||||
    chown root:root /usr/bin/rclone &&\
 | 
			
		||||
    chmod 755 /usr/bin/rclone
 | 
			
		||||
 | 
			
		||||
COPY restic_backup.sh /usr/bin/
 | 
			
		||||
RUN chmod +x /usr/bin/restic_backup.sh
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT ["restic_backup.sh"]
 | 
			
		||||
							
								
								
									
										9
									
								
								backup/backup.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								backup/backup.env
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
RETENTION_DAYS=7
 | 
			
		||||
RETENTION_WEEKS=4
 | 
			
		||||
RETENTION_MONTHS=6
 | 
			
		||||
RETENTION_YEARS=3
 | 
			
		||||
BACKUP_PATHS=/mnt/backup/
 | 
			
		||||
RESTIC_REPOSITORY=rclone:hubic:TestBackup
 | 
			
		||||
RESTIC_PASSWORD=testbackup
 | 
			
		||||
RESTIC_PARAMS=--exclude-file /mnt/restic-exclude
 | 
			
		||||
RCLONE_CONFIG=/mnt/rclone.conf
 | 
			
		||||
							
								
								
									
										5
									
								
								backup/restic_backup.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								backup/restic_backup.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
restic snapshots > /dev/null || restic init || exit 0
 | 
			
		||||
restic backup $RESTIC_PARAMS $BACKUP_PATHS || exit 0
 | 
			
		||||
restic forget --verbose --group-by "paths,tags" --keep-daily $RETENTION_DAYS --keep-weekly $RETENTION_WEEKS --keep-monthly $RETENTION_MONTHS --keep-yearly $RETENTION_YEARS
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								backup/run_backup.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								backup/run_backup.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
docker build -t backup . --network=host
 | 
			
		||||
docker run \
 | 
			
		||||
	--env-file=./backup.env \
 | 
			
		||||
	-v /tmp/test/:/mnt/backup/ \
 | 
			
		||||
	-v /tmp/test/restic-exclude.txt:/mnt/restic-exclude \
 | 
			
		||||
	-v /tmp/test/rclone.conf:/mnt/rclone.conf \
 | 
			
		||||
	-v /tmp/logs/:/mnt/logs/ \
 | 
			
		||||
	--network=host \
 | 
			
		||||
	backup
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user