Compare commits

...

6 Commits

Author SHA1 Message Date
github-actions[bot]
cf3f2d912e Update CHANGELOG.md 2025-01-01 21:55:24 +00:00
CanbiZ
99e06341b3
New Script: Komodo (#1167)
* Happy new Year! Update Copyright to 2025

* Create  new LXC: Komodo
2025-01-01 22:55:11 +01:00
community-scripts-pr-app[bot]
ce27930f9d
Update CHANGELOG.md (#1161)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 18:29:33 +01:00
Sébastiaan
b8671b97af
Correctly check for changed files in Shellcheck workflow (#1156) 2025-01-01 18:26:23 +01:00
Sébastiaan
7c0f85d0b3
Fix Script Homepage: add version during build step (#1155)
* Make variables exported

* Auto-yes update-browserslist-db
2025-01-01 18:25:46 +01:00
community-scripts-pr-app[bot]
ff660eaabb
Update CHANGELOG.md (#1151)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 13:45:40 +01:00
7 changed files with 224 additions and 2 deletions

View File

@ -20,7 +20,11 @@ jobs:
- name: Get changed files
id: changes
run: |
echo "::set-output name=files::$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep '\.sh$')"
if ${{ github.event_name == 'pull_request' }}; then
echo "files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT
else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
fi
- name: Run ShellCheck
if: steps.changes.outputs.files != ''

View File

@ -22,11 +22,14 @@ Do not break established syntax in this file, as it is automatically updated by
### ✨ New Scripts
- New Script: Komodo [@MickLesk](https://github.com/MickLesk) ([#1167](https://github.com/community-scripts/ProxmoxVE/pull/1167))
- New Script: Firefly [@quantumryuu](https://github.com/quantumryuu) ([#616](https://github.com/community-scripts/ProxmoxVE/pull/616))
- New Script: Semaphore [@quantumryuu](https://github.com/quantumryuu) ([#596](https://github.com/community-scripts/ProxmoxVE/pull/596))
### 🚀 Updated Scripts
- Fix Script Homepage: add version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1155](https://github.com/community-scripts/ProxmoxVE/pull/1155))
- Happy new Year! Update Copyright to 2025 [@MickLesk](https://github.com/MickLesk) ([#1150](https://github.com/community-scripts/ProxmoxVE/pull/1150))
- Update Kernel-Clean to new Version & Bugfixing [@MickLesk](https://github.com/MickLesk) ([#1147](https://github.com/community-scripts/ProxmoxVE/pull/1147))
- Fix chromium installation for ArchiveBox [@tkunzfeld](https://github.com/tkunzfeld) ([#1140](https://github.com/community-scripts/ProxmoxVE/pull/1140))
@ -34,6 +37,10 @@ Do not break established syntax in this file, as it is automatically updated by
- Fix Category of Semaphore [@MickLesk](https://github.com/MickLesk) ([#1148](https://github.com/community-scripts/ProxmoxVE/pull/1148))
### 🧰 Maintenance
- Correctly check for changed files in Shellcheck workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1156](https://github.com/community-scripts/ProxmoxVE/pull/1156))
## 2024-12-31 - Happy new Year! 🎉✨
### Changed

View File

@ -50,8 +50,10 @@ function update_script() {
cp -r homepage-${RELEASE}/* /opt/homepage/
rm -rf homepage-${RELEASE}
cd /opt/homepage
npx update-browserslist-db@latest >/dev/null 2>&1
npx --yes update-browserslist-db@latest >/dev/null 2>&1
pnpm install >/dev/null 2>&1
export NEXT_PUBLIC_VERSION="v$RELEASE"
export NEXT_PUBLIC_REVISION="source"
pnpm build >/dev/null 2>&1
systemctl start homepage
echo "${RELEASE}" >/opt/${APP}_version.txt

73
ct/komodo.sh Normal file
View File

@ -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}"

View File

@ -43,6 +43,8 @@ rm -rf homepage-${RELEASE}
cd /opt/homepage
cp /opt/homepage/src/skeleton/* /opt/homepage/config
$STD pnpm install
export NEXT_PUBLIC_VERSION="v$RELEASE"
export NEXT_PUBLIC_REVISION="source"
$STD pnpm build
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Homepage v${RELEASE}"

95
install/komodo-install.sh Normal file
View File

@ -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"

39
json/komodo.json Normal file
View File

@ -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"
}
]
}