From 8859c9be413ebaaf010d02f7f2d897c18df9b135 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Thu, 10 Jul 2025 15:29:16 +0200 Subject: [PATCH] rybbit --- ct/rybbit.sh | 42 ++++++++++++++++++++++ install/rybbit-install.sh | 76 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 ct/rybbit.sh create mode 100644 install/rybbit-install.sh diff --git a/ct/rybbit.sh b/ct/rybbit.sh new file mode 100644 index 00000000..e9164be4 --- /dev/null +++ b/ct/rybbit.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE +# Source: https://github.com/rybbit-io/rybbit + +APP="Rybbit" +var_tags="${var_tags:-analytics}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-5}" +var_os="${var_os:-debian}" +var_version="${var_version:-12}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + if [[ ! -d /var ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + msg_info "Updating $APP LXC" + $STD apt-get update + $STD apt-get -y upgrade + msg_ok "Updated $APP LXC" + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!" +msg_custom "🚀" "${GN}" "${APP} setup has been successfully initialized!" diff --git a/install/rybbit-install.sh b/install/rybbit-install.sh new file mode 100644 index 00000000..e0af122d --- /dev/null +++ b/install/rybbit-install.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE +# Source: https://github.com/rybbit-io/rybbit + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt-get install -y \ + caddy \ + apt-transport-https \ + ca-certificates +msg_ok "Installed Dependencies" + +PG_VERSION=17 setup_postgresql +NODE_VERSION="20" NODE_MODULE="next" setup_nodejs + +msg_info "Setup Clickhouse Repository" +curl -fsSL 'https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key' | sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg +ARCH=$(dpkg --print-architecture) +echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg arch=${ARCH}] https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list +$STD apt-get update +$STD apt-get install -y clickhouse-server clickhouse-client +$STD systemctl enable --now clickhouse-server +sleep 3 +msg_ok "Set up Clickhouse Repository" + +msg_info "Setting up Clickhouse Database" +CLICKHOUSE_DB="${CLICKHOUSE_DB:-rybbit_db}" +CLICKHOUSE_USER="${CLICKHOUSE_USER:-rybbit}" +CLICKHOUSE_PASS="${CLICKHOUSE_PASS:-$(openssl rand -base64 18 | cut -c1-13)}" +CLICKHOUSE_HOST="localhost" + +clickhouse client --query "CREATE DATABASE IF NOT EXISTS $CLICKHOUSE_DB" +clickhouse client --query="CREATE USER IF NOT EXISTS $CLICKHOUSE_USER IDENTIFIED WITH plaintext_password BY '$CLICKHOUSE_PASS'" +clickhouse client --query="GRANT ALL ON $CLICKHOUSE_DB.* TO $CLICKHOUSE_USER" +#sed -i 's|default|read_only|' /etc/clickhouse-server/users.xml +#sed -i 's||DISABLED|' /etc/clickhouse-server/users.xml +$STD systemctl restart clickhouse-server +msg_ok "Set up Clickhouse Database" + +msg_info "Setting up PostgreSQL Database" +DB_NAME=rybbit_db +DB_USER=rybbit +DB_PASS="$(openssl rand -base64 18 | cut -c1-13)" +APP_SECRET=$(openssl rand -base64 32) +$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" +$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;" +$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';" +$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';" +$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'" +{ + echo "Rybbit-Credentials" + echo "Rybbit Database User: $DB_USER" + echo "Rybbit Database Password: $DB_PASS" + echo "Rybbit Database Name: $DB_NAME" +} >>~/rybbit.creds +msg_ok "Set up PostgreSQL Database" + +fetch_and_deploy_gh_release "rybbit" "rybbit-io/rybbit" "tarball" "latest" "/opt/rybbit" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned"