Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
freedombone
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Context Sensitive Group
freedombone
Commits
8abeb56b
Commit
8abeb56b
authored
7 years ago
by
Bob Mottram
Browse files
Options
Downloads
Patches
Plain Diff
Deprecate smilodon
parent
44fcd44d
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/freedombone-app-smilodon
+0
-381
0 additions, 381 deletions
src/freedombone-app-smilodon
with
0 additions
and
381 deletions
src/freedombone-app-smilodon
deleted
100755 → 0
+
0
−
381
View file @
44fcd44d
#!/bin/bash
#
# .---. . .
# | | |
# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
#
# Freedom in the Cloud
#
# Smilodon ActivityPub app
#
# License
# =======
#
# Copyright (C) 2017 Bob Mottram <bob@freedombone.net>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
VARIANTS
=
''
IN_DEFAULT_INSTALL
=
0
SHOW_ON_ABOUT
=
1
SHOW_ICANN_ADDRESS_ON_ABOUT
=
0
SMILODON_REPO
=
"https://github.com/bashrc/smilodon"
SMILODON_COMMIT
=
'18c91b84737fbb1a106d3c495730ac3261aac335'
SMILODON_ADMIN_PASSWORD
=
SMILODON_ONION_PORT
=
8054
SMILODON_PATH
=
/etc/smilodon
SMILODON_SECRET_KEY
=
smilodon_variables
=(
SMILODON_REPO
SMILODON_ADMIN_PASSWORD
USB_MOUNT
SMILODON_SECRET_KEY
MY_EMAIL_ADDRESS
MY_USERNAME
)
function
logging_on_smilodon
{
echo
-n
''
}
function
logging_off_smilodon
{
echo
-n
''
}
function
remove_user_smilodon
{
remove_username
=
"
$1
"
}
function
add_user_smilodon
{
new_username
=
"
$1
"
new_user_password
=
"
$2
"
echo
'0'
}
function
install_interactive_smilodon
{
echo
-n
''
APP_INSTALLED
=
1
}
function
change_password_smilodon
{
curr_username
=
"
$1
"
new_user_password
=
"
$2
"
#${PROJECT_NAME}-pass -u "$curr_username" -a smilodon -p "$new_user_password"
}
function
smilodon_create_database
{
if
[
!
$SMILODON_ADMIN_PASSWORD
]
;
then
return
fi
function_check create_database_mongodb
create_database_mongodb smilodon
"
$SMILODON_ADMIN_PASSWORD
"
smilodon
}
function
reconfigure_smilodon
{
echo
-n
''
}
function
upgrade_smilodon
{
CURR_SMILODON_COMMIT
=
$(
get_completion_param
"smilodon commit"
)
if
[[
"
$CURR_SMILODON_COMMIT
"
==
"
$SMILODON_COMMIT
"
]]
;
then
return
fi
if
[[
$(
app_is_installed smilodon
)
==
"1"
]]
;
then
systemctl stop smilodon
function_check set_repo_commit
set_repo_commit
$SMILODON_PATH
"smilodon commit"
"
$SMILODON_COMMIT
"
$SMILODON_REPO
chown
-R
smilodon:smilodon
$SMILODON_PATH
systemctl start smilodon
fi
}
function
backup_local_smilodon
{
if
[
!
-d
$SMILODON_PATH
]
;
then
return
fi
systemctl stop smilodon
USE_MONGODB
=
1
function_check backup_database_to_usb
backup_database_to_usb smilodon
backup_directory_to_usb
$SMILODON_PATH
smilodon
systemctl start smilodon
}
function
restore_local_smilodon
{
temp_restore_dir
=
/root/tempsmilodon
systemctl stop smilodon
function_check smilodon_create_database
smilodon_create_database
USE_MONGODB
=
1
restore_database smilodon
if
[
-d
${
SMILODON_PATH
}
]
;
then
if
[
-d
$temp_restore_dir
${
SMILODON_PATH
}
]
;
then
if
[
-d
$temp_restore_dir
${
SMILODON_PATH
}
]
;
then
rm
-rf
${
SMILODON_PATH
}
mv
$temp_restore_dir$SMILODON_PATH
${
SMILODON_PATH
}
/
else
cp
-r
$temp_restore_dir
/
*
${
SMILODON_PATH
}
/
fi
if
[
!
"
$?
"
=
"0"
]
;
then
function_check backup_unmount_drive
backup_unmount_drive
systemctl start smilodon
exit
528823
fi
chown
-R
smilodon:smilodon
${
SMILODON_PATH
}
fi
fi
if
[
-d
$USB_MOUNT
/backup/smilodon
]
;
then
chown
-R
smilodon:smilodon
${
SMILODON_PATH
}
if
[
-d
$temp_restore_dir
]
;
then
rm
-rf
$temp_restore_dir
fi
fi
systemctl start smilodon
}
function
backup_remote_smilodon
{
if
[
-d
$SMILODON_PATH
]
;
then
function_check suspend_site
suspend_site smilodon
systemctl stop smilodon
USE_MONGODB
=
1
function_check backup_database_to_friend
backup_database_to_friend smilodon
function_check backup_directory_to_friend
backup_directory_to_friend
$SMILODON_PATH
smilodon
systemctl start smilodon
function_check restart_site
restart_site
else
echo
$"Smilodon domain specified but not found in
$SMILODON_PATH
"
fi
}
function
restore_remote_smilodon
{
temp_restore_dir
=
/root/tempsmilodon
if
grep
-q
"smilodon domain"
$COMPLETION_FILE
;
then
echo
$"Restoring smilodon"
systemctl stop smilodon
function_check restore_database_from_friend
function_check smilodon_create_database
smilodon_create_database
USE_MONGODB
=
1
restore_database_from_friend smilodon
if
[
-d
$SMILODON_PATH
]
;
then
if
[
-d
$temp_restore_dir$SMILODON_PATH
]
;
then
rm
-rf
$SMILODON_PATH
mv
$temp_restore_dir$SMILODON_PATH
${
SMILODON_PATH
}
/
else
cp
-r
$temp_restore_dir
/
*
${
SMILODON_PATH
}
/
fi
if
[
!
"
$?
"
=
"0"
]
;
then
systemctl start smilodon
exit
6391643
fi
fi
if
[
-d
$SERVER_DIRECTORY
/backup/smilodon
]
;
then
chown
-R
smilodon:smilodon
${
SMILODON_PATH
}
fi
if
[
-d
/root/tempsmilodon
]
;
then
rm
-rf
/root/tempsmilodon
fi
systemctl start smilodon
echo
$"Restore of smilodon complete"
fi
}
function
remove_smilodon
{
nginx_dissite smilodon
systemctl stop smilodon
systemctl disable smilodon
rm
/etc/systemd/system/smilodon.service
function_check remove_onion_service
remove_onion_service smilodon
${
SMILODON_ONION_PORT
}
if
[
-f
/etc/nginx/sites-available/smilodon
]
;
then
rm
/etc/nginx/sites-available/smilodon
fi
groupdel
-f
smilodon
userdel
-r
smilodon
if
[
-d
$SMILODON_PATH
]
;
then
rm
-rf
$SMILODON_PATH
fi
function_check remove_mongodb_user
remove_mongodb_user smilodon
function_check drop_database_mongodb
drop_database_mongodb smilodon
function_check remove_mongodb
remove_mongodb smilodon
remove_completion_param install_smilodon
sed
-i
'/smilodon/d'
$COMPLETION_FILE
}
function
install_smilodon
{
apt-get
-yq
install
python3-pip
if
[
-d
$SMILODON_PATH
]
;
then
rm
-rf
$SMILODON_PATH
fi
if
[
-d
/repos/smilodon
]
;
then
mkdir
$SMILODON_PATH
cp
-r
-p
/repos/smilodon/.
$SMILODON_PATH
cd
$SMILODON_PATH
git pull
else
function_check git_clone
git_clone
$SMILODON_REPO
$SMILODON_PATH
fi
if
[
!
-d
$SMILODON_PATH
]
;
then
echo
$'Could not clone smilodon repo'
exit
6784783
fi
cd
$SMILODON_PATH
git checkout
$SMILODON_COMMIT
-b
$SMILODON_COMMIT
set_completion_param
"smilodon commit"
"
$SMILODON_COMMIT
"
sed
-i
's|https:|http:|g'
$SMILODON_PATH
/api/utilities.py
groupadd smilodon
useradd
-c
"Smilodon system account"
-d
$SMILODON_PATH
-m
-r
-g
smilodon smilodon
SMILODON_ONION_HOSTNAME
=
$(
add_onion_service smilodon 80
${
SMILODON_ONION_PORT
}
)
if
[
!
$SMILODON_SECRET_KEY
]
;
then
SMILODON_SECRET_KEY
=
"
$(
create_password 30
)$(
create_password 30
)$(
create_password 30
)$(
create_password 30
)
"
fi
if
[
-f
$IMAGE_PASSWORD_FILE
]
;
then
SMILODON_ADMIN_PASSWORD
=
"
$(
printf
`
cat
$IMAGE_PASSWORD_FILE
`
)
"
else
if
[
!
$SMILODON_ADMIN_PASSWORD
]
;
then
SMILODON_ADMIN_PASSWORD
=
"
$(
create_password
${
MINIMUM_PASSWORD_LENGTH
}
)
"
fi
fi
export
smilodon_domain_name
=
$SMILODON_ONION_HOSTNAME
export
secret_key
=
"
$SMILODON_SECRET_KEY
"
export
mongodb_username
=
'smilodon'
export
mongodb_password
=
"
$SMILODON_ADMIN_PASSWORD
"
export
smilodon_admin_address
=
$MY_EMAIL_ADDRESS
export
MAIL_SERVER
=
'localhost'
export
MAIL_PORT
=
25
function_check install_mongodb
install_mongodb smilodon
smilodon_create_database
pip3
install
-r
requirements.txt
if
[
!
"
$?
"
=
"0"
]
;
then
echo
$'Unable to install smilodon dependencies'
exit
87352835
fi
echo
'server {'
>
/etc/nginx/sites-available/smilodon
echo
" listen 127.0.0.1:
${
SMILODON_ONION_PORT
}
default_server;"
>>
/etc/nginx/sites-available/smilodon
echo
" server_name
$SMILODON_ONION_HOSTNAME
;"
>>
/etc/nginx/sites-available/smilodon
echo
''
>>
/etc/nginx/sites-available/smilodon
echo
' access_log /dev/null;'
>>
/etc/nginx/sites-available/smilodon
echo
' error_log /dev/null;'
>>
/etc/nginx/sites-available/smilodon
echo
''
>>
/etc/nginx/sites-available/smilodon
echo
' location / {'
>>
/etc/nginx/sites-available/smilodon
echo
' proxy_pass http://localhost:5000;'
>>
/etc/nginx/sites-available/smilodon
echo
' }'
>>
/etc/nginx/sites-available/smilodon
echo
'}'
>>
/etc/nginx/sites-available/smilodon
nginx_ensite smilodon
systemctl
enable
mongodb
systemctl restart mongodb
chown
-R
smilodon:smilodon
${
SMILODON_PATH
}
echo
'#!/bin/bash'
>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"cd
${
SMILODON_PATH
}
"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export smilodon_domain_name=
$SMILODON_ONION_HOSTNAME
"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export secret_key='
$SMILODON_SECRET_KEY
'"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export mongodb_username='smilodon'"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export mongodb_password='
$SMILODON_ADMIN_PASSWORD
'"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export smilodon_admin_address=
$MY_EMAIL_ADDRESS
"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export MAIL_SERVER='localhost'"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export MAIL_PORT=25"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"export API_NAME=
$SMILODON_ONION_HOSTNAME
"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
echo
"python3 run.py"
>>
${
SMILODON_PATH
}
/run_smilodon.sh
chmod
+x
${
SMILODON_PATH
}
/run_smilodon.sh
chown
smilodon:smilodon
${
SMILODON_PATH
}
/run_smilodon.sh
echo
'[Unit]'
>
/etc/systemd/system/smilodon.service
echo
'Description=Smilodon ActivityPub messenger'
>>
/etc/systemd/system/smilodon.service
echo
'After=network.target mongodb.service'
>>
/etc/systemd/system/smilodon.service
echo
'After=tor.service'
>>
/etc/systemd/system/smilodon.service
echo
''
>>
/etc/systemd/system/smilodon.service
echo
'[Service]'
>>
/etc/systemd/system/smilodon.service
echo
'User=smilodon'
>>
/etc/systemd/system/smilodon.service
echo
'Group=smilodon'
>>
/etc/systemd/system/smilodon.service
echo
"WorkingDirectory=
${
SMILODON_PATH
}
/"
>>
/etc/systemd/system/smilodon.service
echo
"ExecStart=
${
SMILODON_PATH
}
/run_smilodon.sh"
>>
/etc/systemd/system/smilodon.service
echo
'Restart=on-failure'
>>
/etc/systemd/system/smilodon.service
echo
'RestartSec=10'
>>
/etc/systemd/system/smilodon.service
echo
''
>>
/etc/systemd/system/smilodon.service
echo
'[Install]'
>>
/etc/systemd/system/smilodon.service
echo
'WantedBy=multi-user.target'
>>
/etc/systemd/system/smilodon.service
systemctl
enable
smilodon
systemctl daemon-reload
systemctl start smilodon
systemctl restart nginx
${
PROJECT_NAME
}
-pass
-u
$MY_USERNAME
-a
smilodon
-p
"
$SMILODON_ADMIN_PASSWORD
"
APP_INSTALLED
=
1
}
# NOTE: deliberately no exit 0
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment