Shell delivery, properly documented

Choose a script, review its effects, and compare your downloaded file before execution.

Designed for operators who want curlable scripts, clear usage notes, reliable landing pages, and a simple place to publish trustworthy automation.

$ curl -fL https://helper.sh/hello.sh -o ./hello.sh
$ less ./hello.sh
$ curl -fL https://helper.sh/docker-data-move.sh -o ./docker-data-move.sh
$ less ./docker-data-move.sh

Static pages for humans, raw scripts for terminals.

What helper.sh is optimized for

Positioned for script delivery and trust

helper.sh

Direct script delivery with stable, memorable URLs

helper.sh

Multilingual documentation for global operators

helper.sh

Readable landing pages for handoff, review, and publishing

Scripts

Published scripts

Starter probe

hello.sh

A small Bash delivery check that prints uname output and fixed messages.

Operations helper

docker-data-move.sh

An interactive helper that migrates Docker data-root onto a larger disk with path checks, backups, and verification.

Bootstrap installer

install_docker_ubuntu_2404.sh

A one-shot installer for Docker Engine and Docker Compose on Ubuntu 24.04.4 LTS, published through helper.sh.

Docker app installer

install_nginx_base_docker.sh

A Docker Nginx 1.22.1 starter that creates a persistent host layout and publishes ports 80/443; its default configuration serves HTTP only.

Docker app installer

install_mysql57_base_docker.sh

A Docker-based one-shot installer for MySQL 5.7 that prepares /data/mysql5.7 and starts a host-mounted database container.

Docker app installer

install_redis705_base_docker.sh

A Docker-based one-shot installer for Redis 7.0.5 that prepares /data/redis7.0.5 and starts a host-mounted cache container.

Docker app installer

install_php72_base_docker.sh

A Docker-based one-shot installer for PHP 7.2 that prepares /data/php7.2 and starts a host-mounted PHP-FPM container.

Docker app installer

install_workerman3524_base_docker.sh

A legacy Workerman/PHP 7.2 build example: application files are copied into an image and only logs is bind-mounted. App edits require rebuilding and replacing the container.

Network server installer

install_openvpn_server_centos.sh

A CentOS 7-specific OpenVPN server example with fixed LAN routing, username/password authentication and firewall changes.

Network client installer

install_openvpn_client_ubuntu.sh

A helper.sh-hosted Ubuntu OpenVPN client installer that checks for local client.conf and login.txt, installs OpenVPN, optionally copies a local update-resolv-conf helper, and enables a systemd client service.

Network client installer

install_openvpn_client_centos7.sh

CentOS 7 OpenVPN client setup with optional local credentials and DNS hooks. Package installation alone does not establish a tunnel.

Network client installer

install_openvpn_client_anolis8.sh

Anolis OS 8 OpenVPN client setup with optional local credentials and DNS hooks. Package installation alone does not establish a tunnel.

OpenVPN client maintenance

disable_openvpn_client_dns.sh

Comments matching DNS hooks in a selected OpenVPN client config and attempts a service restart. Existing resolver state is not automatically restored.

System maintenance

switch-centos7-repo.sh

A CentOS 7 repository switch helper for replacing outdated or unreachable yum mirrors with usable sources.

System maintenance

optimize_centos7_ssh.sh

A CentOS 7 SSH maintenance script that disables reverse DNS lookup and GSSAPI auth, selects IPv4, validates sshd_config, and restarts sshd.

Security hardening

centos_disable_password_ssh.sh

A CentOS SSH hardening script that checks for a non-empty authorized_keys file, disables password login, keeps public key auth enabled, validates sshd_config, and reloads sshd.

Docker router lab

install_bleachwrt_docker_centos7.sh

A legacy CentOS 7 LAN lab example using a privileged OpenWrt-compatible container and macvlan. Review host-wide network changes first.

Developer utility

tree-to-file.sh

Exports the current directory to tree.txt; may install tree or use a fallback with different filters. Review overwrite, hidden-name and incomplete-output risks first.

Platforms

Start from system and host role

Platforms

Ubuntu 24.04 scripts

Check Ubuntu version, systemd and repository access before selecting the Docker or OpenVPN installer.

Platforms

CentOS 7 scripts

Recovery scripts for existing CentOS Linux 7 hosts. CentOS Linux 7 reached end of life on June 30, 2024; use these only for compatibility, recovery, or migration preparation, not as a new baseline.

Platforms

Anolis OS 8 scripts

Review the Anolis 8/dnf OpenVPN branch and general maintenance prerequisites; compatibility is not inferred from RHEL branding alone.

Platforms

Docker host setup

Scripts that prepare the host layer before service containers are installed, including Docker engine setup and Docker data layout maintenance.

Platforms

Docker service stack scripts

A grouped view of the helper.sh service installers for Nginx, MySQL, Redis, PHP, and Workerman on Docker. The fixed versions include end-of-life components; use these pages for compatibility work and review upgrade options before new deployments.

Topics

Browse by deployment scenario

Topics

CentOS 7: choose a recovery task

Separate repository failures, SSH access problems and Docker storage pressure before changing an end-of-life host.

Topics

Ubuntu: prepare Docker or VPN access

Choose host installation, client access or an existing Docker service without treating old application images as a default new stack.

Topics

Docker services: check the interface and retained state

Choose by protocol, data directory and replacement impact: HTTP, SQL, cache, FastCGI or an image-baked application.

Topics

OpenVPN: distinguish tunnel, route and DNS failures

Choose the distribution-specific client and inspect resolver ownership before changing DNS hooks.

Topics

Legacy PHP: separate runtime compatibility from application readiness

Use PHP 7.2 and Workerman 3.5.24 examples for inherited compatibility work with an upgrade plan.

Problem pages

Jump straight to common questions

Problem pages

CentOS 7 yum 404: inspect the failing repository first

Distinguish an archived CentOS mirror from a third-party URL, DNS, TLS or network failure before rewriting repo files.

Problem pages

Why is CentOS 7 SSH login so slow

The usual causes are reverse DNS lookup, GSSAPI auth negotiation, and sometimes IPv6 fallback. Disable those waits before doing deeper SSH troubleshooting.

Problem pages

Why can I not connect after disabling SSH password login on CentOS

The usual cause is disabling PasswordAuthentication before confirming that the target account already has a working authorized_keys file and a successful key-based login test.

Problem pages

OpenVPN connects but internal DNS fails

Inspect the configured hook and active resolver manager before changing files or restarting the tunnel.

Problem pages

Why MySQL 5.7 keeps old credentials after container replacement

The helper reuses /data/mysql5.7/data when replacing mysql57. MySQL initializes accounts only for an empty data directory, so changing install variables does not reset an existing database.

Problem pages

Workerman says completed but HTTP readiness failed

Separate build, container startup, the optional curl probe and application validation before another replacement.

Recommended workflow

How to use the site safely

  1. Choose a task and read the matching script’s requirements and actual effects.
  2. Save and inspect the script; compare its bytes using the guide’s local checker or checksum file.
  3. Decide separately whether to execute, with host-specific checks, backups and an authorized change window. A matching hash is not a safety verdict.