mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
Merge pull request #11473 from overleaf/msm-ce-deletion-cron
[CE/SP] `cron` jobs for resource deletion GitOrigin-RevId: 7d690340f11cb4aaf38653fdcca6b7944f9a4d0b
This commit is contained in:
parent
0ffa75979f
commit
11dc9712eb
6 changed files with 85 additions and 0 deletions
|
@ -74,6 +74,8 @@ services:
|
|||
# SHARELATEX_EMAIL_SMTP_LOGGER: true
|
||||
# SHARELATEX_CUSTOM_EMAIL_FOOTER: "This system is run by department x"
|
||||
|
||||
# ENABLE_CRON_RESOURCE_DELETION: true
|
||||
|
||||
################
|
||||
## Server Pro ##
|
||||
################
|
||||
|
|
|
@ -51,6 +51,8 @@ RUN chmod 644 /etc/logrotate.d/sharelatex
|
|||
ADD server-ce/cron /overleaf/cron
|
||||
ADD server-ce/config/crontab-history /etc/cron.d/crontab-history
|
||||
RUN chmod 600 /etc/cron.d/crontab-history
|
||||
ADD server-ce/config/crontab-deletion /etc/cron.d/crontab-deletion
|
||||
RUN chmod 600 /etc/cron.d/crontab-deletion
|
||||
|
||||
# Copy Phusion Image startup and shutdown scripts to their locations
|
||||
# ------------------------------------------------------------------
|
||||
|
|
3
server-ce/config/crontab-deletion
Normal file
3
server-ce/config/crontab-deletion
Normal file
|
@ -0,0 +1,3 @@
|
|||
5 * * * * root /overleaf/cron/deactivate-projects.sh >> /var/log/sharelatex/cron-deactivate-projects.log 2>&1
|
||||
15 * * * * root /overleaf/cron/delete-users.sh >> /var/log/sharelatex/cron-delete-users.log 2>&1
|
||||
20 * * * * root /overleaf/cron/delete-projects.sh >> /var/log/sharelatex/cron-delete-projects.log 2>&1
|
28
server-ce/cron/deactivate-projects.sh
Executable file
28
server-ce/cron/deactivate-projects.sh
Executable file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
|
||||
echo "-------------------------"
|
||||
echo "Deactivating old projects"
|
||||
echo "-------------------------"
|
||||
date
|
||||
|
||||
ENABLE_CRON_RESOURCE_DELETION=$(cat /etc/container_environment/ENABLE_CRON_RESOURCE_DELETION)
|
||||
|
||||
if [[ "${ENABLE_CRON_RESOURCE_DELETION:-null}" != "true" ]]; then
|
||||
echo "Skipping old project deactivation due to ENABLE_CRON_RESOURCE_DELETION not set to true"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
WEB_URL='http://localhost:3000'
|
||||
|
||||
USER=$(cat /etc/container_environment/WEB_API_USER)
|
||||
PASS=$(cat /etc/container_environment/WEB_API_PASSWORD)
|
||||
|
||||
curl -v -X POST \
|
||||
-u "${USER}:${PASS}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"numberOfProjectsToArchive":"720","ageOfProjects":"7"}' \
|
||||
"${WEB_URL}/internal/deactivateOldProjects"
|
||||
|
||||
echo "Done."
|
25
server-ce/cron/delete-projects.sh
Executable file
25
server-ce/cron/delete-projects.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
|
||||
echo "-------------------------"
|
||||
echo "Expiring deleted projects"
|
||||
echo "-------------------------"
|
||||
date
|
||||
|
||||
ENABLE_CRON_RESOURCE_DELETION=$(cat /etc/container_environment/ENABLE_CRON_RESOURCE_DELETION)
|
||||
|
||||
if [[ "${ENABLE_CRON_RESOURCE_DELETION:-null}" != "true" ]]; then
|
||||
echo "Skipping project expiration due to ENABLE_CRON_RESOURCE_DELETION not set to true"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
WEB_URL='http://localhost:3000'
|
||||
|
||||
USER=$(cat /etc/container_environment/WEB_API_USER)
|
||||
PASS=$(cat /etc/container_environment/WEB_API_PASSWORD)
|
||||
|
||||
curl -X POST -v -u "${USER}:${PASS}" \
|
||||
"${WEB_URL}/internal/expire-deleted-projects-after-duration"
|
||||
|
||||
echo "Done."
|
25
server-ce/cron/delete-users.sh
Executable file
25
server-ce/cron/delete-users.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
|
||||
echo "----------------------"
|
||||
echo "Expiring deleted users"
|
||||
echo "----------------------"
|
||||
date
|
||||
|
||||
ENABLE_CRON_RESOURCE_DELETION=$(cat /etc/container_environment/ENABLE_CRON_RESOURCE_DELETION)
|
||||
|
||||
if [[ "${ENABLE_CRON_RESOURCE_DELETION:-null}" != "true" ]]; then
|
||||
echo "Skipping user expiration due to ENABLE_CRON_RESOURCE_DELETION not set to true"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
WEB_URL='http://localhost:3000'
|
||||
|
||||
USER=$(cat /etc/container_environment/WEB_API_USER)
|
||||
PASS=$(cat /etc/container_environment/WEB_API_PASSWORD)
|
||||
|
||||
curl -X POST -v -u "${USER}:${PASS}" \
|
||||
"${WEB_URL}/internal/expire-deleted-users-after-duration"
|
||||
|
||||
echo "Done."
|
Loading…
Reference in a new issue