mnml/bin/build.sh
2019-07-09 14:12:32 +10:00

66 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# bless you chris and andy <3
DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
MNML_PATH=$(realpath "$DIR/../")
if [ ! -f $MNML_PATH/etc/mnml.env ]; then
echo "-----------------------------------------------"
echo "creating an env file in $MNML_PATH/etc/mnml.env"
echo "-----------------------------------------------"
echo "export MNML_USER=\"$(whoami)\"" >> $MNML_PATH/etc/mnml.env
echo "export MNML_PG_PASSWORD=\"$(openssl rand -base64 16)\"" >> $MNML_PATH/etc/mnml.env
echo "export MNML_PG_HOST=\"localhost\"" >> $MNML_PATH/etc/mnml.env
fi
source $MNML_PATH/etc/mnml.env
# DIRECTORY SETUP
sudo mkdir -p /opt/mnml
sudo chown $MNML_USER: /opt/mnml
sudo mkdir -p /var/lib/mnml
sudo chown $MNML_USER: /var/lib/mnml
mkdir -p /var/lib/mnml/public
sudo mkdir -p /var/log/mnml
sudo chown $MNML_USER: /var/log/mnml
sudo ln -nfs $MNML_PATH/current /opt/mnml
# SERVICES
sudo cp $MNML_PATH/etc/systemd/system/mnml.service /etc/systemd/system
# POSTGRES SETUP
sudo -u postgres dropdb mnml
sudo -u postgres createdb mnml
sudo -u postgres createuser --encrypted mnml
echo "DATABASE_URL=postgres://mnml:$MNML_PG_PASSWORD@$MNML_PG_HOST/mnml" > $MNML_PATH/server/.env
sudo -u postgres psql -c "alter user mnml with encrypted password '$MNML_PG_PASSWORD';"
cd $MNML_PATH/ops && npm run migrate
# RUST SETUP
echo "DATABASE_URL=postgres://mnml:$MNML_PG_PASSWORD@$MNML_PG_HOST/mnml" > $MNML_PATH/server/.env
# cargo build
# cp -r $MNML_PATH/server/target/release /opt/mnml/bin
# 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
# cd $MNML_PATH/client && npm run build
sudo service nginx restart