Sync all scripts from website downloads — 352 scripts total

Includes updated JS challenge scripts with Claude-User whitelist,
same-site referer bypass, Blackbox-Exporter allowed bot, and all
new exporters, cheat sheets, and automation scripts.
This commit is contained in:
2026-05-25 03:31:08 +02:00
parent dbd6bf0324
commit a1a17e81a1
332 changed files with 174509 additions and 1106 deletions
+267 -77
View File
@@ -2,95 +2,285 @@
####################################################################
#### Code-Server Update Script ####
#### For RHEL/Rocky/Alma, Oracle Linux, Debian & Ubuntu ####
#### ####
#### Author: Phil Connor ####
#### Updates code-server to the latest version. Can be run ####
#### manually or via cron for automatic updates. ####
#### ####
#### Supported: RHEL/Rocky/Alma 8+, Oracle Linux 8+, ####
#### Debian 11+, Ubuntu 20.04+ ####
#### ####
#### Author: Phil Connor ####
#### Contact: contact@mylinux.work ####
#### Website: https://mylinux.work ####
#### License: MIT ####
#### Version: 1.2 ####
#### Version: 2.0 ####
#### ####
#### Usage: sudo ./update-code-server.sh ####
#### Usage: ####
#### sudo ./update-code-server.sh ####
#### sudo ./update-code-server.sh --check ####
#### sudo ./update-code-server.sh --force ####
#### sudo ./update-code-server.sh --install-cron ####
#### sudo ./update-code-server.sh --help ####
####################################################################
#############################
#### User Configurations ####
#############################
SERVDIR=/usr/local/code-server # where you want the code-server installed
set -euo pipefail
########################
#### System Configs ####
########################
OS=$(grep PRETTY_NAME /etc/os-release | sed 's/PRETTY_NAME=//g' | tr -d '="' | awk '{print $1}' | tr '[:upper:]' '[:lower:]')
OSVER=$(grep VERSION_ID /etc/os-release | sed 's/VERSION_ID=//g' | tr -d '="' | awk -F. '{print $1}')
CSVER=$(code-server --version | awk '{print $1}')
# ============================================================================
# USER CONFIGURATION -- edit these or override with command-line options
# ============================================================================
###########################################################
#### Detect Package Manger from OS and OSVer Variables ####
###########################################################
if [ "${OS}" = ubuntu ]; then
PAKMGR="apt-get -y"
elif [[ ${OS} = centos || ${OS} = red || ${OS} = oracle || ${OS} = rocky || ${OS} = alma ]]; then
if [ "${OSVER}" = 7 ]; then
PAKMGR="yum -y"
fi
if [ "${OSVER}" = 8 ] || [ "${OSVER}" = 9 ]; then
PAKMGR="dnf -y"
fi
fi
SERVDIR="/usr/local/code-server" # code-server install directory
###################
#### Update OS ####
###################
function update_os() {
{
if [ "${OS}" = ubuntu ]; then
${PAKMGR} update
${PAKMGR} upgrade
else
${PAKMGR} update
fi
}
# ============================================================================
# INTERNAL VARIABLES
# ============================================================================
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m'
VERSION="2.0"
ARCH=""
CHECK_ONLY=0
FORCE=0
INSTALL_CRON=0
CRON_DAYS=25
# ============================================================================
# HELPER FUNCTIONS
# ============================================================================
log() { echo -e "${GREEN}[+]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[!]${NC} $1"; }
log_err() { echo -e "${RED}[x]${NC} $1" >&2; }
log_info() { echo -e "${CYAN}[>]${NC} $1"; }
show_help() {
cat <<EOF
Code-Server Update Script v${VERSION}
Usage: sudo $0 [OPTIONS]
Checks for a newer version of code-server and updates if available.
OPTIONS:
--check Check for updates without installing (dry run)
--force Update even if already on the latest version
--install-cron Install this script to /usr/local/bin and set up a
cron job for automatic updates (default: every 25 days)
--cron-days DAYS Days between automatic updates (default: 25)
--installdir DIR code-server install directory (default: /usr/local/code-server)
-h, --help Show this help
EXAMPLES:
$0 # Update if a newer version is available
$0 --check # Show current vs latest version
$0 --force # Re-install the latest version
$0 --install-cron # Set up automatic updates every 25 days
$0 --install-cron --cron-days 7 # Set up automatic updates every 7 days
REQUIREMENTS:
- Root privileges
- code-server installed at SERVDIR (default: /usr/local/code-server)
- curl
EOF
exit 0
}
###############################################
#### Get the latest version of Code Server ####
###############################################
parse_args() {
while [[ $# -gt 0 ]]; do
case "$1" in
--check) CHECK_ONLY=1; shift ;;
--force) FORCE=1; shift ;;
--install-cron) INSTALL_CRON=1; shift ;;
--cron-days) CRON_DAYS="$2"; shift 2 ;;
--installdir) SERVDIR="$2"; shift 2 ;;
-h|--help) show_help ;;
*) log_err "Unknown option: $1"; show_help ;;
esac
done
}
detect_arch() {
local machine
machine=$(uname -m)
case "$machine" in
x86_64) ARCH="amd64" ;;
aarch64) ARCH="arm64" ;;
*)
log_err "Unsupported architecture: $machine"
exit 1
;;
esac
}
preflight_checks() {
# Root check
if [[ $EUID -ne 0 ]]; then
log_err "This script must be run as root"
exit 1
fi
# Required tools
for cmd in curl tar; do
if ! command -v "$cmd" >/dev/null 2>&1; then
log_err "Required command not found: $cmd"
exit 1
fi
done
# code-server must be installed (unless just installing cron)
if [[ $INSTALL_CRON -eq 0 ]] && ! command -v code-server >/dev/null 2>&1; then
log_err "code-server is not installed or not in PATH"
exit 1
fi
}
# ============================================================================
# GET VERSIONS
# ============================================================================
get_current_version() {
code-server --version 2>/dev/null | head -1 | awk '{print $1}'
}
get_latest_version() {
{
version="$(curl -fsSLI -o /dev/null -w "%{url_effective}" https://github.com/coder/code-server/releases/latest)"
version="${version#https://github.com/coder/code-server/releases/tag/}"
version="${version#v}"
echo "$version"
#### Compare Code-Server versions ####
if [[ "$version" != "$CSVER" ]] && [[ "$(printf '%s\n' "$CSVER" "$version" | sort -V | tail -1)" == "$version" ]]; then
compare=1
else
compare=0
fi
}
local version
version=$(curl -fsSL "https://api.github.com/repos/coder/code-server/releases/latest" | \
grep '"tag_name"' | head -1 | grep -oP 'v\K[0-9]+\.[0-9]+\.[0-9]+')
if [[ -z "$version" ]]; then
log_err "Failed to determine latest code-server version"
exit 1
fi
echo "$version"
}
#########################################
#### Download and Update Codeserver ####
#########################################
install_codeserver() {
{
if [ $compare = 1 ]; then
systemctl stop code-server
# check if command wget exists
if ! command -v wget >/dev/null 2>&1; then
${PAKMGR} install wget
fi
cd ~/ || exit
wget "https://github.com/coder/code-server/releases/download/v$version/code-server-$version-linux-amd64.tar.gz"
tar xvf "code-server-$version-linux-amd64.tar.gz"
cp -r ~/code-server-"$version"-linux-amd64/* ${SERVDIR}
rm -f ~/code-server-"$version"-linux-amd64.tar.gz
rm -rf ~/code-server-"$version"-linux-amd64
systemctl start code-server
fi
}
# ============================================================================
# UPDATE CODE-SERVER
# ============================================================================
update_codeserver() {
local current_version latest_version
current_version=$(get_current_version)
latest_version=$(get_latest_version)
log_info "Installed version: $current_version"
log_info "Latest version: $latest_version"
# Check mode -- just report and exit
if [[ $CHECK_ONLY -eq 1 ]]; then
if [[ "$current_version" == "$latest_version" ]]; then
log "code-server is up to date"
else
log_warn "Update available: $current_version -> $latest_version"
fi
return
fi
# Decide whether to update
if [[ $FORCE -eq 0 ]]; then
if [[ "$current_version" == "$latest_version" ]]; then
log "code-server is already up to date ($current_version)"
return
fi
# Verify the latest version is actually newer (not a downgrade)
if [[ "$(printf '%s\n' "$current_version" "$latest_version" | sort -V | tail -1)" != "$latest_version" ]]; then
log "Installed version ($current_version) is newer than latest release ($latest_version)"
return
fi
fi
log "Updating code-server: $current_version -> $latest_version"
# Stop service
systemctl stop code-server
# Download
local tarball="code-server-${latest_version}-linux-${ARCH}.tar.gz"
local url="https://github.com/coder/code-server/releases/download/v${latest_version}/${tarball}"
cd /tmp
log_info "Downloading $tarball"
curl -fsSL -o "$tarball" "$url"
tar xzf "$tarball"
# Install
cp -r "code-server-${latest_version}-linux-${ARCH}"/* "$SERVDIR"/
# Cleanup
rm -rf "/tmp/$tarball" "/tmp/code-server-${latest_version}-linux-${ARCH}"
# Start service
systemctl start code-server
log "code-server updated to $latest_version"
}
#update_os
get_latest_version
install_codeserver
# ============================================================================
# INSTALL CRON
# ============================================================================
install_cron() {
local script_dest="/usr/local/bin/update-code-server.sh"
local script_src
# Copy this script to /usr/local/bin
script_src=$(readlink -f "$0")
if [[ "$script_src" != "$script_dest" ]]; then
cp "$script_src" "$script_dest"
log "Copied update script to $script_dest"
fi
chmod 700 "$script_dest"
# Build cron entry -- run every N days at 3:00 AM
local cron_line="0 3 */${CRON_DAYS} * * ${script_dest} 2>&1 | logger -t update-code-server"
local cron_marker="# code-server auto-update"
# Remove existing code-server cron entries
local existing_cron
existing_cron=$(crontab -l 2>/dev/null || true)
local new_cron
new_cron=$(echo "$existing_cron" | grep -v "$cron_marker" | grep -v "update-code-server" || true)
# Add new entry
echo "${new_cron}
${cron_line} ${cron_marker}" | crontab -
log "Cron job installed -- updates every $CRON_DAYS days at 3:00 AM"
log_info "View with: crontab -l"
}
# ============================================================================
# MAIN
# ============================================================================
main() {
parse_args "$@"
echo ""
echo "=============================================="
echo " Code-Server Update Script v${VERSION}"
echo "=============================================="
echo ""
detect_arch
preflight_checks
if [[ $INSTALL_CRON -eq 1 ]]; then
install_cron
fi
# Run update unless we are only installing cron
if [[ $INSTALL_CRON -eq 0 ]] || command -v code-server >/dev/null 2>&1; then
update_codeserver
fi
echo ""
}
main "$@"