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