Skip to content

Add Kener installation script - #1432

Closed
danielrydl wants to merge 9 commits into
community-scripts:mainfrom
danielrydl:add/kener
Closed

Add Kener installation script#1432
danielrydl wants to merge 9 commits into
community-scripts:mainfrom
danielrydl:add/kener

Conversation

@danielrydl

@danielrydl danielrydl commented Feb 7, 2026

Copy link
Copy Markdown

✍️ Description

Added a fully functional Kener installation script for ProxmoxVE LXC containers in Docker. The script installs Docker, creates the required folder structure, generates a .env file with secret keys, sets up PostgreSQL, creates a Docker Compose file for Kener, and starts the containers.

✅ Prerequisites

  • Self-review completed – Code follows project standards.
  • Tested thoroughly – Changes work as expected.
  • No breaking changes – Existing functionality remains intact.
  • No security risks – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

🛠️ Type of Change

  • 🐞 Bug fix – Resolves an issue without breaking functionality.
  • New feature – Adds new, non-breaking functionality.
  • 💥 Breaking change – Alters existing functionality in a way that may require updates.
  • 🆕 New script – A fully functional and tested script or script set.
  • 🌍 Website update – Changes to website-related JSON files or metadata.
  • 🔧 Refactoring / Code Cleanup – Improves readability or maintainability without changing functionality.
  • 📝 Documentation update – Changes to README, AppName.md, CONTRIBUTING.md, or other docs.

🔍 Code & Security Review

  • Follows Code_Audit.md & CONTRIBUTING.md guidelines
  • Uses correct script structure (AppName.sh, AppName-install.sh, AppName.json)
  • No hardcoded credentials

📋 Images

image image

📦 Application Requirements

Required for 🆕 New script submissions.
Pull requests that do not meet these requirements may be closed without review.

  • The application is at least 6 months old
  • The application is actively maintained
  • The application has 600+ GitHub stars
  • Official release tarballs are published
  • I understand that not all scripts will be accepted due to various reasons and criteria by the community-scripts ORG

Initial script for Kener setup and update functionality.
This script installs Kener in a ProxmoxVE container, setting up Docker and the necessary environment.
Added JSON configuration for Kener monitoring platform.
@danielrydl
danielrydl requested review from a team as code owners February 7, 2026 23:38
@greptile-apps

greptile-apps Bot commented Feb 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Overview

Greptile Summary

This PR adds a complete Kener installation script set for ProxmoxVE LXC containers. Kener is deployed via Docker Compose with PostgreSQL as the database backend. The implementation includes all three required files (ct/kener.sh, install/kener-install.sh, and frontend/public/json/kener.json).

Key changes:

  • Added container configuration script with update functionality
  • Implemented Docker-based installation with PostgreSQL database
  • Generated proper secret keys for security
  • Included comprehensive JSON metadata with proper documentation

Issues found:

  • Missing # Author: line in ct/kener.sh header (required by project standards)
  • Missing verb_ip6 call in install/kener-install.sh (required initialization step)
  • Reinstalling preinstalled packages (ca-certificates, curl) wastes build time
  • Heredoc syntax should have delimiter before output redirection (project convention)
  • Using apt-get instead of apt in one location
  • Hardcoded timezone Europe/Prague should be configurable
  • Hardcoded Debian version bookworm should use dynamic codename

All issues are non-critical style/consistency violations that should be fixed for project compliance.

Confidence Score: 4/5

  • This PR is safe to merge after addressing style and consistency issues
  • The implementation is functionally complete and follows the core architecture requirements (all three files present, proper structure, security considerations with generated secrets). However, there are multiple style violations that go against project conventions: missing header elements, incorrect heredoc syntax, reinstalling preinstalled packages, and hardcoded configuration values. These are all non-breaking issues that should be fixed for consistency but don't affect functionality or introduce security risks.
  • Pay close attention to install/kener-install.sh which has the most style violations that need correction

Important Files Changed

Filename Overview
ct/kener.sh Container setup script with proper structure and update function, missing author attribution in header
install/kener-install.sh Installation script with Docker setup, multiple style issues including missing verb_ip6, heredoc syntax, hardcoded values, and preinstalled packages being reinstalled
frontend/public/json/kener.json Properly structured JSON metadata file with all required fields and correct logo CDN format

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, 10 comments

Edit Code Review Agent Settings | Greptile

Comment thread ct/kener.sh
Comment thread install/kener-install.sh
Comment thread install/kener-install.sh
Comment thread install/kener-install.sh Outdated
Comment thread install/kener-install.sh
update_os

msg_info "Installing base dependencies"
$STD apt update

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use apt instead of apt update for consistency

Suggested change
$STD apt update
$STD apt update

Context Used: Rule from dashboard - What: Use apt instead of apt-get in scripts and documentation.

Why: apt provides a stable CLI... (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment thread install/kener-install.sh
Comment on lines +36 to +37
$STD apt update
$STD apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use apt instead of apt-get for consistency

Suggested change
$STD apt update
$STD apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
$STD apt update
$STD apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Context Used: Rule from dashboard - What: Use apt instead of apt-get in scripts and documentation.

Why: apt provides a stable CLI... (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment thread install/kener-install.sh
Comment on lines +26 to +32
cat <<EOF > /etc/apt/sources.list.d/docker.sources
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heredoc delimiter should come before the output redirection

Suggested change
cat <<EOF > /etc/apt/sources.list.d/docker.sources
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
cat <<EOF > /etc/apt/sources.list.d/docker.sources
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

Context Used: Rule from dashboard - What: Heredoc syntax must come before the output redirection in cat commands.

Why: Placing the here... (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment thread install/kener-install.sh
Comment on lines +46 to +51
cat <<EOF > /opt/kener/.env
KENER_SECRET_KEY=$(openssl rand -hex 32)
POSTGRES_USER=kener
POSTGRES_PASSWORD=$(openssl rand -hex 16)
POSTGRES_DB=kener
EOF

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heredoc delimiter should come before the output redirection

Context Used: Rule from dashboard - What: Heredoc syntax must come before the output redirection in cat commands.

Why: Placing the here... (source)

Comment thread install/kener-install.sh
Comment on lines +57 to +97
cat <<EOF > /opt/kener/docker-compose.yaml
version: "3.8"

services:
kener:
image: rajnandan1/kener:latest
container_name: kener
environment:
ORIGIN: http://${HOST_IP}:3000
TZ: Europe/Prague
KENER_SECRET_KEY: \${KENER_SECRET_KEY}
DATABASE_URL: postgresql://\${POSTGRES_USER}:\${POSTGRES_PASSWORD}@postgres:5432/\${POSTGRES_DB}
ports:
- "3000:3000"
volumes:
- ./uploads:/app/uploads
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped

postgres:
image: postgres:alpine
container_name: postgres
environment:
POSTGRES_USER: \${POSTGRES_USER}
POSTGRES_PASSWORD: \${POSTGRES_PASSWORD}
POSTGRES_DB: \${POSTGRES_DB}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U \${POSTGRES_USER} -d \${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
restart: unless-stopped

volumes:
pgdata:
name: kener_postgres
EOF

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heredoc delimiter should come before the output redirection

Context Used: Rule from dashboard - What: Heredoc syntax must come before the output redirection in cat commands.

Why: Placing the here... (source)

Comment thread install/kener-install.sh
cat <<EOF > /etc/apt/sources.list.d/docker.sources
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: bookworm

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hardcoded bookworm suite should use dynamic OS codename to support different Debian versions. Consider using $(lsb_release -cs) instead

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

danielrydl and others added 4 commits February 8, 2026 00:44
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
@MickLesk

MickLesk commented Feb 8, 2026

Copy link
Copy Markdown
Member

Like all Scripts. Bare Metal only, No docker. Build from source.

@MickLesk MickLesk closed this Feb 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants