mirror of
https://github.com/PostHog/posthog.git
synced 2024-11-30 19:41:46 +01:00
eaa169100a
* Add setting for handing off process_event_ee to plugin server * Add StatsD settings to KEYS * bin/plugin-server → start-plugin-server & docker-plugin-server * Simplify to only add docker-plugin-server * Bring back original comment * Turn down verbosity of plugin server install * Remove redundant if * Fix comment * Remove lone newline * Roll back unsafe script changes * Simplify dockerized plugins * Add some depends_on * Clarify HAND_OFF_INGESTION env var * Use posthog-plugin-server 1.0.0-alpha.1 * Enhance bin/plugin-server and rm bin/docker-plugin-server * Move around PLUGIN_SERVER_INGESTION_HANDOFF ifs * Use posthog-plugin-server@1.0.0-alpha.2 * Support kafka+ssl:// in plugin-server * Produce to topic events_ingestion_handoff for plugin server * Use posthog-plugin-server@1.0.0-alpha.3 * Don't import Kafka topics in FOSS * Use @posthog/plugin-server * Update yarn.lock * Add commands for external ClickHouse setup/teardown * Actually delete test CH teardown command * ClickhouseTestRunner.setup_test_environment() in setup_test_clickhouse * Rework test setup script to work with Postgres too * Restore master plugins dir for merge * Unset PLUGIN_SERVER_INGESTION_HANDOFF in docker-compose.ch.yml * Fix unimportant typo * Build log_event data dict only once * Make it clear in bin/plugin-server help that it's bin * Space space
66 lines
2.2 KiB
Bash
Executable File
66 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
while test $# -gt 0; do
|
|
case "$1" in
|
|
-h|--help)
|
|
echo "USAGE:"
|
|
echo " bin/plugin-server [FLAGS]"
|
|
echo " "
|
|
echo "FLAGS:"
|
|
echo " -h, --help Print this help information."
|
|
echo " --no-restart-loop Run without restart loop. Recommended when deferring resiliency to e.g. docker-compose."
|
|
exit 0
|
|
;;
|
|
--no-restart-loop)
|
|
NO_RESTART_LOOP='true'
|
|
shift
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ -n $POSTHOG_DB_NAME ]]; then
|
|
[[ -n $POSTHOG_DB_PASSWORD ]] && PASSWORD_COMPONENT=":$POSTHOG_DB_PASSWORD"
|
|
export DATABASE_URL="postgres://${POSTHOG_DB_USER:-"postgres"}${PASSWORD_COMPONENT}@${POSTHOG_POSTGRES_HOST:-"localhost"}:${POSTHOG_POSTGRES_PORT:-"5432"}/${POSTHOG_DB_NAME}"
|
|
fi
|
|
|
|
export BASE_DIR=$(dirname $(dirname "$PWD/${0#./}"))
|
|
# Crudely extract netlocs by removing "kafka://" in a compatibility approach
|
|
export KAFKA_HOSTS=${KAFKA_HOSTS:-$(echo $KAFKA_URL | sed -e "s/kafka\(\+ssl\)\{0,1\}:\/\///g")}
|
|
# Check PRIMARY_DB in a compatibility approach
|
|
export KAFKA_ENABLED=${KAFKA_ENABLED:-$([[ $PRIMARY_DB = "clickhouse" ]] && echo "true" || echo "false")}
|
|
|
|
# On _Heroku_, the $WEB_CONCURRENCY env contains suggested number of workers per dyno.
|
|
# Unfortunately we are running a NodeJS app, yet get the value for the "python" buildpack.
|
|
# Thus instead of using this env directly, calculate the real concurrency from $DYNO_RAM.
|
|
# Python: https://github.com/heroku/heroku-buildpack-python/blob/main/vendor/WEB_CONCURRENCY.sh
|
|
# NodeJS: https://devcenter.heroku.com/articles/node-concurrency#common-runtime
|
|
if [[ -n $DYNO_RAM ]]; then
|
|
# One worker for 512MB of RAM, rounding up
|
|
export WORKER_CONCURRENCY=$(( ($DYNO_RAM - 1) / 512 + 1 ))
|
|
fi
|
|
|
|
cd plugins
|
|
|
|
echo "🧐 Verifying installed packages..."
|
|
yarn --frozen-lockfile
|
|
if [ $? -ne 0 ]; then
|
|
echo "💥 Verification failed!"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -n $NO_RESTART_LOOP ]]; then
|
|
echo "▶️ Starting plugin server..."
|
|
yarn start
|
|
else
|
|
echo "🔁 Starting plugin server in a resiliency loop..."
|
|
while true; do
|
|
yarn start
|
|
echo "💥 Plugin server crashed!"
|
|
echo "⌛️ Waiting 2 seconds before restarting..."
|
|
sleep 2
|
|
done
|
|
fi
|