Single-purpose shell scripts for Ubuntu server provisioning. Open the file. Read it. Run it. Move on.
⚠️ Server-only. Every script in this org carries the same warning: DO NOT RUN ON YOUR PC OR MAC. These scripts disable SSH password auth, create system users, and install daemons — exactly the things you don't want on a laptop.
|
One concern per repo A script does one thing |
Read before you run Short, intentionally readable |
Ubuntu-first Tested 14.04 → 22.04 |
wget https://raw.githubusercontent.com/x-shell-codes/<repo>/master/<repo>.sh
sudo bash <repo>.sh [flags]For example, install Redis with a password:
wget https://raw.githubusercontent.com/x-shell-codes/redis/master/redis.sh
sudo bash redis.sh -p=mySecretA natural order. Run them top-to-bottom on a blank Ubuntu image.
1️⃣ Bootstrap → config · base · swap
2️⃣ Pick your runtime → php · nodejs · composer · puppeter
3️⃣ Add a database → mysql · mongodb · phpmyadmin
4️⃣ Cache & queue → redis · memcached
5️⃣ Web & TLS → nginx · ssl
6️⃣ Mail / proc / VCS → postfix · mailcatcher · supervisor · git
| Repo | What it does | Flags | |
|---|---|---|---|
| 🛡️ | config | Disable SSH password auth, set hostname/timezone, create deploy user with sudo |
– |
| 📦 | base | Install 28 essential packages (build-essential, python3, curl, zsh, jq…) | – |
| 💾 | swap | Create swap file + tune vm.swappiness |
– |
| Repo | What it does | Flags | |
|---|---|---|---|
| 🚦 | nginx | Nginx + domain block + Certbot SSL | -d, -s, -l |
| 🔒 | ssl | Standalone Certbot SSL certificate | -d, -s, -l |
| Repo | What it does | Flags | |
|---|---|---|---|
| 🐘 | php | PHP install (default 8.1) + optional OPCache | -p |
| 🟢 | nodejs | Node.js — choose source: APT / NodeSource / NVM | -s |
| 🎼 | composer | PHP Composer + auto-update | – |
| 🎭 | puppeter | Puppeteer for headless browsers (repo name typo, not yours) | – |
| Repo | What it does | Flags | |
|---|---|---|---|
| 🐬 | mysql | MySQL + DBA password + remote toggle | -p, -r |
| 🍃 | mongodb | MongoDB + password + remote toggle | -p, -r |
| 🖥️ | phpmyadmin | phpMyAdmin + admin password | -p |
| Repo | What it does | Flags | |
|---|---|---|---|
| 🔴 | redis | Redis + password protection + remote toggle | -p, -r |
| 💨 | memcached | Memcached + remote toggle | -r |
| Repo | What it does | Flags | |
|---|---|---|---|
| 📮 | postfix | Postfix MTA for outbound mail | -d |
| ✉️ | mailcatcher | MailCatcher for staging/dev | – |
| 👁️ | supervisor | Supervisor process control | – |
| 🌳 | git | Git + global user.name / user.email | -u, -e |
📐 Conventions
- One concern per repo — a script does one thing
- Read before you run — they make root-level changes; the source is short and intentionally readable
- Ubuntu-first — most cover 14.04 → 22.04, a few are 20.04 / 22.04 only
- No hidden network calls — anything fetched is visible in the script
- Idempotent where possible — re-running shouldn't make things worse