mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -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_EMAIL_SMTP_LOGGER: true
|
||||||
# SHARELATEX_CUSTOM_EMAIL_FOOTER: "This system is run by department x"
|
# SHARELATEX_CUSTOM_EMAIL_FOOTER: "This system is run by department x"
|
||||||
|
|
||||||
|
# ENABLE_CRON_RESOURCE_DELETION: true
|
||||||
|
|
||||||
################
|
################
|
||||||
## Server Pro ##
|
## Server Pro ##
|
||||||
################
|
################
|
||||||
|
|
|
@ -51,6 +51,8 @@ RUN chmod 644 /etc/logrotate.d/sharelatex
|
||||||
ADD server-ce/cron /overleaf/cron
|
ADD server-ce/cron /overleaf/cron
|
||||||
ADD server-ce/config/crontab-history /etc/cron.d/crontab-history
|
ADD server-ce/config/crontab-history /etc/cron.d/crontab-history
|
||||||
RUN chmod 600 /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
|
# 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