50 lines
1.8 KiB
Bash
50 lines
1.8 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
## Bootstrap the local dev environment.
|
||
|
|
## Run after `docker compose -f docker-compose.dev.yaml up -d`
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
HOMESERVER="http://localhost:8008"
|
||
|
|
USERNAME="sol"
|
||
|
|
PASSWORD="soldevpassword"
|
||
|
|
SERVER_NAME="sunbeam.local"
|
||
|
|
|
||
|
|
echo "Waiting for Tuwunel..."
|
||
|
|
until curl -sf "$HOMESERVER/_matrix/client/versions" > /dev/null 2>&1; do
|
||
|
|
sleep 1
|
||
|
|
done
|
||
|
|
echo "Tuwunel is ready."
|
||
|
|
|
||
|
|
echo "Registering @sol:$SERVER_NAME..."
|
||
|
|
RESPONSE=$(curl -s -X POST "$HOMESERVER/_matrix/client/v3/register" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d "{
|
||
|
|
\"username\": \"$USERNAME\",
|
||
|
|
\"password\": \"$PASSWORD\",
|
||
|
|
\"auth\": {\"type\": \"m.login.dummy\"}
|
||
|
|
}")
|
||
|
|
|
||
|
|
ACCESS_TOKEN=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('access_token',''))" 2>/dev/null || true)
|
||
|
|
DEVICE_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('device_id',''))" 2>/dev/null || true)
|
||
|
|
|
||
|
|
if [ -z "$ACCESS_TOKEN" ]; then
|
||
|
|
echo "Registration failed (user may already exist). Trying login..."
|
||
|
|
RESPONSE=$(curl -s -X POST "$HOMESERVER/_matrix/client/v3/login" \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d "{
|
||
|
|
\"type\": \"m.login.password\",
|
||
|
|
\"identifier\": {\"type\": \"m.id.user\", \"user\": \"$USERNAME\"},
|
||
|
|
\"password\": \"$PASSWORD\"
|
||
|
|
}")
|
||
|
|
ACCESS_TOKEN=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['access_token'])")
|
||
|
|
DEVICE_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['device_id'])")
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "Add these to your .env or export them:"
|
||
|
|
echo ""
|
||
|
|
echo "export SOL_MATRIX_ACCESS_TOKEN=\"$ACCESS_TOKEN\""
|
||
|
|
echo "export SOL_MATRIX_DEVICE_ID=\"$DEVICE_ID\""
|
||
|
|
echo ""
|
||
|
|
echo "Then restart Sol: docker compose -f docker-compose.dev.yaml restart sol"
|