#!/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