|
@@ -40,6 +40,7 @@ PLEROMA_ONION_PORT=8011
|
40
|
40
|
PLEROMA_REPO="https://git.pleroma.social/pleroma/pleroma.git"
|
41
|
41
|
PLEROMA_COMMIT='7252f6b054dfdfac1f9bac77c442c5a1ebd898af'
|
42
|
42
|
PLEROMA_ADMIN_PASSWORD=
|
|
43
|
+PLEROMA_DIR=/etc/pleroma
|
43
|
44
|
|
44
|
45
|
PLEROMA_BACKGROUND_IMAGE_URL=
|
45
|
46
|
|
|
@@ -71,13 +72,6 @@ function remove_user_pleroma {
|
71
|
72
|
remove_username="$1"
|
72
|
73
|
|
73
|
74
|
${PROJECT_NAME}-pass -u $remove_username --rmapp pleroma
|
74
|
|
-
|
75
|
|
- function_check get_completion_param
|
76
|
|
- PLEROMA_DOMAIN_NAME=$(get_completion_param "pleroma domain")
|
77
|
|
- if [ -d /var/www/$PLEROMA_DOMAIN_NAME ]; then
|
78
|
|
- cd /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
79
|
|
- php scripts/deleteprofile.php -n $remove_username -y
|
80
|
|
- fi
|
81
|
75
|
}
|
82
|
76
|
|
83
|
77
|
function add_user_pleroma {
|
|
@@ -86,15 +80,7 @@ function add_user_pleroma {
|
86
|
80
|
|
87
|
81
|
${PROJECT_NAME}-pass -u $new_username -a pleroma -p "$new_user_password"
|
88
|
82
|
|
89
|
|
- PLEROMA_DOMAIN_NAME=$(get_completion_param "pleroma domain")
|
90
|
|
- if [ -d /var/www/${PLEROMA_DOMAIN_NAME}/htdocs ]; then
|
91
|
|
- cd /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
92
|
|
- php scripts/registeruser.php -n $new_username -w "$new_user_password" -e "$new_username@$HOSTNAME"
|
93
|
|
- ${PROJECT_NAME}-addemail -u $new_username -e "noreply@$PLEROMA_DOMAIN_NAME" -g pleroma --public no
|
94
|
|
- echo '0'
|
95
|
|
- else
|
96
|
|
- echo '1'
|
97
|
|
- fi
|
|
83
|
+ echo '0'
|
98
|
84
|
}
|
99
|
85
|
|
100
|
86
|
function install_interactive_pleroma {
|
|
@@ -204,7 +190,7 @@ function pleroma_create_database {
|
204
|
190
|
run_system_query_postgresql "GRANT ALL ON ALL tables IN SCHEMA public TO pleroma;"
|
205
|
191
|
run_system_query_postgresql "GRANT ALL ON ALL sequences IN SCHEMA public TO pleroma;"
|
206
|
192
|
|
207
|
|
- cd /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
|
193
|
+ cd $PLEROMA_DIR
|
208
|
194
|
mix ecto.create
|
209
|
195
|
mix ecto.migrate
|
210
|
196
|
}
|
|
@@ -341,7 +327,7 @@ function backup_local_pleroma {
|
341
|
327
|
function_check suspend_site
|
342
|
328
|
suspend_site ${PLEROMA_DOMAIN_NAME}
|
343
|
329
|
|
344
|
|
- source_directory=/var/www/${PLEROMA_DOMAIN_NAME}/htdocs
|
|
330
|
+ source_directory=$PLEROMA_DIR
|
345
|
331
|
dest_directory=pleroma
|
346
|
332
|
backup_directory_to_usb $source_directory $dest_directory
|
347
|
333
|
|
|
@@ -361,7 +347,7 @@ function restore_local_pleroma {
|
361
|
347
|
if [ $PLEROMA_DOMAIN_NAME ]; then
|
362
|
348
|
echo $"Restoring pleroma"
|
363
|
349
|
temp_restore_dir=/root/temppleroma
|
364
|
|
- pleroma_dir=/var/www/${PLEROMA_DOMAIN_NAME}/htdocs
|
|
350
|
+ pleroma_dir=$PLEROMA_DIR
|
365
|
351
|
|
366
|
352
|
function_check pleroma_create_database
|
367
|
353
|
pleroma_create_database
|
|
@@ -392,7 +378,7 @@ function backup_remote_pleroma {
|
392
|
378
|
function_check suspend_site
|
393
|
379
|
suspend_site ${PLEROMA_DOMAIN_NAME}
|
394
|
380
|
|
395
|
|
- source_directory=/var/www/${PLEROMA_DOMAIN_NAME}/htdocs
|
|
381
|
+ source_directory=$PLEROMA_DIR
|
396
|
382
|
dest_directory=pleroma
|
397
|
383
|
backup_directory_to_friend $source_directory $dest_directory
|
398
|
384
|
|
|
@@ -412,7 +398,7 @@ function restore_remote_pleroma {
|
412
|
398
|
if [ $PLEROMA_DOMAIN_NAME ]; then
|
413
|
399
|
echo $"Restoring pleroma"
|
414
|
400
|
temp_restore_dir=/root/temppleroma
|
415
|
|
- pleroma_dir=/var/www/${PLEROMA_DOMAIN_NAME}/htdocs
|
|
401
|
+ pleroma_dir=$PLEROMA_DIR
|
416
|
402
|
|
417
|
403
|
function_check pleroma_create_database
|
418
|
404
|
pleroma_create_database
|
|
@@ -445,6 +431,8 @@ function remove_pleroma {
|
445
|
431
|
systemctl disable pleroma
|
446
|
432
|
rm /etc/systemd/system/pleroma.service
|
447
|
433
|
|
|
434
|
+ apt-get -yq remove esl-erlang elixir
|
|
435
|
+
|
448
|
436
|
function_check remove_nodejs
|
449
|
437
|
remove_nodejs pleroma-backend
|
450
|
438
|
|
|
@@ -460,13 +448,17 @@ function remove_pleroma {
|
460
|
448
|
if [ -f /etc/nginx/sites-available/$PLEROMA_DOMAIN_NAME ]; then
|
461
|
449
|
rm /etc/nginx/sites-available/$PLEROMA_DOMAIN_NAME
|
462
|
450
|
fi
|
|
451
|
+ if [ -d $PLEROMA_DIR ]; then
|
|
452
|
+ rm -rf $PLEROMA_DIR
|
|
453
|
+ fi
|
463
|
454
|
function_check drop_database_postgresql
|
464
|
455
|
drop_database_postgresql
|
465
|
456
|
function_check remove_onion_service
|
466
|
457
|
remove_onion_service pleroma ${PLEROMA_ONION_PORT}
|
467
|
458
|
remove_app pleroma
|
468
|
459
|
remove_completion_param install_pleroma
|
469
|
|
- sed -i '/pleroma/d' $COMPLETION_FILE
|
|
460
|
+ sed -i '/pleroma domain/d' $COMPLETION_FILE
|
|
461
|
+ sed -i '/pleroma commit/d' $COMPLETION_FILE
|
470
|
462
|
|
471
|
463
|
function_check remove_ddns_domain
|
472
|
464
|
remove_ddns_domain $PLEROMA_DOMAIN_NAME
|
|
@@ -508,32 +500,40 @@ function install_pleroma {
|
508
|
500
|
install_nodejs pleroma-backend
|
509
|
501
|
install_postgresql
|
510
|
502
|
|
511
|
|
- # get the repo
|
512
|
503
|
if [ ! -d /var/www/$PLEROMA_DOMAIN_NAME ]; then
|
513
|
504
|
mkdir /var/www/$PLEROMA_DOMAIN_NAME
|
514
|
505
|
fi
|
515
|
|
- if [ ! -d /var/www/$PLEROMA_DOMAIN_NAME/htdocs ]; then
|
516
|
|
-
|
517
|
|
- if [ -d /repos/pleroma ]; then
|
518
|
|
- mkdir /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
519
|
|
- cp -r -p /repos/pleroma/. /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
520
|
|
- cd /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
521
|
|
- git pull
|
522
|
|
- else
|
523
|
|
- function_check git_clone
|
524
|
|
- git_clone $PLEROMA_REPO /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
525
|
|
- fi
|
|
506
|
+ if [ -d $PLEROMA_DIR ]; then
|
|
507
|
+ rm -rf $PLEROMA_DIR
|
|
508
|
+ fi
|
526
|
509
|
|
527
|
|
- if [ ! -d /var/www/$PLEROMA_DOMAIN_NAME/htdocs ]; then
|
528
|
|
- echo $'Unable to clone pleroma repo'
|
529
|
|
- exit 783523
|
530
|
|
- fi
|
|
510
|
+
|
|
511
|
+ # create user
|
|
512
|
+ useradd -d $PLEROMA_DIR -s /bin/false pleroma
|
|
513
|
+ adduser pleroma www-data
|
|
514
|
+
|
|
515
|
+ # get the repo
|
|
516
|
+ if [ -d /repos/pleroma ]; then
|
|
517
|
+ mkdir -p $PLEROMA_DIR
|
|
518
|
+ cp -r -p /repos/pleroma/. $PLEROMA_DIR
|
|
519
|
+ cd $PLEROMA_DIR
|
|
520
|
+ git pull
|
|
521
|
+ else
|
|
522
|
+ function_check git_clone
|
|
523
|
+ git_clone $PLEROMA_REPO $PLEROMA_DIR
|
531
|
524
|
fi
|
532
|
525
|
|
533
|
|
- cd /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
|
526
|
+ if [ ! -d $PLEROMA_DIR ]; then
|
|
527
|
+ echo $'Unable to clone pleroma backend repo'
|
|
528
|
+ exit 783523
|
|
529
|
+ fi
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+ # checkout the commit
|
|
533
|
+ cd $PLEROMA_DIR
|
534
|
534
|
git checkout $PLEROMA_COMMIT -b $PLEROMA_COMMIT
|
535
|
535
|
set_completion_param "pleroma commit" "$PLEROMA_COMMIT"
|
536
|
|
- chown -R www-data:www-data /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
|
536
|
+ chown -R pleroma:pleroma $PLEROMA_DIR
|
537
|
537
|
|
538
|
538
|
|
539
|
539
|
# web config
|
|
@@ -567,7 +567,7 @@ function install_pleroma {
|
567
|
567
|
echo ' access_log /dev/null;' >> $pleroma_nginx_site
|
568
|
568
|
echo ' error_log /dev/null;' >> $pleroma_nginx_site
|
569
|
569
|
echo '' >> $pleroma_nginx_site
|
570
|
|
- echo " root /var/www/$PLEROMA_DOMAIN_NAME/htdocs;" >> $pleroma_nginx_site
|
|
570
|
+ echo " root $PLEROMA_DIR;" >> $pleroma_nginx_site
|
571
|
571
|
echo '' >> $pleroma_nginx_site
|
572
|
572
|
echo ' index index.html;' >> $pleroma_nginx_site
|
573
|
573
|
echo ' location / {' >> $pleroma_nginx_site
|
|
@@ -594,8 +594,7 @@ function install_pleroma {
|
594
|
594
|
echo ' access_log /dev/null;' >> $pleroma_nginx_site
|
595
|
595
|
echo ' error_log /dev/null;' >> $pleroma_nginx_site
|
596
|
596
|
echo '' >> $pleroma_nginx_site
|
597
|
|
- echo ' # Root' >> $pleroma_nginx_site
|
598
|
|
- echo " root /var/www/$PLEROMA_DOMAIN_NAME/htdocs;" >> $pleroma_nginx_site
|
|
597
|
+ echo " root $PLEROMA_DIR;" >> $pleroma_nginx_site
|
599
|
598
|
echo '' >> $pleroma_nginx_site
|
600
|
599
|
echo ' index index.html;' >> $pleroma_nginx_site
|
601
|
600
|
echo ' location / {' >> $pleroma_nginx_site
|
|
@@ -621,10 +620,7 @@ function install_pleroma {
|
621
|
620
|
|
622
|
621
|
|
623
|
622
|
# back end
|
624
|
|
- useradd -d /var/www/$PLEROMA_DOMAIN_NAME/htdocs/ -s /bin/false pleroma
|
625
|
|
- adduser pleroma www-data
|
626
|
|
-
|
627
|
|
- cd /var/www/$PLEROMA_DOMAIN_NAME/htdocs
|
|
623
|
+ cd $PLEROMA_DIR
|
628
|
624
|
mix deps.get
|
629
|
625
|
|
630
|
626
|
function_check pleroma_create_database
|
|
@@ -637,7 +633,7 @@ function install_pleroma {
|
637
|
633
|
sed -i "s|database:.*|database: \"pleroma\",|g" $pleroma_secret
|
638
|
634
|
sed -i "/config :pleroma, Pleroma.Web.Endpoint/a url: [host: \"$PLEROMA_DOMAIN_NAME\", scheme: \"https\", port: 443]," $pleroma_secret
|
639
|
635
|
|
640
|
|
- pleroma_config=/var/www/$PLEROMA_DOMAIN_NAME/htdocs/config/config.exs
|
|
636
|
+ pleroma_config=config/config.exs
|
641
|
637
|
sed -i "s|name: .*|name: \"$PLEROMA_TITLE\",|g" $pleroma_config
|
642
|
638
|
sed -i "s|email: .*|email: \"$MY_EMAIL_ADDRESS\",|g" $pleroma_config
|
643
|
639
|
|
|
@@ -658,8 +654,8 @@ function install_pleroma {
|
658
|
654
|
echo '' >> /etc/systemd/system/pleroma.service
|
659
|
655
|
echo '[Service]' >> /etc/systemd/system/pleroma.service
|
660
|
656
|
echo 'User=pleroma' >> /etc/systemd/system/pleroma.service
|
661
|
|
- echo "WorkingDirectory=/var/www/$PLEROMA_DOMAIN_NAME/htdocs/pleroma"
|
662
|
|
- echo "Environment=\"HOME=/var/www/$PLEROMA_DOMAIN_NAME/htdocs\"" >> /etc/systemd/system/pleroma.service
|
|
657
|
+ echo "WorkingDirectory=$PLEROMA_DIR"
|
|
658
|
+ echo "Environment=\"HOME=$PLEROMA_DIR\"" >> /etc/systemd/system/pleroma.service
|
663
|
659
|
echo 'ExecStart=/usr/local/bin/mix phx.server' >> /etc/systemd/system/pleroma.service
|
664
|
660
|
echo 'ExecReload=/bin/kill $MAINPID' >> /etc/systemd/system/pleroma.service
|
665
|
661
|
echo 'KillMode=process' >> /etc/systemd/system/pleroma.service
|