-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Happy new Year! Update Copyright to 2025 * Create new LXC: Komodo
- Loading branch information
Showing
3 changed files
with
207 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#!/usr/bin/env bash | ||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) | ||
# Copyright (c) 2021-2025 community-scripts ORG | ||
# Author: MickLesk | ||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE | ||
# Source: https://komo.do | ||
|
||
# App Default Values | ||
APP="Komodo" | ||
var_tags="docker" | ||
var_cpu="2" | ||
var_ram="2048" | ||
var_disk="10" | ||
var_os="debian" | ||
var_version="12" | ||
var_unprivileged="1" | ||
|
||
# App Output & Base Settings | ||
header_info "$APP" | ||
base_settings | ||
|
||
# Core | ||
variables | ||
color | ||
catch_errors | ||
|
||
function update_script() { | ||
header_info | ||
check_container_storage | ||
check_container_resources | ||
if [[ ! -d /opt/komodo ]]; then | ||
msg_error "No ${APP} Installation Found!" | ||
exit | ||
fi | ||
msg_info "Updating ${APP}" | ||
COMPOSE_FILE="" | ||
for file in *.compose.yaml; do | ||
if [[ "$file" != "compose.env" ]]; then | ||
COMPOSE_FILE="$file" | ||
break | ||
fi | ||
done | ||
|
||
if [[ -z "$COMPOSE_FILE" ]]; then | ||
msg_error "No valid compose file found in /opt/komodo!" | ||
exit 1 | ||
fi | ||
|
||
BACKUP_FILE="${COMPOSE_FILE}.bak_$(date +%Y%m%d_%H%M%S)" | ||
mv "$COMPOSE_FILE" "$BACKUP_FILE" || { | ||
msg_error "Failed to create backup of $COMPOSE_FILE!" | ||
exit 1 | ||
} | ||
|
||
GITHUB_URL="https://raw.githubusercontent.com/mbecker20/komodo/main/compose/$COMPOSE_FILE" | ||
wget -q -O "$COMPOSE_FILE" "$GITHUB_URL" || { | ||
msg_error "Failed to download $COMPOSE_FILE from GitHub!" | ||
mv "$BACKUP_FILE" "$COMPOSE_FILE" | ||
exit 1 | ||
} | ||
|
||
docker compose -p komodo -f "/opt/komodo/$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d &>/dev/null | ||
msg_ok "Updated ${APP}" | ||
} | ||
|
||
start | ||
build_container | ||
description | ||
|
||
msg_ok "Completed Successfully!\n" | ||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" | ||
echo -e "${INFO}${YW} Access it using the following URL:${CL}" | ||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9120${CL}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
#!/usr/bin/env bash | ||
|
||
# Copyright (c) 2021-2025 community-scripts ORG | ||
# Author: MickLesk | ||
# 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 apt-get install -y \ | ||
curl \ | ||
sudo \ | ||
mc \ | ||
ca-certificates | ||
msg_ok "Installed Dependencies" | ||
|
||
msg_info "Setup Docker Repository" | ||
install -m 0755 -d /etc/apt/keyrings | ||
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc | ||
chmod a+r /etc/apt/keyrings/docker.asc | ||
echo \ | ||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ | ||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ | ||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | ||
$STD apt-get update | ||
msg_ok "Setup Docker Repository" | ||
|
||
msg_info "Installing Docker" | ||
$STD apt-get install -y \ | ||
docker-ce \ | ||
docker-ce-cli \ | ||
containerd.io \ | ||
docker-buildx-plugin \ | ||
docker-compose-plugin | ||
msg_ok "Installed Docker" | ||
|
||
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 | ||
wget -q "https://raw.githubusercontent.com/mbecker20/komodo/main/compose/$DB_COMPOSE_FILE" | ||
|
||
|
||
msg_info "Setup Komodo Environment" | ||
wget -q -O /opt/komodo/compose.env https://raw.githubusercontent.com/mbecker20/komodo/main/compose/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/^DB_USERNAME=.*/DB_USERNAME=komodo_admin/" /opt/komodo/compose.env | ||
sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=${DB_PASSWORD}/" /opt/komodo/compose.env | ||
sed -i "s/^PASSKEY=.*/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 apt-get -y autoremove | ||
$STD apt-get -y autoclean | ||
msg_ok "Cleaned" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{ | ||
"name": "Komodo", | ||
"slug": "komodo", | ||
"categories": [ | ||
8 | ||
], | ||
"date_created": "2025-01-01", | ||
"type": "ct", | ||
"updateable": true, | ||
"privileged": false, | ||
"interface_port": 9120, | ||
"documentation": "https://komo.do/docs/intro", | ||
"website": "https://komo.do", | ||
"logo": "https://komo.do/img/logo512.png", | ||
"description": "Komodo is a build and deployment system that automates the creation of versioned Docker images from Git repositories and facilitates the deployment of Docker containers and Docker Compose setups. It provides features such as build automation triggered by Git pushes, deployment management, and monitoring of uptime and logs across multiple servers. The core API and associated agent are developed in Rust.", | ||
"install_methods": [ | ||
{ | ||
"type": "default", | ||
"script": "ct/komodo.sh", | ||
"resources": { | ||
"cpu": 2, | ||
"ram": 2048, | ||
"hdd": 10, | ||
"os": "Debian", | ||
"version": "12" | ||
} | ||
} | ||
], | ||
"default_credentials": { | ||
"username": null, | ||
"password": null | ||
}, | ||
"notes": [ | ||
{ | ||
"text": "After the initial installation: Enter your desired admin user and password and then click on Sign Up", | ||
"type": "info" | ||
} | ||
] | ||
} |