Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DevOps Toolset

A comprehensive collection of bash scripts for automating server setup and configuration tasks on Ubuntu/Debian systems.

Table of Contents

Features

  • Interactive Menu — Easy-to-use menu-driven interface for task selection
  • One-Line Install — Get started in seconds with a single command
  • Global Commands — Run from anywhere using devops or toolset commands
  • Self-Update — Keep your toolset current with --update
  • Multi-task Execution — Run multiple tasks in sequence (e.g., 1 3 8)
  • Modular Design — Each task is a separate, maintainable script
  • Safe Defaults — Confirmation prompts for destructive operations

Installation

Quick Install (Recommended)

Using curl:

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Using wget:

wget -qO- https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | bash

Custom Install Directory

curl -fsSL https://raw.githubusercontent.com/ASHKARAN/toolset/main/install.sh | INSTALL_DIR=/opt/toolset bash

Manual Installation

git clone https://github.com/ASHKARAN/toolset.git ~/toolset
cd~/toolset
chmod +x setup.sh install.sh scripts/*.sh

Usage

Global Commands

After installation, the following commands are available system-wide:

CommandDescription
sudo devopsLaunch the DevOps Toolset
sudo toolsetLaunch the DevOps Toolset
devops --helpShow help and available options
devops --listList all available tasks
devops --updateUpdate toolset from GitHub

Interactive Mode

sudo devops

This opens an interactive menu where you can select tasks by number.

Run Specific Tasks

# Run a single task
sudo devops 3
# Run multiple tasks
sudo devops 1 3 8
# Run a sequence of tasks
sudo devops 13 9 8 3 10

Command Line Options

OptionDescription
-h, --helpShow help message
-v, --versionShow version
-l, --listList all available tasks
-a, --allRun all tasks (use with caution)
-u, --updateUpdate from GitHub
-i, --interactiveRun in interactive mode (default)

Updating

Keep your toolset up-to-date:

devops --update

Available Tasks

#TaskDescription
1Create UserCreate a new user with sudo privileges and SSH setup
2Copy SSH KeyAdd SSH public key to a user's authorized_keys
3Install DockerInstall Docker Engine and Docker Compose
4Clean Docker LogsTruncate all Docker container log files
5Clean Docker FullRemove all Docker containers, images, volumes, networks
6Install Node.js (NVM)Install Node.js using NVM (Node Version Manager)
7Install Node.js + PM2Install Node.js with PM2 process manager
8Install GitInstall Git version control
9Install EssentialsInstall essential packages (htop, curl, vim, etc.)
10Setup FirewallConfigure UFW firewall with basic rules
11Setup TimezoneConfigure system timezone and NTP
12Setup SwapCreate and configure swap space
13System UpdateUpdate and upgrade all system packages
14Install Nginx (Docker)Run Nginx in Docker with volume mappings
15Install CertbotInstall Certbot for Let's Encrypt SSL certificates

Task Details

Docker

Installs Docker Engine and Docker Compose with proper configuration.

sudo devops 3 # Install Docker
sudo devops 4 # Clean Docker logs
sudo devops 5 # Full Docker cleanup (removes everything)

Node.js with NVM

Node.js is installed using NVM (Node Version Manager) for flexibility:

sudo devops 6 # Install Node.js (NVM only)
sudo devops 7 # Install Node.js + PM2

After installation, use NVM commands:

nvm install 20 # Install Node.js 20
nvm install --lts # Install latest LTS
nvm use 20 # Switch to version 20
nvm alias default 20 # Set default version

Nginx (Docker)

Nginx runs inside a Docker container with the following volume mappings:

Host PathContainer PathPurpose
/opt/nginx/conf/nginx.conf/etc/nginx/nginx.confMain config
/opt/nginx/conf/conf.d//etc/nginx/conf.d/Server configs
/opt/nginx/html//usr/share/nginx/html/Web root
/opt/nginx/logs//var/log/nginx/Log files
/opt/nginx/certs//etc/nginx/certs/SSL certificates

Common Nginx commands:

docker logs nginx-server # View logs
docker exec nginx-server nginx -t # Test config
docker exec nginx-server nginx -s reload # Reload config
docker restart nginx-server # Restart container

Firewall (UFW)

Configures UFW firewall with secure defaults:

  • Allow SSH (port 22)
  • Allow HTTP (port 80)
  • Allow HTTPS (port 443)
  • Deny all other incoming traffic

Recommended Setup Sequences

New Server (Basic)

sudo devops 13 9 8 10 12 11

This will:

  • Update system packages (13)
  • Install essential tools (9)
  • Install Git (8)
  • Setup firewall (10)
  • Configure swap space (12)
  • Set timezone (11)

Web Server with Docker

sudo devops 13 9 8 3 14 15 10 12 11

Includes Docker, Nginx, and Certbot for SSL.

Node.js Application Server

sudo devops 13 9 8 3 7 10 12 11

Includes Node.js with PM2 for process management.

Full Stack Setup

sudo devops 13 9 8 3 7 14 15 10 12 11 1

Complete setup including user creation for deployments.

Project Structure

toolset/
├── install.sh # One-line installer script
├── setup.sh # Main CLI and interactive menu
├── README.md # Documentation
├── LICENSE # MIT License
└── scripts/
├── common.sh # Shared functions and utilities
├── create-user.sh # User creation with sudo & SSH
├── copy-ssh-key.sh # SSH key management
├── install-docker.sh # Docker & Docker Compose setup
├── clean-docker-logs.sh # Docker log cleanup
├── clean-docker-full.sh # Complete Docker cleanup
├── install-nodejs.sh # Node.js via NVM
├── install-nodejs-pm2.sh # Node.js + PM2 setup
├── install-git.sh # Git installation
├── install-essentials.sh # Essential packages
├── setup-firewall.sh # UFW firewall configuration
├── setup-timezone.sh # Timezone & NTP setup
├── setup-swap.sh # Swap space configuration
├── system-update.sh # System updates
├── install-nginx.sh # Nginx in Docker
└── install-certbot.sh # Certbot for SSL

Running Individual Scripts

Each script can be run independently:

# Run a specific script directly
sudo ~/toolset/scripts/install-docker.sh
# Or source and call the functionsource~/toolset/scripts/common.sh
source~/toolset/scripts/install-nodejs.sh
install_nodejs

Requirements

  • Operating System: Ubuntu 20.04+ or Debian 10+
  • Privileges: Root access (sudo)
  • Network: Internet connection for package installation
  • Tools:curl or wget (for one-line install)

Contributing

Contributions are welcome. To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding a New Task

  1. Create a new script in the scripts/ directory
  2. Follow the naming convention: action-target.sh (e.g., install-redis.sh)
  3. Include a main function named after the script (e.g., install_redis)
  4. Source common.sh for shared utilities
  5. Add the task definition to setup.sh

License

This project is licensed under the MIT License. See the LICENSE file for details.


For issues and feature requests, please open an issue on GitHub.

About

some usefull tools that might be helpful

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages