• Stars
    star
    148
  • Rank 241,902 (Top 5 %)
  • Language
    Shell
  • License
    GNU General Publi...
  • Created over 7 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

💻 Bash Script to automate post-installation steps

postinstall.sh

ShellCheck Ubuntu 20.04 LTS

Bash Script to automate post-installation steps. Helps to install packages on different operating systems.

Apple macOS Arch Linux CentOS Debian Fedora FreeBSD Mageia OpenBSD Red Hat SUSE Slackware Ubuntu Android Termux Alpine Linux

Puppy, Cygwin and Haiku are also supported.

Overview

postinstall.sh is simple bash shell script which in turn generates scripts. The generation depends on the operating system and type of installation. The templates that are included in the generation can be stored in the file system or on a web server. This can also be your GitHub repository. Just fork this repository and edit it according to your needs.

postinstall.sh is not a configuration management system. If you want to install many servers automatically, you should look at ansible. But if you want to quickly reinstall your laptop or Raspberry Pi, postinstall.sh can help you.

Please check the Wiki for more information.

Installation

Download:

curl -O "https://raw.githubusercontent.com/Cyclenerd/postinstall/master/postinstall.sh"

Alternative download with short URL:

curl -fL http://bit.ly/get_postinstall -o postinstall.sh

Create a package lists and scripts as explained in this repository or in the Wiki.

Example:

mkdir install
cd install
vi packages.list

Run as root:

bash postinstall.sh -b install

Usage

Usage: postinstall.sh [-t <TYPE>] [-b <BASE>] [-h]:
        [-t <TYPE>]      sets the type of installation (default: server)
        [-b <BASE>]      sets the base url or dir (default: https://raw.githubusercontent.com/Cyclenerd/postinstall/master/base)
        [-h]             displays help (this message)

Example: postinstall.sh or postinstall.sh -t workstation

Screenshot

WSL

Program Flow

  • Determine operating system and architecture
  • Check package manager and requirements
  • Generate script to run before and after installation and list of packages to install
  • Install packages

Requirements

Only bash, curl, tput (ncurses-utils) and a package manager for the respective operating system:

  • Alpine Linux → apk
  • Apple macOS → port or brew
  • Arch Linux → pacman
  • Cygwin → apt-cyg
  • Debian / Ubuntu → apt-get
  • FreeBSD → pkg
  • Haiku → pkgman
  • Mageia → urpmi
  • NetBSD → pkg_add
  • OpenBSD → pkg_add
  • OpenWRT → opkg
  • Puppy → pkg (https://gitlab.com/sc0ttj/Pkg)
  • Red Hat / Fedora / CentOS → dnf or yum
  • Slackware → slackpkg
  • SUSE / openSUSE → zypper
  • Termux → pkg

TODO

  • More and better documentation
  • Support for even more operating systems and package managers

Help is welcome 👍

License

GNU Public License version 3. Please feel free to fork and modify this on GitHub (https://github.com/Cyclenerd/postinstall).

More Repositories

1

ethereum_nvidia_miner

💰 USB flash drive ISO image for Ethereum, Zcash and Monero mining with NVIDIA graphics cards and Ubuntu GNU/Linux (headless)
Shell
846
star
2

static_status

🚦Bash script to generate a static status page.
Shell
513
star
3

gallery_shell

📷 Bash Script to generate static responsive image web galleries.
Shell
239
star
4

google-cloud-compute-machine-types

☁️ Choose the optimal Google Compute Engine machine type or instance in the many Google Cloud Platform regions
Perl
146
star
5

google-cloud-pricing-cost-calculator

💸 Calculate estimated monthly costs of Google Cloud Platform products and resources via YAML files and CLI program (Linux, macOS, Windows)
Go
118
star
6

google-cloud-gcp-openai-api

🌴 Drop-in replacement REST API for Vertex AI (PaLM 2, Codey, Gemini) that is compatible with the OpenAI API specifications
Jupyter Notebook
55
star
7

benchmark

🏋️ Bash Script which runs several Linux benchmarks (Sysbench, UnixBench and Geekbench)
Shell
52
star
8

poweroff-google-cloud-cap-billing

📴 Automating cost control by capping Google Cloud billing
HCL
33
star
9

Latrine

📡 Locus Map GPS Live Tracking Server Script
HTML
13
star
10

google-cloud-shell-vscode

⛅ Run OpenVSCode Server in Google Cloud Shell
Shell
12
star
11

google-cloud-server-on-demand

▶️ Server on Demand Appliance (Google Compute Engine) - Cloud Build with Terraform and Ansible Showcase
HCL
11
star
12

scp-tools-gitlab

🦊 Docker Image with SAP Cloud Platform Tools (SAP Business Technology Platform) optimized for GitLab Runner and Google Cloud Build
Dockerfile
11
star
13

google-workload-identity-federation

🔐 Google Cloud Workload Identity Federation Examples and How-To
10
star
14

sap-on-gcp-scripts

☕ SAP on Google Cloud Platform Boilerplate
Shell
8
star
15

toolbox

🔧 Toolbox - Script Collection
Jupyter Notebook
7
star
16

cloud-tools-container

📦 Ready-to-use Docker container image with cloud tools (AWS CLI, Google Cloud CLI, Terraform, Packer, Ansible)
Dockerfile
7
star
17

iot-maneki-neko

🐱 IoT Maneki-Neko (Beckoning Cat, Luck Cat, Winkekatze)
C++
7
star
18

macos-missing-shutdown-app

🍎 macOS Shutdown, Restart, Sleep and Log Out App
6
star
19

iot-weather-mqtt

☁️ WiFi Weather Sensor that talks MQTT (SAP IoT Cloud Ready)
C++
6
star
20

aws-pricing

💸 Choose the optimal Amazon EC2 instance type in the many AWS locations
Perl
6
star
21

quarqd

💡 quarqd is a daemon for communicating with an ANT+ device
C
5
star
22

obs-emoji

😃 Emoji Live Reactions Animation for OBS (Open Broadcaster Software)
HTML
5
star
23

dotfiles

⌨ My dotfiles and script to perform user-defined configurations
Shell
4
star
24

google-cloud-iam

☁️ Google Cloud Identity and Access Management (IAM)
Perl
3
star
25

terraform-google-quota-limits

🌪️ Terraform module to update Google Cloud consumer quota limits
HCL
3
star
26

blocklocker

🔗 IoT Blockchain Locker
Perl
3
star
27

notify-me

📟 CLI scripts to get notified via MS Teams, Discord, Pushover, sipgate SMS and many more...
Perl
3
star
28

veloherodown

🚴 Create a local copy of your Velo Hero data
Shell
3
star
29

terraform-google-wif-github

🔐 Terraform module to create a Google Cloud Workload Identity Pool and Provider for GitHub Actions
HCL
2
star
30

terraform-google-wif-service-account

🔐 Terraform module to allow login via Google Cloud Workload Identity Pool and Provider for service accounts
HCL
2
star
31

iot-consumption

☁️ SAPUI5 app for the built-in MMS OData API from the SAP Cloud IoT
JavaScript
2
star
32

google-cloud-gcp-pfsense

☁️ Connect your pfSense firewall to the Google Cloud Platform (GCP) via IPsec VPN (even with non-static IP address)
Shell
2
star
33

qmk-massdrop-ctrl

⌨️ My custom QMK Massdrop CTRL firmware
C
1
star
34

Cyclenerd

😎 My GitHub Profile README
1
star
35

google-cloud-unused-service-accounts

🤖 Detect unused Service Accounts in Google Cloud Platform
Shell
1
star
36

google-cloud-identity-platform

🔑 Google Cloud Identity Platform Examples and How-To (Sign in with GitHub, GitLab, Microsoft, Google)
HTML
1
star
37

SapMachineInstaller

SapMachine (SAP supported version of OpenJDK) Windows Installer
NSIS
1
star
38

veloheroup

🚴 Command line interface for uploading to Velo Hero
Shell
1
star
39

google-cloud-appengine-mail-api

📧 Create your own Mail API based on Google App Engine (GAE)
Python
1
star
40

terraform-google-wif-gitlab

🔐 Terraform module to create a Google Cloud Workload Identity Pool and Provider for GitLab CI
HCL
1
star