#!/bin/bash export SHELL="/bin/bash" cd /opt/misskey postgres-check() { POSTGRES_CHECK=$(ps aux | grep -i logical | head -1) if [[ "$POSTGRES_CHECK" = *"replication"* ]]; then echo "Postgres is running!" else echo "Postgres is not in Running yet!" sleep 2 postgres-check fi } misskey() { cd /opt/misskey npm install -g pnpm vite git submodule update --init pnpm install --frozen-lockfile NODE_ENV=production pnpm run build } database() { mkdir /run/postgresql mkdir -p $PG_DIR chown -R postgres:postgres /run/postgresql/ chown -R postgres:postgres /var/lib/postgresql chown -R postgres:postgres /var/log/postgresql chmod 0700 $PG_DIR ls $PG_DIR su postgres -s $SHELL -lc "$PG_BIN/initdb --auth-host=trust -D $PG_DIR" cp -f /etc/postgresql.conf $PG_DIR cp -f /etc/pg_hba.conf $PG_DIR chown -R postgres:postgres $PG_DIR su postgres -s $SHELL -lc "$PG_BIN/pg_ctl start -D $PG_DIR" & postgres-check echo "SELECT pg_reload_conf();" | su postgres -s /bin/bash -lc "psql " echo "create user root with encrypted password 'sql';" | su postgres -s $SHELL -lc psql echo "ALTER ROLE root SUPERUSER;" | su postgres -s $SHELL -lc psql echo "CREATE DATABASE misskey with template = template0 OWNER = root ENCODING = 'UTF8';" | su postgres -s $SHELL -lc psql echo "CREATE EXTENSION IF NOT EXISTS citext;" | PGPASSWORD=sql psql -U root misskey echo "CREATE EXTENSION IF NOT EXISTS pg_trgm;" | PGPASSWORD=sql psql -U root misskey echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";" | PGPASSWORD=sql psql -U root misskey } database misskey openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=US/ST=CO/L=Denver/O=$ENDPOINT/CN=$ENDPOINT" -keyout /etc/ssl/certs/privkey.key -out /etc/ssl/certs/fullchain.crt sed -i "s/ENDPOINT/${ENDPOINT}/g" /opt/misskey/.config/default.yml sed -i "s/misskeyDATABASE/${DB_NAME}/g" /opt/misskey/.config/default.yml sed -i "s/example-misskey-user/${DB_USERNAME}/g" /opt/misskey/.config/default.yml sed -i "s/example-misskey-pass/${DB_PASSWORD}/g" /opt/misskey/.config/default.yml sed -i "s/ENDPOINT/${ENDPOINT}/g" /etc/nginx/sites-enabled/misskey.conf cp -f /usr/share/zoneinfo/US/Mountain /etc/localtime yarn run init touch /configured.txt