61 lines
2.2 KiB
Bash
61 lines
2.2 KiB
Bash
#!/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
|
|
pnpm run init
|
|
}
|
|
|
|
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
|
|
|
|
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
|
|
cd /opt/misskey
|
|
misskey
|
|
touch /configured.txt
|