unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1#!/bin/bash
2
3# run this file from WAFRN root directory, e.g.
4#
5# $ ./install/env_secret_setup.sh
6
7export JWT_SECRET="$(openssl rand -base64 64 | tr -d '\n')"
8export POSTGRES_PASSWORD="$(openssl rand -base64 24 | tr '+/' '_-')"
9export PDS_JWT_SECRET="$(openssl rand --hex 16)"
10export PDS_ADMIN_PASSWORD="$(openssl rand -base64 24 | tr '+/' '_-')"
11export POSTGRES_METRICS_PASSWORD="$(openssl rand -base64 24 | tr '+/' '_-')"
12export PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX="$(openssl ecparam --name secp256k1 --genkey --noout --outform DER | tail --bytes=+8 | head --bytes=32 | xxd --plain --cols 32)"
13
14VAPID_KEYS="$(docker run -e NPM_CONFIG_UPDATE_NOTIFIER=false packageless/npx:latest --yes web-push generate-vapid-keys --json)"
15
16export WEBPUSH_PRIVATE="$(echo "$VAPID_KEYS" | jq -r .privateKey)"
17export WEBPUSH_PUBLIC="$(echo "$VAPID_KEYS" | jq -r .publicKey)"
18export WEBPUSH_EMAIL="mailto:$ADMIN_EMAIL"
19
20# this might be set earlier
21if [ -z "${ADMIN_PASSWORD}" ]; then
22 export ADMIN_PASSWORD="$(openssl rand -base64 24 | tr '+/' '_-')"
23fi
24
25if [ -z "${GF_SECURITY_ADMIN_PASSWORD}" ]; then
26 export GF_SECURITY_ADMIN_PASSWORD="$(openssl rand -base64 24 | tr '+/' '_-')"
27fi
28
29cp .env.example .env
30
31perl -pi -e 's/^([_A-Z0-9]+)=(.*)$/$1."='"'"'".($ENV{$1}||$2)."'"'"'"/ge' .env