https://github.com/decaded/install-script
Server Configuration Script. This script provides a menu-driven interface to perform various server configuration tasks. It allows users to install essential apps, set up NGINX and PHP, configure NVM, enable passwordless sudo, set up SSH key-based authentication and more.
https://github.com/decaded/install-script
automation bash bash-script devops linux server-configuration shell shell-script ssh ubuntu
Last synced: 2 months ago
JSON representation
Server Configuration Script. This script provides a menu-driven interface to perform various server configuration tasks. It allows users to install essential apps, set up NGINX and PHP, configure NVM, enable passwordless sudo, set up SSH key-based authentication and more.
- Host: GitHub
- URL: https://github.com/decaded/install-script
- Owner: Decaded
- Created: 2021-11-09T00:12:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-11-21T21:08:40.000Z (4 months ago)
- Last Synced: 2025-11-21T21:21:22.304Z (4 months ago)
- Topics: automation, bash, bash-script, devops, linux, server-configuration, shell, shell-script, ssh, ubuntu
- Language: Shell
- Homepage:
- Size: 255 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Hello There, internet traveler
### Overview
This script is a modular server utility tool for Debian-based and Ubuntu-based systems. It helps automate common setup tasks without forcing a specific stack. You choose exactly
what gets installed: essential tools, Nginx, PHP, NVM, static IP profiles, and more.
Ubuntu is the primary target environment. Other Debian derivatives should work, but if you encounter issues, feel free to open an
[issue](https://github.com/Decaded/install-script/issues) and describe your setup.
---
## Installation and Usage
1. Download the script:
```bash
wget https://raw.githubusercontent.com/Decaded/install-script/main/install.sh
```
2. Make it executable:
```bash
sudo chmod +x install.sh
```
3. Run it:
```bash
./install.sh
```
A menu will appear with all available options.
---
## Features
### Essential Tools
Install a curated pack of common system utilities:
1. **[htop](https://htop.dev/)** – process viewer
2. **[screen](https://www.gnu.org/software/screen/)** – terminal multiplexer
3. **[nload](https://github.com/rolandriegel/nload)** – network traffic monitor
4. **[nano](https://www.nano-editor.org/)** – simple text editor
5. **[firewalld](https://firewalld.org/)** – firewall management
- Automatically opens SSH
- Migrates from UFW if needed
6. **[fail2ban](https://github.com/fail2ban/fail2ban)** – intrusion prevention
- Default configuration or custom rules
7. **[git](https://git-scm.com/)** – version control
- Optional first-time setup
8. **[unattended-upgrades](https://wiki.debian.org/UnattendedUpgrades)** – automatic security updates
### SSH Configuration
Switch to secure, key-only SSH authentication. The script:
- Disables password-based logins
- Creates a backup of your SSH config
- Provides a restore option
Backup file location:
``` bash
/etc/ssh/sshd_config_decoscript.backup
```
Re-running the script replaces the old backup, so rename it if you want to keep multiple versions.
### Passwordless Sudo
Enables password-free sudo access if desired. If your system already uses this configuration, the script leaves it unchanged.
### Web Server Setup
- Automatic cleanup of Apache2 if present
- Firewall rules for HTTP(S) when using firewalld
Installs the full **LEMP** stack:
- **[Nginx](https://nginx.org/)** installation and configuration
- **[MySQL](https://www.mysql.com/)** installation and secure setup
- **[PHP](https://www.php.net/)** installation with commonly used modules
- Configures **php-fpm** to work with Nginx
- Installs modules:
- **php-cli**
- **php-fpm**
- **php-mbstring**
- **php-curl**
- **php-xml**
- **php-zip**
- **php-gd**
- **php-mysql**
- **OR** install Nginx and PHP only,
- **OR** install only Nginx.
### Node.js via NVM
Installs the latest **[NVM](https://github.com/nvm-sh/nvm)** version and lets you manage Node.js installations cleanly:
- Install or remove Node.js versions
- Switch between versions
### Static IP Configuration
Configure a static IP address using **Netplan** when available.
Supports:
- IP address
- Subnet
- Gateway
- DNS servers
If Netplan isn’t present, the script chooses the best available method.
---
## Contributing and Issues
If you notice unexpected behavior or have a suggestion, [open an issue](https://github.com/Decaded/install-script/issues).
Pull requests are welcome.
---
## License
This project is available under the [MIT License](LICENSE).
---
## Disclaimer
This script performs operations that modify system configuration. Use it responsibly, review options before applying them, and keep backups of important files.
> This script comes as is, without any guarantees. It's your adventure, so be mindful.