|
@@ -1,506 +0,0 @@
|
1
|
|
-#!/bin/bash
|
2
|
|
-#
|
3
|
|
-# .---. . .
|
4
|
|
-# | | |
|
5
|
|
-# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
|
6
|
|
-# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
|
7
|
|
-# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
|
8
|
|
-#
|
9
|
|
-# Freedom in the Cloud
|
10
|
|
-#
|
11
|
|
-# mediagoblin functions
|
12
|
|
-#
|
13
|
|
-# License
|
14
|
|
-# =======
|
15
|
|
-#
|
16
|
|
-# Copyright (C) 2014-2016 Bob Mottram <bob@freedombone.net>
|
17
|
|
-#
|
18
|
|
-# This program is free software: you can redistribute it and/or modify
|
19
|
|
-# it under the terms of the GNU Affero General Public License as published by
|
20
|
|
-# the Free Software Foundation, either version 3 of the License, or
|
21
|
|
-# (at your option) any later version.
|
22
|
|
-#
|
23
|
|
-# This program is distributed in the hope that it will be useful,
|
24
|
|
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
25
|
|
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
26
|
|
-# GNU Affero General Public License for more details.
|
27
|
|
-#
|
28
|
|
-# You should have received a copy of the GNU Affero General Public License
|
29
|
|
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
30
|
|
-
|
31
|
|
-VARIANTS=''
|
32
|
|
-
|
33
|
|
-IN_DEFAULT_INSTALL=0
|
34
|
|
-SHOW_ON_ABOUT=1
|
35
|
|
-
|
36
|
|
-MEDIAGOBLIN_DOMAIN_NAME=
|
37
|
|
-MEDIAGOBLIN_CODE=
|
38
|
|
-MEDIAGOBLIN_REPO="git://git.savannah.gnu.org/mediagoblin.git"
|
39
|
|
-MEDIAGOBLIN_COMMIT='d1ac2d52fd8859c3f32fa38e4836ffe9615e5bba'
|
40
|
|
-MEDIAGOBLIN_ADMIN_PASSWORD=
|
41
|
|
-MEDIAGOBLIN_ONION_PORT=8096
|
42
|
|
-
|
43
|
|
-mediagoblin_variables=(ONION_ONLY
|
44
|
|
- MEDIAGOBLIN_DOMAIN_NAME
|
45
|
|
- MEDIAGOBLIN_CODE
|
46
|
|
- MEDIAGOBLIN_REPO
|
47
|
|
- MEDIAGOBLIN_COMMIT
|
48
|
|
- DDNS_PROVIDER)
|
49
|
|
-
|
50
|
|
-function install_interactive_mediagoblin {
|
51
|
|
- if [[ $ONION_ONLY != "no" ]]; then
|
52
|
|
- MEDIAGOBLIN_DOMAIN_NAME='media.local'
|
53
|
|
- else
|
54
|
|
- MEDIAGOBLIN_DETAILS_COMPLETE=
|
55
|
|
- while [ ! $MEDIAGOBLIN_DETAILS_COMPLETE ]
|
56
|
|
- do
|
57
|
|
- data=$(tempfile 2>/dev/null)
|
58
|
|
- trap "rm -f $data" 0 1 2 5 15
|
59
|
|
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
|
60
|
|
- dialog --backtitle $"Freedombone Configuration" \
|
61
|
|
- --title $"Mediagoblin Configuration" \
|
62
|
|
- --form $"\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:" 11 55 2 \
|
63
|
|
- $"Domain:" 1 1 "$(grep 'MEDIAGOBLIN_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
|
64
|
|
- $"Code:" 2 1 "$(grep 'MEDIAGOBLIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
|
65
|
|
- 2> $data
|
66
|
|
- else
|
67
|
|
- dialog --backtitle $"Freedombone Configuration" \
|
68
|
|
- --title $"Mediagoblin Configuration" \
|
69
|
|
- --form $"\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:" 11 55 2 \
|
70
|
|
- $"Domain:" 1 1 "$(grep 'MEDIAGOBLIN_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
|
71
|
|
- 2> $data
|
72
|
|
- fi
|
73
|
|
- sel=$?
|
74
|
|
- case $sel in
|
75
|
|
- 1) exit 1;;
|
76
|
|
- 255) exit 1;;
|
77
|
|
- esac
|
78
|
|
- MEDIAGOBLIN_DOMAIN_NAME=$(cat $data | sed -n 1p)
|
79
|
|
- if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
80
|
|
- TEST_DOMAIN_NAME=$MEDIAGOBLIN_DOMAIN_NAME
|
81
|
|
- validate_domain_name
|
82
|
|
- if [[ $TEST_DOMAIN_NAME != $MEDIAGOBLIN_DOMAIN_NAME ]]; then
|
83
|
|
- MEDIAGOBLIN_DOMAIN_NAME='invalid'
|
84
|
|
- dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
|
85
|
|
- else
|
86
|
|
- if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
|
87
|
|
- MEDIAGOBLIN_CODE=$(cat $data | sed -n 2p)
|
88
|
|
- validate_freedns_code "$MEDIAGOBLIN_CODE"
|
89
|
|
- if [ ! $VALID_CODE ]; then
|
90
|
|
- MEDIAGOBLIN_DOMAIN_NAME='invalid'
|
91
|
|
- fi
|
92
|
|
- fi
|
93
|
|
- fi
|
94
|
|
- fi
|
95
|
|
- if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
96
|
|
- if [[ $MEDIAGOBLIN_DOMAIN_NAME == 'invalid' ]]; then
|
97
|
|
- MEDIAGOBLIN_DOMAIN_NAME=
|
98
|
|
- else
|
99
|
|
- MEDIAGOBLIN_DETAILS_COMPLETE="yes"
|
100
|
|
- fi
|
101
|
|
- fi
|
102
|
|
- done
|
103
|
|
-
|
104
|
|
- # save the results in the config file
|
105
|
|
- write_config_param "MEDIAGOBLIN_CODE" "$MEDIAGOBLIN_CODE"
|
106
|
|
- fi
|
107
|
|
- write_config_param "MEDIAGOBLIN_DOMAIN_NAME" "$MEDIAGOBLIN_DOMAIN_NAME"
|
108
|
|
- APP_INSTALLED=1
|
109
|
|
-}
|
110
|
|
-
|
111
|
|
-function change_password_mediagoblin {
|
112
|
|
- echo -n ''
|
113
|
|
-}
|
114
|
|
-
|
115
|
|
-function reconfigure_mediagoblin {
|
116
|
|
- echo -n ''
|
117
|
|
-}
|
118
|
|
-
|
119
|
|
-function upgrade_mediagoblin {
|
120
|
|
- if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
121
|
|
- return
|
122
|
|
- fi
|
123
|
|
-
|
124
|
|
- MEDIAGOBLIN_WORKING_DIRECTORY=/var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
|
125
|
|
-
|
126
|
|
- # update to a new commit if needed
|
127
|
|
- function_check set_repo_commit
|
128
|
|
- set_repo_commit $MEDIAGOBLIN_WORKING_DIRECTORY "Mediagoblin commit" "$MEDIAGOBLIN_COMMIT" $MEDIAGOBLIN_REPO
|
129
|
|
- if [ -d $MEDIAGOBLIN_WORKING_DIRECTORY ]; then
|
130
|
|
- chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
|
131
|
|
- fi
|
132
|
|
-}
|
133
|
|
-
|
134
|
|
-function backup_local_mediagoblin {
|
135
|
|
- echo -n ''
|
136
|
|
-}
|
137
|
|
-
|
138
|
|
-function restore_local_mediagoblin {
|
139
|
|
- echo -n ''
|
140
|
|
-}
|
141
|
|
-
|
142
|
|
-function backup_remote_mediagoblin {
|
143
|
|
- function_check suspend_site
|
144
|
|
- suspend_site ${MEDIAGOBLIN_DOMAIN_NAME}
|
145
|
|
-
|
146
|
|
- echo $"Backing up Mediagoblin"
|
147
|
|
-
|
148
|
|
- backup_directory_to_friend /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs mediagoblin
|
149
|
|
-
|
150
|
|
- function_check restart_site
|
151
|
|
- restart_site
|
152
|
|
-
|
153
|
|
- echo $"Backup of Mediagoblin complete"
|
154
|
|
-}
|
155
|
|
-
|
156
|
|
-function restore_remote_mediagoblin {
|
157
|
|
- if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
|
158
|
|
- echo $"Restoring Mediagoblin installation"
|
159
|
|
- temp_restore_dir=/root/tempmediagoblin
|
160
|
|
- function_check restore_directory_from_friend
|
161
|
|
- restore_directory_from_friend $temp_restore_dir mediagoblin
|
162
|
|
- cp -r $temp_restore_dir/* /
|
163
|
|
- if [ ! "$?" = "0" ]; then
|
164
|
|
- exit 5626
|
165
|
|
- fi
|
166
|
|
- rm -rf $temp_restore_dir
|
167
|
|
- echo $"Restore of Mediagoblin complete"
|
168
|
|
- fi
|
169
|
|
- chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
|
170
|
|
-}
|
171
|
|
-
|
172
|
|
-function remove_mediagoblin {
|
173
|
|
- remove_certs ${MEDIAGOBLIN_DOMAIN_NAME}
|
174
|
|
-
|
175
|
|
- function_check remove_ddns_domain
|
176
|
|
- remove_ddns_domain $MEDIAGOBLIN_DOMAIN_NAME
|
177
|
|
-}
|
178
|
|
-
|
179
|
|
-function install_mediagoblin {
|
180
|
|
- if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
181
|
|
- return
|
182
|
|
- fi
|
183
|
|
-
|
184
|
|
- MEDIAGOBLIN_WORKING_DIRECTORY=/var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
|
185
|
|
-
|
186
|
|
- # update to a new commit if needed
|
187
|
|
- function_check set_repo_commit
|
188
|
|
- set_repo_commit $MEDIAGOBLIN_WORKING_DIRECTORY "Mediagoblin commit" "$MEDIAGOBLIN_COMMIT" $MEDIAGOBLIN_REPO
|
189
|
|
- if [ -d $MEDIAGOBLIN_WORKING_DIRECTORY ]; then
|
190
|
|
- chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
|
191
|
|
- fi
|
192
|
|
-
|
193
|
|
- apt-get -yq install git-core python python-dev python-lxml python-pil
|
194
|
|
- apt-get -yq install python-virtualenv npm nodejs-legacy automake
|
195
|
|
- apt-get -yq install fcgiwrap
|
196
|
|
-
|
197
|
|
- #apt-get -yq install postgresql postgresql-client python-psycopg2
|
198
|
|
- #apt-get -yq install python-gst-1.0 libjpeg62-turbo-dev gstreamer1.0-plugins-base python-gobject
|
199
|
|
- #apt-get -yq install gstreamer1.0-plugins-good gstreamer1.0-libav libav-tools gstreamer0.10-tools
|
200
|
|
- #apt-get -yq install python-numpy python-scipy libsndfile1-dev python-gst0.10-dev
|
201
|
|
- #apt-get -yq install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer1.0-tools
|
202
|
|
- #su -c "createuser -A -D mediagoblin" - postgres
|
203
|
|
- #su -c "createdb -E UNICODE -O mediagoblin mediagoblin" - postgres
|
204
|
|
-
|
205
|
|
- useradd -c "GNU MediaGoblin system account" -d /var/lib/mediagoblin -m -r -g www-data mediagoblin
|
206
|
|
- groupadd mediagoblin
|
207
|
|
- usermod --append -G mediagoblin mediagoblin
|
208
|
|
-
|
209
|
|
- if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY ]; then
|
210
|
|
- mkdir -p $MEDIAGOBLIN_WORKING_DIRECTORY
|
211
|
|
- fi
|
212
|
|
-
|
213
|
|
- function_check git_clone
|
214
|
|
- git_clone $MEDIAGOBLIN_REPO $MEDIAGOBLIN_WORKING_DIRECTORY
|
215
|
|
- cd $MEDIAGOBLIN_WORKING_DIRECTORY
|
216
|
|
- git checkout $MEDIAGOBLIN_COMMIT -b $MEDIAGOBLIN_COMMIT
|
217
|
|
- git submodule init
|
218
|
|
- git submodule update
|
219
|
|
-
|
220
|
|
- set_completion_param "mediagoblin commit" "$MEDIAGOBLIN_COMMIT"
|
221
|
|
-
|
222
|
|
- chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
|
223
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bootstrap.sh" - mediagoblin
|
224
|
|
- if [ ! "$?" = "0" ]; then
|
225
|
|
- exit 278826
|
226
|
|
- fi
|
227
|
|
-
|
228
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./configure" - mediagoblin
|
229
|
|
- if [ ! "$?" = "0" ]; then
|
230
|
|
- exit 462826
|
231
|
|
- fi
|
232
|
|
-
|
233
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && make" - mediagoblin
|
234
|
|
- if [ ! "$?" = "0" ]; then
|
235
|
|
- exit 738229
|
236
|
|
- fi
|
237
|
|
-
|
238
|
|
- if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev ]; then
|
239
|
|
- mkdir $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
|
240
|
|
- fi
|
241
|
|
- chmod 750 $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
|
242
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install flup==1.0.3.dev-20110405" - mediagoblin
|
243
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade billiard" - mediagoblin
|
244
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade Paste" - mediagoblin
|
245
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade amqp" - mediagoblin
|
246
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade anyjson" - mediagoblin
|
247
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade py-bcrypt" - mediagoblin
|
248
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade wtforms" - mediagoblin
|
249
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade python-dateutil" - mediagoblin
|
250
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade alembic" - mediagoblin
|
251
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade waitress" - mediagoblin
|
252
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade imagesize" - mediagoblin
|
253
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade alabaster" - mediagoblin
|
254
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade snowballstemmer" - mediagoblin
|
255
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade docutils" - mediagoblin
|
256
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade Pygments" - mediagoblin
|
257
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade beautifulsoup4" - mediagoblin
|
258
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade WebOb" - mediagoblin
|
259
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade py" - mediagoblin
|
260
|
|
- su -c "cd $MEDIAGOBLIN_WORKING_DIRECTORY && ./bin/easy_install --upgrade execnet" - mediagoblin
|
261
|
|
-
|
262
|
|
- # create some directories
|
263
|
|
- mkdir /var/log/mediagoblin
|
264
|
|
- chown -hR mediagoblin:www-data /var/log/mediagoblin
|
265
|
|
- mkdir /var/run/mediagoblin
|
266
|
|
- chown -hR mediagoblin:www-data /var/run/mediagoblin
|
267
|
|
-
|
268
|
|
- if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin.ini ]; then
|
269
|
|
- echo $'mediagoblin.ini not found'
|
270
|
|
- exit 737529
|
271
|
|
- fi
|
272
|
|
- if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/paste.ini ]; then
|
273
|
|
- echo $'paste.ini not found'
|
274
|
|
- exit 52762
|
275
|
|
- fi
|
276
|
|
-
|
277
|
|
- cp -av mediagoblin.ini mediagoblin_local.ini
|
278
|
|
- cp -av paste.ini paste_local.ini
|
279
|
|
-
|
280
|
|
- chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
|
281
|
|
-
|
282
|
|
- # init with systemd
|
283
|
|
- echo '[Unit]' > /etc/systemd/system/mediagoblin-celeryd.service
|
284
|
|
- echo 'Description=Mediagoblin Celeryd' >> /etc/systemd/system/mediagoblin-celeryd.service
|
285
|
|
- echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin-celeryd.service
|
286
|
|
- echo 'After=network.target' >> /etc/systemd/system/mediagoblin-celeryd.service
|
287
|
|
- echo '' >> /etc/systemd/system/mediagoblin-celeryd.service
|
288
|
|
- echo '[Service]' >> /etc/systemd/system/mediagoblin-celeryd.service
|
289
|
|
- echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin-celeryd.service
|
290
|
|
- echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin-celeryd.service
|
291
|
|
- echo 'Type=simple' >> /etc/systemd/system/mediagoblin-celeryd.service
|
292
|
|
- echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin-celeryd.service
|
293
|
|
- echo "Environment=MEDIAGOBLIN_CONFIG=$MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin_local.ini \\" >> /etc/systemd/system/mediagoblin-celeryd.service
|
294
|
|
- echo ' CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery' >> /etc/systemd/system/mediagoblin-celeryd.service
|
295
|
|
- echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/bin/celery worker \\" >> /etc/systemd/system/mediagoblin-celeryd.service
|
296
|
|
- echo ' --logfile=/var/log/mediagoblin/celery.log \' >> /etc/systemd/system/mediagoblin-celeryd.service
|
297
|
|
- echo ' --loglevel=INFO' >> /etc/systemd/system/mediagoblin-celeryd.service
|
298
|
|
- echo 'PIDFile=/var/run/mediagoblin/mediagoblin-celeryd.pid' >> /etc/systemd/system/mediagoblin-celeryd.service
|
299
|
|
- echo '' >> /etc/systemd/system/mediagoblin-celeryd.service
|
300
|
|
- echo '[Install]' >> /etc/systemd/system/mediagoblin-celeryd.service
|
301
|
|
- echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin-celeryd.service
|
302
|
|
-
|
303
|
|
- echo '[Unit]' > /etc/systemd/system/mediagoblin-paster.service
|
304
|
|
- echo 'Description=Mediagoblin' >> /etc/systemd/system/mediagoblin-paster.service
|
305
|
|
- echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin-paster.service
|
306
|
|
- echo 'After=network.target' >> /etc/systemd/system/mediagoblin-paster.service
|
307
|
|
- echo '' >> /etc/systemd/system/mediagoblin-paster.service
|
308
|
|
- echo '[Service]' >> /etc/systemd/system/mediagoblin-paster.service
|
309
|
|
- echo 'Type=forking' >> /etc/systemd/system/mediagoblin-paster.service
|
310
|
|
- echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin-paster.service
|
311
|
|
- echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin-paster.service
|
312
|
|
- echo 'Environment=CELERY_ALWAYS_EAGER=false' >> /etc/systemd/system/mediagoblin-paster.service
|
313
|
|
- echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin-paster.service
|
314
|
|
- echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/bin/paster serve \\" >> /etc/systemd/system/mediagoblin-paster.service
|
315
|
|
- echo " $MEDIAGOBLIN_WORKING_DIRECTORY/paste_local.ini \\" >> /etc/systemd/system/mediagoblin-paster.service
|
316
|
|
- echo ' --pid-file=/var/run/mediagoblin/mediagoblin.pid \' >> /etc/systemd/system/mediagoblin-paster.service
|
317
|
|
- echo ' --log-file=/var/log/mediagoblin/mediagoblin.log \' >> /etc/systemd/system/mediagoblin-paster.service
|
318
|
|
- echo ' --daemon \' >> /etc/systemd/system/mediagoblin-paster.service
|
319
|
|
- echo ' --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543' >> /etc/systemd/system/mediagoblin-paster.service
|
320
|
|
- echo "ExecStop=$MEDIAGOBLIN_WORKING_DIRECTORY/bin/paster serve \\" >> /etc/systemd/system/mediagoblin-paster.service
|
321
|
|
- echo ' --pid-file=/var/run/mediagoblin/mediagoblin.pid \' >> /etc/systemd/system/mediagoblin-paster.service
|
322
|
|
- echo " $MEDIAGOBLIN_WORKING_DIRECTORY/paste_local.ini stop" >> /etc/systemd/system/mediagoblin-paster.service
|
323
|
|
- echo 'PIDFile=/var/run/mediagoblin/mediagoblin.pid' >> /etc/systemd/system/mediagoblin-paster.service
|
324
|
|
- echo '' >> /etc/systemd/system/mediagoblin-paster.service
|
325
|
|
- echo '[Install]' >> /etc/systemd/system/mediagoblin-paster.service
|
326
|
|
- echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin-paster.service
|
327
|
|
- systemctl daemon-reload
|
328
|
|
- systemctl enable mediagoblin-celeryd
|
329
|
|
- systemctl enable mediagoblin-paster
|
330
|
|
- systemctl daemon-reload
|
331
|
|
- systemctl start mediagoblin-celeryd
|
332
|
|
- systemctl start mediagoblin-paster
|
333
|
|
-
|
334
|
|
- MEDIAGOBLIN_ONION_HOSTNAME=$(add_onion_service mediagoblin 80 ${MEDIAGOBLIN_ONION_PORT})
|
335
|
|
- if [[ $MEDIAGOBLIN_ONION_HOSTNAME == *"not found"* ]]; then
|
336
|
|
- echo $'Problem creating onion address for mediagoblin'
|
337
|
|
- exit 672652
|
338
|
|
- fi
|
339
|
|
-
|
340
|
|
- # web config
|
341
|
|
- MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
342
|
|
- function_check nginx_http_redirect
|
343
|
|
- nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
|
344
|
|
- if [[ $ONION_ONLY == 'no' ]]; then
|
345
|
|
- echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
346
|
|
- echo ' listen 443 ssl;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
347
|
|
- echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
348
|
|
- echo ' # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
349
|
|
- echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
350
|
|
- echo ' include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
351
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
352
|
|
- echo ' autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
353
|
|
- echo ' default_type application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
354
|
|
- echo ' sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
355
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
356
|
|
- function_check nginx_ssl
|
357
|
|
- nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
|
358
|
|
- function_check nginx_disable_sniffing
|
359
|
|
- nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
|
360
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
361
|
|
- echo ' # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
362
|
|
- echo ' gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
363
|
|
- echo ' gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
364
|
|
- echo ' gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
365
|
|
- echo ' gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
366
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
367
|
|
- echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
368
|
|
- echo ' # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
369
|
|
- echo ' # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
370
|
|
- echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
371
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
372
|
|
- echo " server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
373
|
|
- echo ' access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
374
|
|
- echo ' error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
375
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
376
|
|
- echo ' # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
377
|
|
- echo ' location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
378
|
|
- function_check nginx_limits
|
379
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
380
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
381
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
382
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
383
|
|
- echo ' # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
384
|
|
- echo ' location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
385
|
|
- function_check nginx_limits
|
386
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
387
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
388
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
389
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
390
|
|
- echo ' # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
391
|
|
- echo ' location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
392
|
|
- function_check nginx_limits
|
393
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
394
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
395
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
396
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
397
|
|
- echo ' # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
398
|
|
- echo ' location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
399
|
|
- function_check nginx_limits
|
400
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
401
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
402
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
403
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
404
|
|
- echo ' # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
405
|
|
- echo ' location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
406
|
|
- function_check nginx_limits
|
407
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
408
|
|
- echo ' fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
409
|
|
- echo ' include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
410
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
411
|
|
- echo ' # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
412
|
|
- echo ' # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
413
|
|
- echo ' fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
414
|
|
- echo ' fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
415
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
416
|
|
- echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
417
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
418
|
|
- else
|
419
|
|
- echo -n '' > $MEDIAGOBLIN_VIRTUAL_HOST
|
420
|
|
- fi
|
421
|
|
-
|
422
|
|
- echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
423
|
|
- echo " listen 127.0.0.1:${MEDIAGOBLIN_ONION_PORT} default_server;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
424
|
|
- echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
425
|
|
- echo ' # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
426
|
|
- echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
427
|
|
- echo ' include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
428
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
429
|
|
- echo ' autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
430
|
|
- echo ' default_type application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
431
|
|
- echo ' sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
432
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
433
|
|
- function_check nginx_disable_sniffing
|
434
|
|
- nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
|
435
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
436
|
|
- echo ' # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
437
|
|
- echo ' gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
438
|
|
- echo ' gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
439
|
|
- echo ' gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
440
|
|
- echo ' gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
441
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
442
|
|
- echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
443
|
|
- echo ' # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
444
|
|
- echo ' # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
445
|
|
- echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
446
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
447
|
|
- echo " server_name $MEDIAGOBLIN_ONION_HOSTNAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
448
|
|
- echo ' access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
449
|
|
- echo ' error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
450
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
451
|
|
- echo ' # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
452
|
|
- echo ' location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
453
|
|
- function_check nginx_limits
|
454
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
455
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
456
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
457
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
458
|
|
- echo ' # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
459
|
|
- echo ' location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
460
|
|
- function_check nginx_limits
|
461
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
462
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
463
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
464
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
465
|
|
- echo ' # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
466
|
|
- echo ' location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
467
|
|
- function_check nginx_limits
|
468
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
469
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
470
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
471
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
472
|
|
- echo ' # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
473
|
|
- echo ' location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
474
|
|
- function_check nginx_limits
|
475
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
476
|
|
- echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
477
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
478
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
479
|
|
- echo ' # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
480
|
|
- echo ' location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
481
|
|
- function_check nginx_limits
|
482
|
|
- nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
483
|
|
- echo ' fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
484
|
|
- echo ' include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
485
|
|
- echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
486
|
|
- echo ' # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
487
|
|
- echo ' # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
488
|
|
- echo ' fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
489
|
|
- echo ' fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
490
|
|
- echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
491
|
|
- echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
492
|
|
-
|
493
|
|
- function_check create_site_certificate
|
494
|
|
- create_site_certificate $MEDIAGOBLIN_DOMAIN_NAME
|
495
|
|
-
|
496
|
|
- nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
|
497
|
|
- systemctl restart php5-fpm
|
498
|
|
- systemctl restart nginx
|
499
|
|
-
|
500
|
|
- add_ddns_domain $MEDIAGOBLIN_DOMAIN_NAME
|
501
|
|
-
|
502
|
|
- set_completion_param "mediagoblin domain" "$MEDIAGOBLIN_DOMAIN_NAME"
|
503
|
|
- APP_INSTALLED=1
|
504
|
|
-}
|
505
|
|
-
|
506
|
|
-# NOTE: deliberately no exit 0
|