Add installation scripts

This commit is contained in:
Aaron 2019-03-29 03:33:14 +00:00 committed by Kevin
parent 7048db42bd
commit df8a3d39bc
15 changed files with 293 additions and 44 deletions

83
install/install_arch.sh Executable file
View file

@ -0,0 +1,83 @@
#!/bin/bash
EXECUTABLE='/usr/bin/onionr'
OUTPUT_DIR='/usr/share/onionr'
DATA_DIR='/etc/onionr'
LOG_DIR='/var/log/onionr'
BRANCH='master'
# setup error handlers
set -e
trap "echo -e '\033[31mOnionr installation failed.\033[0m' >&2; exit 1337" ERR INT TERM
# require root permissions
if ! [ $(id -u) = 0 ]; then
echo 'This script must be run as root.' >&2
exit 1337
fi
# install basic dependencies
pacman --needed --noconfirm -S git curl python python-pip tor
# get the repository
rm -rf "$OUTPUT_DIR" "$DATA_DIR" "$LOG_DIR"
git clone https://gitlab.com/beardog/onionr "$OUTPUT_DIR"
cd "$OUTPUT_DIR"
git checkout "$BRANCH"
# install python dependencies
pip3 install --no-input -r "$OUTPUT_DIR/requirements.txt" --require-hashes
# create nologin onionr user if not exists
id -u onionr &>/dev/null || useradd -r -s /sbin/nologin onionr
chmod 755 "$OUTPUT_DIR"
chown -R onionr:onionr "$OUTPUT_DIR"
# create directories
mkdir -p "$OUTPUT_DIR/onionr/data" "$LOG_DIR"
mv "$OUTPUT_DIR/onionr/data" "$DATA_DIR"
chmod -R 750 "$DATA_DIR" "$LOG_DIR"
chown -R onionr:onionr "$DATA_DIR" "$LOG_DIR"
# create executable
cp "$OUTPUT_DIR/install/onionr" "$EXECUTABLE"
chmod 755 "$EXECUTABLE"
chown root:root "$EXECUTABLE"
# create systemd service
SERVICE='/etc/systemd/system/onionr.service'
cp "$OUTPUT_DIR/install/onionr.service" "$SERVICE"
chmod 644 "$SERVICE"
chown root:root "$SERVICE"
systemctl daemon-reload
systemctl enable onionr
systemctl start onionr
# pretty header thing
"$EXECUTABLE" --header 'Onionr successfully installed.'
# and we're good!
trap - ERR
exit 0

83
install/install_debian.sh Executable file
View file

@ -0,0 +1,83 @@
#!/bin/bash
EXECUTABLE='/usr/bin/onionr'
OUTPUT_DIR='/usr/share/onionr'
DATA_DIR='/etc/onionr'
LOG_DIR='/var/log/onionr'
BRANCH='master'
# setup error handlers
set -e
trap "echo -e '\033[31mOnionr installation failed.\033[0m' >&2; exit 1337" ERR INT TERM
# require root permissions
if ! [ $(id -u) = 0 ]; then
echo 'This script must be run as root.' >&2
exit 1337
fi
# install basic dependencies
apt -y install git curl python3.7 python3-pip python3-setuptools tor
# get the repository
rm -rf "$OUTPUT_DIR" "$DATA_DIR" "$LOG_DIR"
git clone https://gitlab.com/beardog/onionr "$OUTPUT_DIR"
cd "$OUTPUT_DIR"
git checkout "$BRANCH"
# install python dependencies
python3.7 -m pip install --no-input -r "$OUTPUT_DIR/requirements.txt" --require-hashes
# create nologin onionr user if not exists
id -u onionr &>/dev/null || useradd -r -s /sbin/nologin onionr
chmod 755 "$OUTPUT_DIR"
chown -R onionr:onionr "$OUTPUT_DIR"
# create directories
mkdir -p "$OUTPUT_DIR/onionr/data" "$LOG_DIR"
mv "$OUTPUT_DIR/onionr/data" "$DATA_DIR"
chmod -R 750 "$DATA_DIR" "$LOG_DIR"
chown -R onionr:onionr "$DATA_DIR" "$LOG_DIR"
# create executable
cp "$OUTPUT_DIR/install/onionr" "$EXECUTABLE"
chmod 755 "$EXECUTABLE"
chown root:root "$EXECUTABLE"
# create systemd service
SERVICE='/etc/systemd/system/onionr.service'
cp "$OUTPUT_DIR/install/onionr.service" "$SERVICE"
chmod 644 "$SERVICE"
chown root:root "$SERVICE"
systemctl daemon-reload
systemctl enable onionr
systemctl start onionr
# pretty header thing
"$EXECUTABLE" --header 'Onionr successfully installed.'
# and we're good!
trap - ERR
exit 0

12
install/onionr Executable file
View file

@ -0,0 +1,12 @@
#!/bin/sh
set -e
[ "root" != "$USER" ] && exec sudo $0 "$@"
export OUTPUT_DIR=${OUTPUT_DIR:=/usr/share/onionr}
export ONIONR_HOME=${ONIONR_HOME:=/etc/onionr}
export LOG_DIR=${LOG_DIR:=/var/log/onionr}
cd "$OUTPUT_DIR"
exec su onionr -s /bin/sh -c "./onionr.sh ""$@"""

15
install/onionr.service Normal file
View file

@ -0,0 +1,15 @@
[Unit]
Description=Onionr Daemon
Requires=network.target tor.service
After=network.target tor.service
[Service]
Environment="DATA_DIR=/usr/share/onionr"
Environment="LOG_DIR=/var/log/onionr/"
ExecStart=/usr/bin/onionr --start
ExecStop=/usr/bin/onionr --stop
Type=simple
Restart=always
[Install]
WantedBy=tor.service