--- /dev/null
+* text=auto
+*.sh text eol=lf
+update text eol=lf
+backup text eol=lf
+*_key text eol=lf
+*.bat text eol=crlf
--- /dev/null
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
+ <serverData>
+ <paths name="alphaville.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="demo1.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev-digital.danone.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.ccgm.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.cubedesigners.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.cubjeans.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.detouteslescouleurs.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.enko-running-shoes.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.extranet.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.pm-instrumentation.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.rbcmobilier.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.renversez.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.toolbox.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="dev.toolbox.fluidbook.com (Host)">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="digitaltoolbox.danone.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="etatpur.ei-plateforme1.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="extranet.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="extranet.preventicom.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="hosting.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="kingkong.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="m.cubjeans.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="magento.enko-running-shoes.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="odl.cube">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="odl.paris.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="parrotmail.dev.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="preview.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="pro.cubjeans.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="simeox.dev.cubedesigners.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="songbook.enhydra.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="stats3.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="toolbox.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="toolbox.fluidbook.com (Host)">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="vps-e87c4d02.vps.ovh.net">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="workshop.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.adangelis.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.animeland.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.ccgm.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.cesaretleonie.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.cfgv.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.cubedesigners.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.cubjeans.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.detouteslescouleurs.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.enko-running-shoes.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.eurofinsadmebioanalyses.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.fluidbook.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.hf-customercare.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.kadreo.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.mdryvescouzy.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.microbas.se">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.mirakl.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.optimed-recrutement.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.pavillonmadeleine.fr">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.physioassist.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.pm-instrumentation.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.preventicom.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.rbcmobilier.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.renversez.com">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ <paths name="www.sycomore-am.com (1)">
+ <serverdata>
+ <mappings>
+ <mapping local="$PROJECT_DIR$" web="/" />
+ </mappings>
+ </serverdata>
+ </paths>
+ </serverData>
+ </component>
+</project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="AhkProjectSettings">
+ <option name="defaultAhkSdk" value="AutoHotkey" />
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6">
+ <output url="file://$PROJECT_DIR$/out" />
+ </component>
+</project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/server-backup.iml" filepath="$PROJECT_DIR$/.idea/server-backup.iml" />
+ </modules>
+ </component>
+</project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$" />
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="AutoImportSettings">
+ <option name="autoReloadType" value="SELECTIVE" />
+ </component>
+ <component name="ChangeListManager">
+ <list default="true" id="e5700431-afd3-4ff1-ac7a-d36eb3434c35" name="Changes" comment="" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="ComposerSettings">
+ <execution />
+ </component>
+ <component name="MarkdownSettingsMigration">
+ <option name="stateVersion" value="1" />
+ </component>
+ <component name="PhpWorkspaceProjectConfiguration" interpreter_name="PHP 8.2" />
+ <component name="ProjectId" id="2SnoKOOy1tHgkeJ6POfvUHIc1OI" />
+ <component name="ProjectViewState">
+ <option name="hideEmptyMiddlePackages" value="true" />
+ <option name="showLibraryContents" value="true" />
+ </component>
+ <component name="PropertiesComponent"><![CDATA[{
+ "keyToString": {
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "WebServerToolWindowFactoryState": "true",
+ "ignore.virus.scanning.warn.message": "true",
+ "last_opened_file_path": "D:/Works/server-backup",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "vue.rearranger.settings.migration": "true"
+ }
+}]]></component>
+ <component name="RunManager">
+ <configuration default="true" type="Applet">
+ <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType">
+ <module name="" />
+ <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+ <option name="PROGRAM_PARAMETERS" />
+ <predefined_log_file enabled="true" id="idea.log" />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="true" type="Application" factoryName="Application">
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="true" type="JUnit" factoryName="JUnit">
+ <option name="TEST_OBJECT" value="class" />
+ <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ <configuration default="true" type="TestNG">
+ <option name="TEST_OBJECT" value="CLASS" />
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+ <properties />
+ <listeners />
+ <method v="2">
+ <option name="Make" enabled="true" />
+ </method>
+ </configuration>
+ </component>
+ <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+ <component name="SvnConfiguration">
+ <configuration>C:\Users\Vincent\AppData\Roaming\Subversion</configuration>
+ <option name="runUnderTerminal" value="true" />
+ </component>
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="e5700431-afd3-4ff1-ac7a-d36eb3434c35" name="Changes" comment="" />
+ <created>1689791641269</created>
+ <option name="number" value="Default" />
+ <option name="presentableId" value="Default" />
+ <updated>1689791641269</updated>
+ <workItem from="1689791642478" duration="2059000" />
+ </task>
+ <servers />
+ </component>
+ <component name="TypeScriptGeneratedFilesManager">
+ <option name="version" value="3" />
+ </component>
+</project>
\ No newline at end of file
--- /dev/null
+FROM alpine
+MAINTAINER "EEA: IDM2 A-Team" <eea-edw-a-team-alerts@googlegroups.com>
+
+RUN apk add --no-cache --virtual .run-deps rsync openssh tzdata curl ca-certificates bash && rm -rf /var/cache/apk/*
+COPY --chmod=755 docker-entrypoint.sh /
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["sh"]
\ No newline at end of file
--- /dev/null
+# Installation
+
+On the server to backup :
+
+Fill correctly `/etc/hostname`, the name will be used as the destination folder
+
+If docker is not installed : `wget https://get.docker.com -O get-docker.sh && sh get-docker.sh`
+
+`apt install -y git docker-composer-plugin;mkdir -p /docker/server-backup;cd /docker/server-backup;git clone git://git.cubedesigners.com/server-backup.git .;chmod 755 update;./update`
\ No newline at end of file
--- /dev/null
+#!/bin/sh
+name=`cat /etc/backup-hostname`
+/usr/bin/rsync -av --exclude-from='/etc/backup.exclude' -e 'ssh -oStrictHostKeyChecking=no' /data/ serversbackup@dobermann.cubedesigners.com:/home/serversbackup/$name/"
--- /dev/null
+version: '3.3'
+services:
+ backup:
+ container_name: backup
+ volumes:
+ - '/:/data/'
+ - '/etc/hostname:/etc/backup-hostname'
+ - './exclude:/etc/backup.exclude'
+ - './backup:/usr/local/bin/backup'
+ - './keys/id_rsa:/home/user/.ssh/id_rsa:ro'
+ - './keys/id_rsa.pub:/home/user/.ssh/id_rsa.pub:ro'
+ - './keys/id_rsa:/root/.ssh/id_rsa:ro'
+ - './keys/id_rsa.pub:/root/.ssh/id_rsa.pub:ro'
+ restart: unless-stopped
+ build: .
+ environment:
+ - CRON_TASK_1="0 */6 * * * /usr/local/bin/backup"
+ command: client
--- /dev/null
+#!/bin/sh
+
+################################################################################
+# INIT
+################################################################################
+
+mkdir -p /root/.ssh
+> /root/.ssh/authorized_keys
+chmod go-rwx /root/.ssh/authorized_keys
+sed -i "s/.*PasswordAuthentication .*/PasswordAuthentication no/g" /etc/ssh/sshd_config
+sed -i 's/root:!/root:*/' /etc/shadow
+
+# Provide SSH_AUTH_KEY_* via environment variable
+for item in `env`; do
+ case "$item" in
+ SSH_AUTH_KEY*)
+ ENVVAR=`echo $item | cut -d \= -f 1`
+ printenv $ENVVAR >> /root/.ssh/authorized_keys
+ ;;
+ esac
+done
+
+# Provide CRON_TASK_* via environment variable
+> /etc/crontabs/root
+for item in `env`; do
+ case "$item" in
+ CRON_TASK*)
+ ENVVAR=`echo $item | cut -d \= -f 1`
+ printenv $ENVVAR >> /etc/crontabs/root
+ echo "root" > /etc/crontabs/cron.update
+ ;;
+ esac
+done
+
+# Generate host SSH keys
+if [ ! -e /etc/ssh/ssh_host_rsa_key.pub ]; then
+ ssh-keygen -A
+fi
+
+# Generate root SSH key
+if [ ! -e /root/.ssh/id_rsa.pub ]; then
+ ssh-keygen -q -N "" -f /root/.ssh/id_rsa
+fi
+
+################################################################################
+# START as SERVER
+################################################################################
+
+if [ "$1" == "server" ]; then
+ AUTH=`cat /root/.ssh/authorized_keys`
+ if [ -z "$AUTH" ]; then
+ echo "=================================================================================="
+ echo "ERROR: No SSH_AUTH_KEY provided, you'll not be able to connect to this container. "
+ echo "=================================================================================="
+ exit 1
+ fi
+
+ SSH_PARAMS="-D -e -p ${SSH_PORT:-22} $SSH_PARAMS"
+ echo "================================================================================"
+ echo "Running: /usr/sbin/sshd $SSH_PARAMS "
+ echo "================================================================================"
+
+ exec /usr/sbin/sshd -D $SSH_PARAMS
+fi
+
+echo "Please add this ssh key to your server /home/user/.ssh/authorized_keys "
+echo "================================================================================"
+echo "`cat /root/.ssh/id_rsa.pub`"
+echo "================================================================================"
+
+################################################################################
+# START as CLIENT via crontab
+################################################################################
+
+if [ "$1" == "client" ]; then
+ exec /usr/sbin/crond -f
+fi
+
+################################################################################
+# Anything else
+################################################################################
+exec "$@"
--- /dev/null
+/tmp
+/home/s
+/mnt
+/home/var/log
+/var/cache
+/home/log
+/var/log
+/dev
+/media
+/nonexistent
+/selinux
+/sys
+/home/extranet/www/fluidbook/cache
+/home/extranet/www/fluidbook/packager
+/etc/webmin/system-status/history
+/proc
+/usr/share/doc
+/run
+/data/amarcord
+*/framework/cache
+*/framework/data/temp
+/home/hbackup/tmp
+/snap
+/home/var/lib/amavis/tmp
+/home/root/.composer/cache
+/home/maisondelamouche/www/var/cache
+/home/maisondelamouche/www/var/session
+/docker/maisonmouche/www/var/cache
+/docker/maisonmouche/www/var/session
+/var/lib/php/sessions
+/home/var/lib/php/sessions
+*/framework/sessions
+/home/tmp
+/var/tmp
+/data1/temp
+/data/temp
+/data1/extranet/.cache
+data1/extranet/www/fluidbook/cache
+data1/extranet/www/fluidbook/packager
+/data/backup
+/boot
\ No newline at end of file
--- /dev/null
+#!/bin/bash
+cd /docker/server-backup
+git config --global --add safe.directory /docker/server-backup
+git fetch --all
+git reset --hard origin/master
+git stash
+git pull origin master
+chmod 755 /docker/server-backup/ssh
+chmod 600 /docker/server-backup/ssh/id_rsa
+DOCKER_BUILDKIT=1 docker compose build
+docker compose down
+docker compose up -d
\ No newline at end of file