-
-
Notifications
You must be signed in to change notification settings - Fork 112
/
ss-maintenance-enable.txt
115 lines (86 loc) · 6.21 KB
/
ss-maintenance-enable.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/bin/bash
####################################################################################################
#### author: SlickStack ############################################################################
#### link: https://slickstack.io ###################################################################
#### mirror: littlebizzy/slickstack/blob/master/bash/ss-maintenance-enable.txt #####################
#### path: /var/www/ss-maintenance-enable ##########################################################
#### destination: n/a (not a boilerplate) ##########################################################
#### purpose: Activates /var/www/html/maintenance.html to disable all frontend access ##############
#### module version: Nginx 1.18.x ##################################################################
#### sourced by: ss-install ########################################################################
#### bash aliases: ss main enable|on, ss maintenance enable|on #####################################
####################################################################################################
####################################################################################################
#### TABLE OF CONTENTS (SS-Maintenance-Enable) #####################################################
####################################################################################################
## this is a brief summary of the different code snippets you will find in this script ##
## each section should be commented so you understand what is being accomplished ##
## A. Source SS-Config + SS-Functions
## B. Touch Timestamp File
## C. Message (Begin Script)
## D. Enable Maintenance Mode (Via Maintenance.html)
## E. Purge Cache (Nginx)
####################################################################################################
#### A. SS-Maintenance-Enable: Source SS-Config + SS-Functions #####################################
####################################################################################################
## before anything else we must source the critical variables that power this script ##
## ss-config is setup during ss-install wizard but ss-functions is hardcoded ##
## source ss-config ##
source /var/www/ss-config
## source ss-functions ##
source /var/www/ss-functions
## BELOW THIS RELIES ON SS-CONFIG AND SS-FUNCTIONS
####################################################################################################
#### B. SS-Maintenance-Enable: Touch Timestamp File ################################################
####################################################################################################
## this is a dummy timestamp file that will remember the last time this script was run ##
## it can be useful for developer reference and is sometimes used by SlickStack ##
ss_touch "${TIMESTAMP_SS_MAINTENANCE_ENABLE}"
####################################################################################################
#### C. SS-Maintenance-Enable: Message (Begin Script) ##############################################
####################################################################################################
## this is a simple message that announces to the shell the purpose of this bash script ##
## it will only be seen by sudo users who manually run this script in the shell ##
ss_echo "${COLOR_INFO}Running ss-maintenance-enable... ${COLOR_RESET}"
####################################################################################################
#### D. SS-Maintenance-Enable: Enable Maintenance Mode (Via Maintenance.html) ######################
####################################################################################################
## here is the critical snippet that copies the maintenance.html file to /var/www/html ##
## after the file is noticed by Nginx it should activate within a few page views ##
## perms ##
ss_mkdir /var/www/html
## retrieve latest maintenance.html file (if not exists) ##
if [[ ! -f "${PATH_MAINTENANCE_HTML}" ]]; then
ss_wget "${TMP_MAINTENANCE_HTML}" "${GITHUB_MAINTENANCE_HTML}"
ss_cp "${TMP_MAINTENANCE_HTML}" "${PATH_MAINTENANCE_HTML}"
chown www-data:www-data "${PATH_MAINTENANCE_HTML}"
chmod 0644 "${PATH_MAINTENANCE_HTML}" ## 0644
fi
## activate maintenance.html ##
ss_rm "${PATH_MAINTENANCE_HTML_LIVE}"
ss_cp "${PATH_MAINTENANCE_HTML}" "${PATH_MAINTENANCE_HTML_LIVE}"
chown www-data:www-data "${PATH_MAINTENANCE_HTML_LIVE}"
chmod 0644 "${PATH_MAINTENANCE_HTML_LIVE}" ## 0644
####################################################################################################
### E. SS-Maintenance-Enable: Purge Cache (Nginx) ##################################################
####################################################################################################
source "${PATH_SS_PURGE_NGINX}"
####################################################################################################
#### SlickStack: Reset Permissions (SlickStack Scripts) ############################################
####################################################################################################
## we include this permissions reset in all cron jobs and bash scripts for redundancy ##
## chmod 0700 means only the root/sudo users can execute any SlickStack scripts ##
## THIS SNIPPET DOES NOT RELY ON SS-CONFIG OR SS-FUNCTIONS
## SNIPPET: ss bash scripts, ss cron jobs
## UPDATED: 02JUL2022
chown root:root /var/www/ss* ## must be root:root
chown root:root /var/www/crons/*cron* ## must be root:root
chown root:root /var/www/crons/custom/*cron* ## must be root:root
chmod 0700 /var/www/ss* ## 0700 means only root/sudo can execute
chmod 0700 /var/www/crons/*cron* ## 0700 means only root/sudo can execute
chmod 0700 /var/www/crons/custom/*cron* ## 0700 means only root/sudo can execute
####################################################################################################
#### SlickStack: External References Used To Improve This Script (Thanks, Interwebz) ###############
####################################################################################################
## Ref: https://stackoverflow.com/questions/5600448/how-to-setup-custom-503-error-page-in-nginx-that-intercepts-all-requests
## SS_EOF