Add optional compose for rust-synapse-compress-state
This commit is contained in:
34
compress_state_entrypoint.sh
Normal file
34
compress_state_entrypoint.sh
Normal file
@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
BINARY="/build/synapse_auto_compressor"
|
||||
REPO_DIR="/build/rust-synapse-compress-state"
|
||||
DB_PASS=$(cat /run/secrets/db_password)
|
||||
CONN="postgresql://synapse:${DB_PASS}@db:5432/synapse"
|
||||
CHUNK_SIZE="${STATE_COMPRESS_CHUNK_SIZE:-500}"
|
||||
CHUNKS="${STATE_COMPRESS_CHUNKS:-100}"
|
||||
INTERVAL="${STATE_COMPRESS_INTERVAL:-86400}"
|
||||
|
||||
# Build from source if binary doesn't exist
|
||||
if [ ! -f "$BINARY" ]; then
|
||||
echo "[compress-state] Binary not found, building from source..."
|
||||
apk add --no-cache git openssl-dev openssl-libs-static perl make musl-dev jemalloc-dev
|
||||
rm -rf "$REPO_DIR"
|
||||
git clone https://github.com/matrix-org/rust-synapse-compress-state "$REPO_DIR"
|
||||
cd "$REPO_DIR"
|
||||
cargo build --release -p synapse_auto_compressor
|
||||
cp target/release/synapse_auto_compressor "$BINARY"
|
||||
echo "[compress-state] Build complete"
|
||||
# Clean up source to save space
|
||||
rm -rf "$REPO_DIR"
|
||||
else
|
||||
echo "[compress-state] Using cached binary"
|
||||
fi
|
||||
|
||||
# Run compressor in a loop
|
||||
while true; do
|
||||
echo "[compress-state] Running at $(date)"
|
||||
"$BINARY" -p "$CONN" -c "$CHUNK_SIZE" -n "$CHUNKS" || echo "[compress-state] Error: $?"
|
||||
echo "[compress-state] Done. Sleeping ${INTERVAL}s"
|
||||
sleep "$INTERVAL"
|
||||
done
|
||||
Reference in New Issue
Block a user