ini
This commit is contained in:
commit
d12fbebb44
|
|
@ -0,0 +1,10 @@
|
||||||
|
DATA_TO_BACKUP=/root
|
||||||
|
KOPIA_REPOSITORY_USER=kopia
|
||||||
|
KOPIA_REPOSITORY_PASSWORD=9VRyJAhyMJxC5d3AQzPUCTGzGY5
|
||||||
|
|
||||||
|
KOPIA_S3_BUCKET=bucketest
|
||||||
|
KOPIA_S3_PATH="/" # "folder/"
|
||||||
|
KOPIA_S3_KEY=XXX
|
||||||
|
KOPIA_S3_SECRET=XXX
|
||||||
|
KOPIA_S3_ENDPOINT=XXX.XXX.idrivee2-XXX.com
|
||||||
|
KOPIA_RCLONE_PATH="s3e2-backup-kopia:"
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
url.md
|
||||||
|
.env
|
||||||
|
config/repo/repository.*
|
||||||
|
config/rclone/rclone.conf
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
|
||||||
|
up:
|
||||||
|
docker-compose up
|
||||||
|
|
||||||
|
up-d:
|
||||||
|
docker-compose up -d && timeout 45 docker-compose logs --tail 5 -f
|
||||||
|
|
||||||
|
down:
|
||||||
|
docker-compose down --volumes
|
||||||
|
|
||||||
|
url:
|
||||||
|
echo "http://$$(curl ifconfig.me):51515" > url.md
|
||||||
|
echo "http://$$(hostname -I | awk '{print $$1}'):51515" >> url.md
|
||||||
|
cat url.md
|
||||||
|
|
||||||
|
check:
|
||||||
|
rclone --config=config/rclone/rclone.conf ls s3e2-backup-kopia:
|
||||||
|
|
||||||
|
ncdu:
|
||||||
|
rclone --config=config/rclone/rclone.conf ncdu s3e2-backup-kopia:
|
||||||
|
|
||||||
|
bash:
|
||||||
|
docker-compose exec kopia bash
|
||||||
|
|
||||||
|
restart:
|
||||||
|
docker-compose restart kopia
|
||||||
|
|
||||||
|
apply-policy:
|
||||||
|
docker-compose exec kopia bash -c 'kopia policy set --global --compression pgzip --add-never-compress="*.gz,*.gzip,*.tar.gz,*.tgz,*.mp4,*.avi,*.mp3,*.7z,*.xz,*.zst,*.zstd,*.bz2,*.rar"'
|
||||||
|
docker-compose exec kopia bash -c 'kopia policy set --global --add-ignore .DS_Store --add-ignore .DS_Store? --add-ignore ._* --add-ignore .Spotlight-V100 --add-ignore .Trashes \
|
||||||
|
--add-ignore .trash --add-ignore Icon? --add-ignore ehthumbs.db --add-ignore Thumbs.db --add-ignore "System Volume Information" --add-ignore *.filepart --add-ignore *.crdownload'
|
||||||
|
docker-compose restart kopia
|
||||||
|
|
||||||
|
create-s3:
|
||||||
|
docker-compose exec kopia bash -c 'kopia repository create s3 --description="S3 - $$KOPIA_S3_BUCKET" --bucket="$$KOPIA_S3_BUCKET" --prefix="$$KOPIA_S3_PATH" --access-key="$$KOPIA_S3_KEY" --secret-access-key="$$KOPIA_S3_SECRET" --endpoint="$$KOPIA_S3_ENDPOINT" && kopia repository validate-provider && kopia repository status'
|
||||||
|
make apply-policy
|
||||||
|
|
||||||
|
create-rclone:
|
||||||
|
docker-compose exec kopia bash -c 'kopia repository create rclone --description="S3-rclone - $$KOPIA_S3_BUCKET" --remote-path="$$KOPIA_RCLONE_PATH" && kopia repository validate-provider && kopia repository status'
|
||||||
|
make apply-policy
|
||||||
|
|
||||||
|
create-snap:
|
||||||
|
docker-compose exec kopia bash -c 'kopia snapshot create --description="BACKUP-RECUP" /data/BACKUP-RECUP/CSTOR2-TODEL-SYNC-BACKUP'
|
||||||
|
|
||||||
|
check-snap:
|
||||||
|
docker-compose exec kopia bash -c 'kopia snapshot verify --verify-files-percent=100 --file-parallelism=10 --parallel=10'
|
||||||
|
|
||||||
|
maintenance:
|
||||||
|
docker-compose exec kopia bash -c 'kopia maintenance run'
|
||||||
|
|
||||||
|
maintenance-full:
|
||||||
|
docker-compose exec kopia bash -c 'kopia maintenance run --full'
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
# KOPIA-DOCKER - BACKUP
|
||||||
|
|
||||||
|
# Stack pour backup un serveur via KOPIA
|
||||||
|
|
@ -0,0 +1,71 @@
|
||||||
|
|
||||||
|
# ##########
|
||||||
|
# SAMPLE:S3
|
||||||
|
# ##########
|
||||||
|
|
||||||
|
[s3contabo-de]
|
||||||
|
type = s3
|
||||||
|
provider = Other
|
||||||
|
access_key_id = XXX
|
||||||
|
secret_access_key = XXX
|
||||||
|
endpoint = eu2.contabostorage.com
|
||||||
|
|
||||||
|
[s3e2-de]
|
||||||
|
type = s3
|
||||||
|
provider = IDrive
|
||||||
|
env_auth = false
|
||||||
|
access_key_id = XXX
|
||||||
|
secret_access_key = XXX
|
||||||
|
server_side_encryption = aws:kms
|
||||||
|
endpoint = XXX.XXX.idrivee2-XXX.com
|
||||||
|
no_check_bucket = true
|
||||||
|
|
||||||
|
[s3e2-fr]
|
||||||
|
type = s3
|
||||||
|
provider = IDrive
|
||||||
|
env_auth = false
|
||||||
|
access_key_id = XXX
|
||||||
|
secret_access_key = XXX
|
||||||
|
server_side_encryption = aws:kms
|
||||||
|
endpoint = XXX.XXX.idrivee2-XXX.com
|
||||||
|
no_check_bucket = true
|
||||||
|
|
||||||
|
[s3leviia-fr]
|
||||||
|
type = s3
|
||||||
|
provider = Other
|
||||||
|
env_auth = false
|
||||||
|
access_key_id = XXX
|
||||||
|
secret_access_key = XXX
|
||||||
|
endpoint = s3.leviia.com
|
||||||
|
no_check_bucket = true
|
||||||
|
acl = private
|
||||||
|
|
||||||
|
|
||||||
|
[s3e2-backup-kopia]
|
||||||
|
type = alias
|
||||||
|
remote = s3e2-de:bucketname/folder
|
||||||
|
|
||||||
|
# ###########
|
||||||
|
# SAMPLE:FTP
|
||||||
|
# ###########
|
||||||
|
|
||||||
|
[ftp]
|
||||||
|
type = ftp
|
||||||
|
host = ftp.xxx.universe.wf
|
||||||
|
user = sc1xxx
|
||||||
|
pass = xxx # echo "MONPASS" | rclone obscure -
|
||||||
|
|
||||||
|
[ftp-folder]
|
||||||
|
type = alias
|
||||||
|
remote = ftp:folder/subfolder
|
||||||
|
|
||||||
|
# ###########
|
||||||
|
# SAMPLE:WEBDAV (nextcloud)
|
||||||
|
# ###########
|
||||||
|
|
||||||
|
[drive-webdav]
|
||||||
|
type = webdav
|
||||||
|
url = https://drive.shadow.tech/remote.php/webdav
|
||||||
|
vendor = nextcloud
|
||||||
|
user = XXX
|
||||||
|
pass = XXX
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"bytesStringBase2":false,"defaultSnapshotViewAll":false,"theme":"dark","pageSize":100}
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
version: '3.9'
|
||||||
|
# See: https://github.com/kopia/kopia
|
||||||
|
# Website: https://kopia.io/
|
||||||
|
# Inspired: https://github.com/kopia/kopia/blob/master/tools/docker/docker-compose.yml
|
||||||
|
|
||||||
|
# ##############
|
||||||
|
# ### CONFIG ###
|
||||||
|
################
|
||||||
|
x-config:
|
||||||
|
- &common-env
|
||||||
|
PUID: ${UID:-1000} #0
|
||||||
|
PGID: ${GROUPS:-1000} #0
|
||||||
|
TZ: Europe/Paris
|
||||||
|
- &repo-credentials
|
||||||
|
USER: ${KOPIA_REPOSITORY_USER:-kopia}
|
||||||
|
KOPIA_PASSWORD: ${KOPIA_REPOSITORY_PASSWORD:-9VRyJAhyMJxC5d3AQzPUCTGzGY5}
|
||||||
|
# For login web-ui: http://IP:51515 ( see KOPIA_WEBUI_USER/KOPIA_WEBUI_PASS )
|
||||||
|
<<: {KOPIA_S3_BUCKET: $KOPIA_S3_BUCKET, KOPIA_S3_PATH: $KOPIA_S3_PATH, KOPIA_S3_KEY: $KOPIA_S3_KEY, KOPIA_S3_SECRET: $KOPIA_S3_SECRET, KOPIA_S3_ENDPOINT: $KOPIA_S3_ENDPOINT, KOPIA_RCLONE_PATH: $KOPIA_RCLONE_PATH }
|
||||||
|
x-traefik:
|
||||||
|
- &traefik-labels
|
||||||
|
traefik.enable: "true"
|
||||||
|
traefik.http.routers.kopia.tls: "true"
|
||||||
|
traefik.http.routers.kopia.rule: Host(`${DOMAIN:-kopia.mondomaine.fr}`)
|
||||||
|
traefik.http.routers.kopia.entrypoints: ${DOMAIN_ENTRY:-websecure} # websecure
|
||||||
|
traefik.http.routers.kopia.tls.certResolver: ${DOMAIN_TLS_METHOD:-letest} # leprod
|
||||||
|
traefik.http.services.kopia.loadbalancer.server.port: 51515 # internal port used by the image
|
||||||
|
traefik.http.routers.kopia.middlewares: iplimit
|
||||||
|
x-volumes:
|
||||||
|
- &kopia_data_tobackup
|
||||||
|
kopia_data_tobackup:
|
||||||
|
external: false
|
||||||
|
- &kopia_data_tomount
|
||||||
|
kopia_data_tomount:
|
||||||
|
external: false
|
||||||
|
- &kopia_data_logs
|
||||||
|
kopia_data_logs:
|
||||||
|
external: false
|
||||||
|
- &kopia_config
|
||||||
|
kopia_config:
|
||||||
|
external: false
|
||||||
|
- &kopia_config_rclone
|
||||||
|
kopia_config_rclone:
|
||||||
|
external: false
|
||||||
|
- &kopia_s3
|
||||||
|
kopia_s3:
|
||||||
|
driver: rclone
|
||||||
|
driver_opts: &kopia_s3_opts
|
||||||
|
type: s3
|
||||||
|
s3-provider: Other
|
||||||
|
s3-endpoint: ${S3_ENDPOINT:-https://eu2.contabostorage.com}
|
||||||
|
s3-access_key_id: ${S3_KEY:-XXX}
|
||||||
|
s3-secret_access_key: ${S3_PASS:-XXX}
|
||||||
|
path: ${S3_BUCKET_NAME:-kopia_conf} # bucket_name
|
||||||
|
allow-other: 'true'
|
||||||
|
- &data_s3
|
||||||
|
data_s3:
|
||||||
|
<<: *kopia_s3
|
||||||
|
driver_opts:
|
||||||
|
<<: *kopia_s3_opts
|
||||||
|
path: ${S3_BUCKET_NAME:-mydata} # bucket_name
|
||||||
|
|
||||||
|
# ###############
|
||||||
|
# ### VOLUMES ###
|
||||||
|
# ###############
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
<<: [
|
||||||
|
# *kopia_data_tobackup,
|
||||||
|
# *kopia_data_tomount,
|
||||||
|
*kopia_data_logs,
|
||||||
|
# *kopia_config,
|
||||||
|
# *kopia_config_rclone,
|
||||||
|
# *kopia_s3,
|
||||||
|
# *data_s3,
|
||||||
|
]
|
||||||
|
|
||||||
|
# ###############
|
||||||
|
# ### NETWORK ###
|
||||||
|
# ###############
|
||||||
|
|
||||||
|
#networks:
|
||||||
|
# web_public:
|
||||||
|
# name: ${PUBLIC_NET:-web_public}
|
||||||
|
# external: ${EXTERN_NET:-true}
|
||||||
|
|
||||||
|
services:
|
||||||
|
kopia:
|
||||||
|
image: kopia/kopia:latest
|
||||||
|
container_name: Kopia
|
||||||
|
#hostname: Hostname
|
||||||
|
# #############
|
||||||
|
# SETUP EXPOSE:METHOD
|
||||||
|
# #############
|
||||||
|
# 1.PORT METHOD
|
||||||
|
ports: [51515:51515]
|
||||||
|
# ..OR 2.TRAEFIK METHOD
|
||||||
|
#networks: [web_public]
|
||||||
|
#labels: *traefik-labels
|
||||||
|
#deploy: { labels: *traefik-labels }
|
||||||
|
# #############
|
||||||
|
# SETUP WEB-GUI
|
||||||
|
# #############
|
||||||
|
command:
|
||||||
|
- server
|
||||||
|
- start
|
||||||
|
- --disable-csrf-token-checks
|
||||||
|
- --insecure
|
||||||
|
- --address=0.0.0.0:51515
|
||||||
|
- --server-username=${KOPIA_WEBUI_USER:-admin}
|
||||||
|
- --server-password=${KOPIA_WEBUI_PASS:-admin}
|
||||||
|
# ######################
|
||||||
|
# SETUP REPO-CREDENTIALS
|
||||||
|
# ######################
|
||||||
|
environment:
|
||||||
|
<<: [ *common-env, *repo-credentials ]
|
||||||
|
# ######################
|
||||||
|
# ALLOW: MOUNT WITH FUSE
|
||||||
|
# ######################
|
||||||
|
privileged: true # buggy: { cap_add: [SYS_ADMIN] security_opt: [apparmor:unconfined] }
|
||||||
|
devices: [/dev/fuse:/dev/fuse:rwm]
|
||||||
|
# ##################
|
||||||
|
# MOUNT: DATA/CONFIG
|
||||||
|
# ##################
|
||||||
|
volumes:
|
||||||
|
# DATA
|
||||||
|
- ${DATA_TO_BACKUP:-/}:/data:ro
|
||||||
|
- ${DATA_TO_MOUNT:-./tmp_mount}:/tmp:shared
|
||||||
|
- kopia_data_logs:/app/logs
|
||||||
|
# CONFIG
|
||||||
|
- ${REPO_SETTINGS:-./config/repo}:/app/config
|
||||||
|
- ${RCLONE_SETTINGS:-./config/rclone}:/app/rclone # /root/.config/rclone
|
||||||
|
# REMOTE DATA?: (via rclone-docker-volume )
|
||||||
|
#- data_s3:/data:ro
|
||||||
|
restart: unless-stopped
|
||||||
Loading…
Reference in New Issue