@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user