Skip to content

Instantly share code, notes, and snippets.

#!/bin/bash
# Written by: cPFence Team / https://cpfence.app/
#
# Description:
# This script is designed to automate the optimization and configuration of OpenLiteSpeed
# running inside a Docker container or directly on the host. It backs up the existing
# configuration file, applies updates to critical server settings such as worker processes,
# CPU affinity, memory buffer sizes, and external application configurations for PHP-LSAPI.
# MD5 checksum validation is added to detect changes and prevent redundant updates.
#!/bin/bash
# Script by cPFence Team, https://cpfence.app
#
# Description:
# This script performs routine server maintenance tasks:
# - Truncates user error logs larger than 5MB and server logs larger than 100MB, keeping only the last entries using `sponge` (ensure `sponge` is installed on the server).
# - Retains only the last 10 days of system journal logs.
# - Updates and upgrades packages non-interactively and checks if a reboot is required.
# - Clears APT cache to save space.
#!/bin/bash
################################################################################
# BTRFS Backup Script for Enhance Backup Server
#
# Overview:
# This script facilitates the efficient backup of website data stored on an
# Enhance Backup Server utilizing the BTRFS filesystem. It performs the
# following operations for each website directory:
# 1. Synchronizes the live state (`backup-subvolume`) to the destination server.
#!/bin/sh
# Script by cPFence Team, https://cpfence.app
mysql -e "show variables; show status" | awk '
{
VAR[$1]=$2
}
END {
MAX_CONN = VAR["max_connections"]
MAX_USED_CONN = VAR["Max_used_connections"]
BASE_MEM=VAR["key_buffer_size"] + VAR["query_cache_size"] + VAR["innodb_buffer_pool_size"] + VAR["innodb_additional_mem_pool_size"] + VAR["innodb_log_buffer_size"]
#!/bin/bash
#
# Written by: cPFence Team / https://cpfence.app/
#
#
# Description:
# This script is designed to work with the Enhance Control Panel to ensure
# that custom OpenLiteSpeed (OLS) configurations persist across vhost rebuilds.
# Using a simple freeze/unfreeze mechanism, it allows administrators to lock
# their custom configurations and prevent them from being overwritten by the
@cPFence
cPFence / Whmcs Module Enhancement
Created January 29, 2025 20:08
Whmcs Module Enhancement
function enhance_ClientArea($params)
{
$systemurl = Setting::getValue('SystemURL');
$webmailLink = 'https://webmail.enhance.com/';
// Fetch domain IP
$domain = $params['domain'];
$domainIP = gethostbyname($domain);
@cPFence
cPFence / Enhance_btrfs_specific_sites_backup.sh
Created February 4, 2025 04:58
To back up only specific sites, add your target site IDs in the TARGET_SITES variable.
#!/bin/bash
################################################################################
# BTRFS Backup Script for Enhance Backup Server
#
# Overview:
# This script facilitates the efficient backup of website data stored on an
# Enhance Backup Server utilizing the BTRFS filesystem. It performs the
# following operations for each website directory:
# 1. Synchronizes the live state (`backup-subvolume`) to the destination server.
@cPFence
cPFence / Blacklist File Manager Plugins
Last active February 8, 2025 17:59
List of File Manager Plugins to Blacklist on Shared Hosting
wp-file-manager
file-manager-advanced
filester
filebird
file-manager
real-media-library-lite
wpide
folders
fileorganizer
media-library-organizer
## Steps To Test WordPress Database Malware Scanning in cPFence
1. Access the container of the test WP:
su - username
cd public_html/
2. Inject test malware into the database:
# Run the following command to add a test malware to wp_options table:
@cPFence
cPFence / delete_old_backups
Created March 2, 2025 11:50
Delete Old Snapshot Backups in Enhance v12 ext4
# Dry-run version
DAYS=2
SECONDS_OLD=$((DAYS * 86400))
for site in /backups/*; do
[ -d "$site" ] || continue
current_snapshot=$(readlink "$site/current")
echo "Checking site: ${site##*/}"
find "$site" -maxdepth 1 -type d -name "snapshot-*" | while read -r snapshot; do
if [ "$snapshot" = "$current_snapshot" ]; then