]> _ Git - server-backup.git/commitdiff
wip #6145 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 19 Jul 2023 19:14:32 +0000 (21:14 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 19 Jul 2023 19:14:32 +0000 (21:14 +0200)
14 files changed:
.gitattributes [new file with mode: 0644]
.idea/.gitignore [new file with mode: 0644]
.idea/deployment.xml [new file with mode: 0644]
.idea/misc.xml [new file with mode: 0644]
.idea/modules.xml [new file with mode: 0644]
.idea/server-backup.iml [new file with mode: 0644]
.idea/workspace.xml [new file with mode: 0644]
Dockerfile [new file with mode: 0644]
README.md [new file with mode: 0644]
backup [new file with mode: 0755]
docker-compose.yml [new file with mode: 0644]
docker-entrypoint.sh [new file with mode: 0755]
exclude [new file with mode: 0644]
update [new file with mode: 0755]

diff --git a/.gitattributes b/.gitattributes
new file mode 100644 (file)
index 0000000..fc87a42
--- /dev/null
@@ -0,0 +1,6 @@
+* text=auto
+*.sh text eol=lf
+update text eol=lf
+backup text eol=lf
+*_key text eol=lf
+*.bat text eol=crlf
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644 (file)
index 0000000..13566b8
--- /dev/null
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/deployment.xml b/.idea/deployment.xml
new file mode 100644 (file)
index 0000000..9bc0f3d
--- /dev/null
@@ -0,0 +1,420 @@
+<?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
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644 (file)
index 0000000..b658e95
--- /dev/null
@@ -0,0 +1,9 @@
+<?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
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644 (file)
index 0000000..024e797
--- /dev/null
@@ -0,0 +1,8 @@
+<?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
diff --git a/.idea/server-backup.iml b/.idea/server-backup.iml
new file mode 100644 (file)
index 0000000..d6ebd48
--- /dev/null
@@ -0,0 +1,9 @@
+<?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
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644 (file)
index 0000000..56c5bb7
--- /dev/null
@@ -0,0 +1,97 @@
+<?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
diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..fa99a76
--- /dev/null
@@ -0,0 +1,8 @@
+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
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..8aa846e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+# 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
diff --git a/backup b/backup
new file mode 100755 (executable)
index 0000000..f25abfa
--- /dev/null
+++ b/backup
@@ -0,0 +1,3 @@
+#!/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/"
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644 (file)
index 0000000..55f2b6c
--- /dev/null
@@ -0,0 +1,18 @@
+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
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100755 (executable)
index 0000000..467d0bb
--- /dev/null
@@ -0,0 +1,82 @@
+#!/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 "$@"
diff --git a/exclude b/exclude
new file mode 100644 (file)
index 0000000..a05747a
--- /dev/null
+++ b/exclude
@@ -0,0 +1,41 @@
+/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
diff --git a/update b/update
new file mode 100755 (executable)
index 0000000..db3737b
--- /dev/null
+++ b/update
@@ -0,0 +1,12 @@
+#!/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