mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-05-06 20:03:08 +00:00
80 lines
2.4 KiB
Bash
80 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2025 community-scripts ORG
|
|
# Author: MickLesk (CanbiZ)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://komo.do/
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
msg_info "Installing Dependencies"
|
|
$STD apk add --no-cache ca-certificates openssl
|
|
msg_ok "Installed Dependencies"
|
|
|
|
msg_info "Setup Docker Repository"
|
|
$STD apk add --no-cache docker docker-cli docker-compose openrc
|
|
msg_ok "Setup Docker Repository"
|
|
|
|
msg_info "Enabling Docker Service"
|
|
$STD rc-update add docker boot
|
|
$STD service docker start
|
|
msg_ok "Enabled Docker Service"
|
|
|
|
echo "Choose the database for Komodo installation:"
|
|
echo "1) MongoDB (recommended)"
|
|
echo "2) SQLite"
|
|
echo "3) PostgreSQL"
|
|
read -rp "Enter your choice (default: 1): " DB_CHOICE
|
|
DB_CHOICE=${DB_CHOICE:-1}
|
|
|
|
case $DB_CHOICE in
|
|
1)
|
|
DB_COMPOSE_FILE="mongo.compose.yaml"
|
|
;;
|
|
2)
|
|
DB_COMPOSE_FILE="sqlite.compose.yaml"
|
|
;;
|
|
3)
|
|
DB_COMPOSE_FILE="postgres.compose.yaml"
|
|
;;
|
|
*)
|
|
echo "Invalid choice. Defaulting to MongoDB."
|
|
DB_COMPOSE_FILE="mongo.compose.yaml"
|
|
;;
|
|
esac
|
|
|
|
mkdir -p /opt/komodo
|
|
cd /opt/komodo
|
|
curl -fsSL "https://raw.githubusercontent.com/moghtech/komodo/main/compose/$DB_COMPOSE_FILE" -o "$(basename "$DB_COMPOSE_FILE")"
|
|
|
|
msg_info "Setup Komodo Environment"
|
|
curl -fsSL "https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env" -o "/opt/komodo/compose.env"
|
|
DB_PASSWORD=$(openssl rand -base64 16 | tr -d '/+=')
|
|
PASSKEY=$(openssl rand -base64 24 | tr -d '/+=')
|
|
WEBHOOK_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
|
|
JWT_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
|
|
|
|
sed -i "s/^KOMODO_DB_USERNAME=.*/KOMODO_DB_USERNAME=komodo_admin/" /opt/komodo/compose.env
|
|
sed -i "s/^KOMODO_DB_PASSWORD=.*/KOMODO_DB_PASSWORD=${DB_PASSWORD}/" /opt/komodo/compose.env
|
|
sed -i "s/^KOMODO_PASSKEY=.*/KOMODO_PASSKEY=${PASSKEY}/" /opt/komodo/compose.env
|
|
sed -i "s/^KOMODO_WEBHOOK_SECRET=.*/KOMODO_WEBHOOK_SECRET=${WEBHOOK_SECRET}/" /opt/komodo/compose.env
|
|
sed -i "s/^KOMODO_JWT_SECRET=.*/KOMODO_JWT_SECRET=${JWT_SECRET}/" /opt/komodo/compose.env
|
|
msg_ok "Setup Komodo Environment"
|
|
|
|
msg_info "Initialize Komodo"
|
|
$STD docker compose -p komodo -f "/opt/komodo/$DB_COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
|
msg_ok "Initialized Komodo"
|
|
|
|
motd_ssh
|
|
customize
|
|
|
|
msg_info "Cleaning up"
|
|
$STD apk cache clean
|
|
msg_ok "Cleaned"
|