From a6847bba79b3529b355f4233904a88398e89c2d4 Mon Sep 17 00:00:00 2001 From: RogueAutomata <47926856+mepley1@users.noreply.github.com> Date: Sun, 5 Jan 2025 12:13:28 -0600 Subject: [PATCH 1/2] Copy changed files to prod --- deploy.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..e4f76ac --- /dev/null +++ b/deploy.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# Copy necessary application files to directory on prod server via SCP. +# Intended to be used after editing files, to easily update existing files on prod. +# Be very careful! Backup prod directory before using. +# The following will not be copied: user database, requests database, config.py, readme, license etc. + +# Configure IP + auth +PROD_HOST=example.com +USERNAME=user +KEYFILE=~/.ssh/id_rsa + +echo "Copying files..." +echo "Production host: $PROD_HOST" + +scp -i $KEYFILE db_initialize.py create-user.py wsgi.py requirements.txt reset-password.py $USERNAME@$PROD_HOST:/root/honeypot/honeypot/ +scp -i $KEYFILE -r ./project/static/ $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ +scp -i $KEYFILE -r ./project/templates/ $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ +scp -i $KEYFILE ./project/__init__.py ./project/auth.py ./project/main.py ./project/analysis.py ./project/models.py ./project/auto_report.py $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ + +# Don't overwrite current config on prod. +# Un-comment the following line ONLY if changing config. +#scp -i $KEYFILE ./project/config.py $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ + +echo "Finished." From 448156f9b56bc9ad2be8a51d4b6d8fcebeee6ee8 Mon Sep 17 00:00:00 2001 From: RogueAutomata <47926856+mepley1@users.noreply.github.com> Date: Sun, 12 Jan 2025 11:42:45 -0600 Subject: [PATCH 2/2] Restart service unit after deploying --- deploy.sh | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/deploy.sh b/deploy.sh index e4f76ac..88726b0 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,24 +1,29 @@ #!/bin/sh -# Copy necessary application files to directory on prod server via SCP. -# Intended to be used after editing files, to easily update existing files on prod. +# Copy necessary application files to test server via SCP. +# Intended to be used after editing files, to save time updating existing files on live instance. # Be very careful! Backup prod directory before using. # The following will not be copied: user database, requests database, config.py, readme, license etc. # Configure IP + auth PROD_HOST=example.com +APP_PATH=/path/to/honeypot/honeypot USERNAME=user KEYFILE=~/.ssh/id_rsa -echo "Copying files..." -echo "Production host: $PROD_HOST" +echo "Copying files to $PROD_HOST" +echo "${USERNAME}@${PROD_HOST}:${APP_PATH}/project/" -scp -i $KEYFILE db_initialize.py create-user.py wsgi.py requirements.txt reset-password.py $USERNAME@$PROD_HOST:/root/honeypot/honeypot/ -scp -i $KEYFILE -r ./project/static/ $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ -scp -i $KEYFILE -r ./project/templates/ $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ -scp -i $KEYFILE ./project/__init__.py ./project/auth.py ./project/main.py ./project/analysis.py ./project/models.py ./project/auto_report.py $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ +scp -i ${KEYFILE} db_initialize.py create-user.py wsgi.py requirements.txt reset-password.py ${USERNAME}@${PROD_HOST}:${APP_PATH}/ +scp -i ${KEYFILE} -r ./project/static/ ${USERNAME}@${PROD_HOST}:${APP_PATH}/project/ +scp -i ${KEYFILE} -r ./project/templates/ ${USERNAME}@${PROD_HOST}:${APP_PATH}/project/ +scp -i ${KEYFILE} ./project/__init__.py ./project/auth.py ./project/main.py ./project/analysis.py ./project/models.py ./project/auto_report.py ${USERNAME}@${PROD_HOST}:${APP_PATH}/project/ # Don't overwrite current config on prod. # Un-comment the following line ONLY if changing config. -#scp -i $KEYFILE ./project/config.py $USERNAME@$PROD_HOST:/root/honeypot/honeypot/project/ +#scp -i ${KEYFILE} ./project/config.py ${USERNAME}@${PROD_HOST}:${APP_PATH}/project/ + +# Restart app to prevent any issues after files changed +echo "Restarting service..." +ssh -i ${KEYFILE} ${USERNAME}@${PROD_HOST} "sudo systemctl restart honeypot.service" echo "Finished."