sw1tch/restart_server.sh

80 lines
2.7 KiB
Bash
Executable file

#!/bin/bash
# File paths
BASE_PATH="/home/sij/hand_of_morpheus"
TOKEN_FILE="$BASE_PATH/.registration_token"
LOG_FILE="$BASE_PATH/token_refresh.log"
BACKUP_PATH="/home/sij/conduwuit_backup"
# Server/domain info
SERVER_DOMAIN="we2.ee"
CONTAINER_NAME="conduwuit"
CONTAINER_IMAGE="conduwuit:custom"
ADDRESS='["0.0.0.0", "::"]'
PORT=8008
# Auto-join room configuration
AUTO_JOIN_ROOMS='["#home:we2.ee","#server:we2.ee"]'
# Function to log with timestamp to both file and terminal
log() {
local message="$(date --iso-8601=seconds) $1"
echo "$message" >> "$LOG_FILE" # Write to log file
echo "$message" # Print to terminal
}
# Stop and remove existing container
docker stop "$CONTAINER_NAME" 2>/dev/null
docker rm "$CONTAINER_NAME" 2>/dev/null
# Launch new container
docker run -d \
-v "db:/var/lib/conduwuit/" \
-v "${TOKEN_FILE}:/.registration_token:ro" \
-v "${BACKUP_PATH}:/backup" \
-e CONDUWUIT_SERVER_NAME="$SERVER_DOMAIN" \
-e CONDUWUIT_DATABASE_PATH="/var/lib/conduwuit/conduwuit.db" \
-e CONDUWUIT_DATABASE_BACKUP_PATH="/backup" \
-e CONDUWUIT_ALLOW_REGISTRATION=true \
-e CONDUWUIT_REGISTRATION_TOKEN_FILE="/.registration_token" \
-e CONDUWUIT_ADDRESS="$ADDRESS" \
-e CONDUWUIT_PORT="$PORT" \
-e CONDUWUIT_NEW_USER_DISPLAYNAME_SUFFIX="" \
-e CONDUWUIT_AUTO_JOIN_ROOMS="$AUTO_JOIN_ROOMS" \
-e CONDUWUIT_FORGET_FORCED_UPON_LEAVE=true \
-e CONDUWUIT_DB_CACHE_CAPACITY_MB=1024 \
-e CONDUWUIT_DB_WRITE_BUFFER_CAPACITY_MB=256 \
-e CONDUWUIT_DB_POOL_WORKERS=64 \
-e CONDUWUIT_DB_POOL_WORKERS_LIMIT=128 \
-e CONDUWUIT_STREAM_AMPLIFICATION=8192 \
-e CONDUWUIT_MAX_REQUEST_SIZE=33554432 \
-e CONDUWUIT_CACHE_CAPACITY_MODIFIER=1.5 \
-e CONDUWUIT_ALLOW_FEDERATION=true \
-e CONDUWUIT_ALLOW_PUBLIC_ROOM_DIRECTORY_OVER_FEDERATION=true \
-e CONDUWUIT_ALLOW_PUBLIC_ROOM_DIRECTORY_WITHOUT_AUTH=true \
-e CONDUWUIT_WELL_KNOWN_CONN_TIMEOUT=30 \
-e CONDUWUIT_FEDERATION_TIMEOUT=600 \
-e CONDUWUIT_FEDERATION_IDLE_TIMEOUT=60 \
-e CONDUWUIT_SENDER_TIMEOUT=600 \
-e CONDUWUIT_SENDER_IDLE_TIMEOUT=360 \
-e CONDUWUIT_SENDER_SHUTDOWN_TIMEOUT=30 \
-e CONDUWUIT_DNS_CACHE_ENTRIES=1000 \
-e CONDUWUIT_DNS_MIN_TTL=300 \
-e CONDUWUIT_DNS_MIN_TTL_NXDOMAIN=600 \
-e CONDUWUIT_DNS_TCP_FALLBACK=true \
-e CONDUWUIT_IP_LOOKUP_STRATEGY=3 \
-e RUST_LOG="conduwuit=trace,reqwest=trace,hickory_proto=trace" \
--network host \
--name "$CONTAINER_NAME" \
--restart unless-stopped \
"$CONTAINER_IMAGE"
if [ $? -ne 0 ]; then
log "ERROR: Failed to create new conduwuit container"
exit 1
fi
log "Successfully recreated container \"$CONTAINER_NAME\" with image \"$CONTAINER_IMAGE\" and these parameters:"
log " - domain: $SERVER_DOMAIN"
log " - address: $ADDRESS"
log " - port: $PORT"
log " - auto-join rooms: $AUTO_JOIN_ROOMS"