Created
July 29, 2026 14:03
-
-
Save nzakas/88736892098b702c3c330aea65830a98 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| # | |
| # Install latest versions of: | |
| # git, Chromium, VS Code, Docker, 1Password, | |
| # Synology Drive Client, Discord, Slack | |
| # on Ubuntu (amd64) | |
| # | |
| # Run with: sudo bash install-apps.sh | |
| # | |
| set -euo pipefail | |
| if [[ $EUID -ne 0 ]]; then | |
| echo "Please run as root: sudo bash $0" | |
| exit 1 | |
| fi | |
| export DEBIAN_FRONTEND=noninteractive | |
| echo ">>> Updating package lists..." | |
| apt-get update -qq | |
| apt-get install -y -qq \ | |
| ca-certificates curl wget gnupg lsb-release software-properties-common \ | |
| apt-transport-https | |
| # ---------------------------------------------------------------------- | |
| # 1. Git (latest stable from git-core PPA) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Git (latest)..." | |
| add-apt-repository -y ppa:git-core/ppa | |
| apt-get update -qq | |
| apt-get install -y git | |
| echo "Git version: $(git --version)" | |
| # ---------------------------------------------------------------------- | |
| # 2. Chromium (official Snap – always the newest) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Chromium (Snap)..." | |
| snap install chromium | |
| echo "Chromium installed via Snap" | |
| # ---------------------------------------------------------------------- | |
| # 3. Visual Studio Code (official Microsoft repo) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Visual Studio Code..." | |
| wget -qO- https://packages.microsoft.com/keys/microsoft.asc \ | |
| | gpg --dearmor -o /usr/share/keyrings/microsoft.gpg | |
| chmod a+r /usr/share/keyrings/microsoft.gpg | |
| cat > /etc/apt/sources.list.d/vscode.sources <<EOF | |
| Types: deb | |
| URIs: https://packages.microsoft.com/repos/code | |
| Suites: stable | |
| Components: main | |
| Architectures: amd64,arm64,armhf | |
| Signed-By: /usr/share/keyrings/microsoft.gpg | |
| EOF | |
| apt-get update -qq | |
| apt-get install -y code | |
| echo "VS Code version: $(code --version | head -1)" | |
| # ---------------------------------------------------------------------- | |
| # 4. Docker Engine + Compose (official Docker repo) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Docker..." | |
| install -m 0755 -d /etc/apt/keyrings | |
| curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | |
| -o /etc/apt/keyrings/docker.asc | |
| chmod a+r /etc/apt/keyrings/docker.asc | |
| cat > /etc/apt/sources.list.d/docker.sources <<EOF | |
| Types: deb | |
| URIs: https://download.docker.com/linux/ubuntu | |
| Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") | |
| Components: stable | |
| Architectures: $(dpkg --print-architecture) | |
| Signed-By: /etc/apt/keyrings/docker.asc | |
| EOF | |
| apt-get update -qq | |
| apt-get install -y \ | |
| docker-ce docker-ce-cli containerd.io \ | |
| docker-buildx-plugin docker-compose-plugin | |
| systemctl enable --now docker | |
| echo "Docker version: $(docker --version)" | |
| # Optional: add current user to docker group (uncomment if desired) | |
| # usermod -aG docker "$SUDO_USER" | |
| # ---------------------------------------------------------------------- | |
| # 5. 1Password (official repo) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing 1Password..." | |
| curl -sS https://downloads.1password.com/linux/keys/1password.asc \ | |
| | gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg | |
| echo "deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] \ | |
| https://downloads.1password.com/linux/debian/amd64 stable main" \ | |
| > /etc/apt/sources.list.d/1password.list | |
| mkdir -p /etc/debsig/policies/AC2D62742012EA22/ | |
| curl -sS https://downloads.1password.com/linux/debian/debsig/1password.pol \ | |
| -o /etc/debsig/policies/AC2D62742012EA22/1password.pol | |
| mkdir -p /usr/share/debsig/keyrings/AC2D62742012EA22 | |
| curl -sS https://downloads.1password.com/linux/keys/1password.asc \ | |
| | gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg | |
| apt-get update -qq | |
| apt-get install -y 1password | |
| echo "1Password installed" | |
| # ---------------------------------------------------------------------- | |
| # 6. Synology Drive Client (latest official .deb) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Synology Drive Client..." | |
| # Current latest known version (May 2026). Update the version numbers if a newer one appears. | |
| SYNOLOGY_VERSION="4.0.3-17892" | |
| SYNOLOGY_RELEASE="17892" | |
| SYNOLOGY_DEB="synology-drive-client-${SYNOLOGY_RELEASE}.x86_64.deb" | |
| SYNOLOGY_URL="https://global.synologydownload.com/download/Utility/SynologyDriveClient/${SYNOLOGY_VERSION}/Ubuntu/Installer/${SYNOLOGY_DEB}" | |
| cd /tmp | |
| wget -q --show-progress -O "$SYNOLOGY_DEB" "$SYNOLOGY_URL" || { | |
| echo "WARNING: Could not download Synology Drive Client from the expected URL." | |
| echo "Please download the latest .deb manually from:" | |
| echo " https://www.synology.com/en-global/support/download" | |
| echo "and install with: sudo apt install ./synology-drive-client-*.deb" | |
| } | |
| if [[ -f "$SYNOLOGY_DEB" ]]; then | |
| apt-get install -y "./$SYNOLOGY_DEB" | |
| rm -f "$SYNOLOGY_DEB" | |
| echo "Synology Drive Client installed" | |
| fi | |
| # ---------------------------------------------------------------------- | |
| # 7. Discord (official .deb) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Discord..." | |
| cd /tmp | |
| wget -q --show-progress -O discord.deb \ | |
| "https://discord.com/api/download?platform=linux&format=deb" | |
| apt-get install -y ./discord.deb | |
| rm -f discord.deb | |
| echo "Discord installed" | |
| # ---------------------------------------------------------------------- | |
| # 8. Slack (official Packagecloud repo – preferred for updates) | |
| # ---------------------------------------------------------------------- | |
| echo ">>> Installing Slack..." | |
| curl -fsSL https://packagecloud.io/slacktechnologies/slack/gpgkey \ | |
| | gpg --dearmor -o /usr/share/keyrings/slack-archive-keyring.gpg | |
| echo "deb [arch=amd64 signed-by=/usr/share/keyrings/slack-archive-keyring.gpg] \ | |
| https://packagecloud.io/slacktechnologies/slack/debian jessie main" \ | |
| > /etc/apt/sources.list.d/slack.list | |
| apt-get update -qq | |
| apt-get install -y slack-desktop | |
| echo "Slack installed" | |
| # ---------------------------------------------------------------------- | |
| # Final cleanup & summary | |
| # ---------------------------------------------------------------------- | |
| apt-get autoremove -y -qq | |
| apt-get clean | |
| echo | |
| echo "============================================================" | |
| echo " Installation complete!" | |
| echo "============================================================" | |
| echo "Installed versions / status:" | |
| echo " Git : $(git --version 2>/dev/null || echo 'not found')" | |
| echo " Chromium : snap list chromium (run to see version)" | |
| echo " VS Code : $(code --version 2>/dev/null | head -1 || echo 'not found')" | |
| echo " Docker : $(docker --version 2>/dev/null || echo 'not found')" | |
| echo " 1Password : installed (run '1password' to launch)" | |
| echo " Synology Drive: installed (search for 'Synology Drive' in apps)" | |
| echo " Discord : installed" | |
| echo " Slack : installed" | |
| echo | |
| echo "Notes:" | |
| echo " • Log out and back in (or reboot) if you added your user to the docker group." | |
| echo " • Synology Drive Client version is pinned to the latest known release." | |
| echo " Check https://www.synology.com for newer versions if needed." | |
| echo "============================================================" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment