as
RN APK Build / build (push) Successful in 20m48s

This commit is contained in:
NishantRajputRN
2026-05-13 16:28:30 +05:30
parent 92d04988f4
commit e4349e8459
+22 -2
View File
@@ -6,6 +6,7 @@
# Usage (from repo root or any path): # Usage (from repo root or any path):
# bash scripts/setup-clickhouse.sh # bash scripts/setup-clickhouse.sh
# bash scripts/setup-clickhouse.sh --purge-existing # one line; do not split after "--" # bash scripts/setup-clickhouse.sh --purge-existing # one line; do not split after "--"
# bash scripts/setup-clickhouse.sh --listen-all-interfaces # HTTP 8123 / native 9000 on 0.0.0.0 (see firewall)
# CLICKHOUSE_CHANNEL=lts bash scripts/setup-clickhouse.sh # CLICKHOUSE_CHANNEL=lts bash scripts/setup-clickhouse.sh
# #
# Env: # Env:
@@ -73,13 +74,16 @@ CLICKHOUSE_LIST="/etc/apt/sources.list.d/clickhouse.list"
KEYRING="/usr/share/keyrings/clickhouse-keyring.gpg" KEYRING="/usr/share/keyrings/clickhouse-keyring.gpg"
CHANNEL="${CLICKHOUSE_CHANNEL:-stable}" CHANNEL="${CLICKHOUSE_CHANNEL:-stable}"
PURGE_EXISTING=false PURGE_EXISTING=false
LISTEN_ALL_INTERFACES=false
for arg in "$@"; do for arg in "$@"; do
case "$arg" in case "$arg" in
--purge-existing) PURGE_EXISTING=true ;; --purge-existing) PURGE_EXISTING=true ;;
--listen-all-interfaces) LISTEN_ALL_INTERFACES=true ;;
-h|--help) -h|--help)
echo "Usage: $0 [--purge-existing]" echo "Usage: $0 [--purge-existing] [--listen-all-interfaces]"
echo " --purge-existing apt purge existing clickhouse* packages before installing (destructive for old installs)." echo " --purge-existing apt purge existing clickhouse* packages before installing (destructive for old installs)."
echo " --listen-all-interfaces bind HTTP (8123) and native (9000) on 0.0.0.0 — open cloud NSG/ufw + use strong passwords."
echo " Env: CLICKHOUSE_CHANNEL=stable|lts (default: stable), WAIT_FOR_APT_LOCK_SEC (default: 900)" echo " Env: CLICKHOUSE_CHANNEL=stable|lts (default: stable), WAIT_FOR_APT_LOCK_SEC (default: 900)"
exit 0 exit 0
;; ;;
@@ -140,6 +144,19 @@ echo "==> Enabling and starting clickhouse-server..."
sudo systemctl enable --now clickhouse-server sudo systemctl enable --now clickhouse-server
sudo systemctl --no-pager --full status clickhouse-server || true sudo systemctl --no-pager --full status clickhouse-server || true
if [[ "$LISTEN_ALL_INTERFACES" == "true" ]]; then
echo "==> Binding ClickHouse to all IPv4 interfaces (0.0.0.0) for remote HTTP/native..."
sudo tee /etc/clickhouse-server/config.d/99-listen-all-interfaces.xml >/dev/null <<'EOF'
<clickhouse>
<!-- Default install often listens only on loopback; this allows e.g. http://SERVER_IP:8123 from other hosts. -->
<listen_host>0.0.0.0</listen_host>
</clickhouse>
EOF
sudo systemctl restart clickhouse-server
sudo systemctl --no-pager --full status clickhouse-server || true
echo " Open inbound TCP 8123 (and 9000 if you use native clients) in your cloud NSG / security group and ufw."
fi
echo "==> Verifying..." echo "==> Verifying..."
if clickhouse-client -q "SELECT version(), 1" 2>/dev/null; then if clickhouse-client -q "SELECT version(), 1" 2>/dev/null; then
echo "ClickHouse responded OK." echo "ClickHouse responded OK."
@@ -151,4 +168,7 @@ fi
echo "" echo ""
echo "Done. Client: clickhouse-client | HTTP default :8123 | native default :9000" echo "Done. Client: clickhouse-client | HTTP default :8123 | native default :9000"
echo "Optional: open ports in ufw / cloud NSG only if you need remote access." if [[ "$LISTEN_ALL_INTERFACES" != "true" ]]; then
echo "Remote browser/API to this host: re-run with --listen-all-interfaces or add listen_host in /etc/clickhouse-server/config.d/"
echo " (default is often localhost-only, so http://PUBLIC_IP:8123 will not work until you do)."
fi