mnml/bin/install.sh
2019-07-15 20:38:04 +10:00

81 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# bless you chris and andy <3
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
MNML_PATH=$(realpath "$DIR/../")
MNML_CONF="/etc/mnml/mnml.conf"
if [ ! -f $MNML_CONF ]; then
echo "-----------------------------------------------"
echo "creating an env file in $MNML_CONF"
echo "-----------------------------------------------"
sudo useradd mnml -U --password $(openssl rand -hex 16)
CURRENT_USER=$(whoami)
sudo usermod -aG mnml $CURRENT_USER
sudo mkdir -p /etc/mnml/
echo "export MNML_USER=mnml" | sudo tee -a $MNML_CONF
echo "export MNML_PG_PASSWORD=\"$(openssl rand -hex 16)\"" | sudo tee -a $MNML_CONF
echo "export MNML_PG_HOST=\"localhost\"" | sudo tee -a $MNML_CONF
sudo chown -R mnml:mnml /etc/mnml/
fi
source $MNML_CONF
# DIRECTORY SETUP
# /var/lib/mnml
# contains img data, client builds
sudo mkdir -p /var/lib/mnml
sudo mkdir -p /var/lib/mnml/public/imgs
sudo mkdir -p /var/lib/mnml/client
sudo mkdir -p /var/lib/mnml/data
sudo chmod -R g+w /var/lib/mnml
sudo chmod -R g+s /var/lib/mnml
sudo setfacl -d -m group:mnml:rwx /var/lib/mnml
sudo chown -R $MNML_USER:$MNML_USER /var/lib/mnml
# /var/log/mnml
sudo mkdir -p /var/log/mnml
sudo chmod g+w /var/log/mnml
sudo chmod g+s /var/log/mnml
sudo setfacl -d -m group:mnml:rwx /var/log/mnml
sudo chown -R $MNML_USER:$MNML_USER /var/log/mnml
# /usr/local/mnml
sudo mkdir -p /usr/local/mnml
sudo mkdir -p /usr/local/mnml
sudo setfacl -d -m group:mnml:rwx /usr/local/mnml
sudo chmod -R g+w /usr/local/mnml
sudo chmod -R g+s /usr/local/mnml
sudo chown -R $MNML_USER:$MNML_USER /usr/local/mnml
# SERVICES
sudo mkdir -p /usr/local/systemd/system/
sudo cp $MNML_PATH/etc/systemd/system/mnml.service /usr/local/systemd/system/
# POSTGRES SETUP
sudo -u postgres createdb mnml
sudo -u postgres createuser --encrypted mnml
echo "DATABASE_URL=postgres://mnml:$MNML_PG_PASSWORD@$MNML_PG_HOST/mnml" | sudo tee -a /etc/mnml/server.conf
sudo -u postgres psql -c "alter user mnml with encrypted password '$MNML_PG_PASSWORD';"
cd $MNML_PATH/ops && npm run migrate
# NGINX
if [ ! -f $MNML_PATH/etc/nginx/sites-available/mnml.gg.nginx.conf ]; then
echo "-----------------------------------------------"
echo "using development nginx config"
echo "$MNML_PATH/etc/nginx/sites-available/mnml.gg.nginx.conf"
echo "-----------------------------------------------"
cp $MNML_PATH/etc/nginx/sites-available/mnml.gg.DEV.nginx.conf $MNML_PATH/etc/nginx/sites-available/mnml.gg.nginx.conf
fi
sudo cp $MNML_PATH/etc/nginx/sites-available/mnml.gg.nginx.conf /etc/nginx/sites-available
sudo ln -nfs /etc/nginx/sites-available/mnml.gg.nginx.conf /etc/nginx/sites-enabled/mnml.gg.nginx.conf