-
-
Save bdmorin/54e15b22a57eea69be8b880fa2569225 to your computer and use it in GitHub Desktop.
Crostini penguin bootstrap script -- curl -sL dwallraff.com/bootstrap | bash
This file contains 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 | |
#-- Dave Wallraff | |
# -- bdmorin@gmail.com | |
### bootstrap crostini container | |
# curl -sL https://gist.githubusercontent.com/bdmorin/54e15b22a57eea69be8b880fa2569225/raw/6517ceb92a750597875c92ad35f227eb0a3747e1/crostini-bootstrap.sh | bash | |
# Do all this in ansible, duh | |
# wrap in a function for curl|bash | |
do_stuff() { | |
###### | |
## Add other repos and tools | |
###### | |
DEBIAN_VER="$(grep VERSION= /etc/os-release | awk -F "[()]" '{print $2}')" | |
export DEBIAN_VER | |
ARCH="$(uname -m)" | |
export ARCH | |
# vs-code | |
wget -O- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - | |
echo "deb https://packages.microsoft.com/repos/vscode stable main" | sudo tee /etc/apt/sources.list.d/vscode.list | |
# signal | |
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg | |
sudo mv signal-desktop-keyring.gpg /usr/share/keyrings/ | |
echo 'deb [arch=$ARCH signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | sudo tee /etc/apt/sources.list.d/signal-xenial.list | |
# helm | |
# wget -O- https://baltocdn.com/helm/signing.asc | sudo apt-key add - | |
# echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list | |
# docker | |
#wget -O- https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
#echo "deb [arch=$ARCH] https://download.docker.com/linux/debian $DEBIAN_VER stable" | sudo tee /etc/apt/sources.list.d/docker.list | |
# 1Password | |
curl -sS https://downloads.1password.com/linux/keys/1password.asc | sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg | |
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/$(dpkg --print-architecture) stable main" | sudo tee /etc/apt/sources.list.d/1password.list | |
sudo mkdir -p /etc/debsig/policies/AC2D62742012EA22/ | |
curl -sS https://downloads.1password.com/linux/debian/debsig/1password.pol | sudo tee /etc/debsig/policies/AC2D62742012EA22/1password.pol | |
sudo mkdir -p /usr/share/debsig/keyrings/AC2D62742012EA22 | |
curl -sS https://downloads.1password.com/linux/keys/1password.asc | sudo gpg --dearmor --output /usr/share/debsig/keyrings/AC2D62742012EA22/debsig.gpg | |
###### | |
## Install tools | |
###### | |
export DEBIAN_FRONTEND=noninteractive | |
#https://www.linuxuprising.com/2019/06/fix-missing-gpg-key-apt-repository.html | |
#sudo apt update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' | while read -r key; do if ! [[ ${keys[*]} =~ $key ]]; then sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys "$key"; keys+=("$key"); fi; done | |
sudo apt update --fix-missing -y | |
sudo apt dist-upgrade -y | |
# apt install the things | |
# docker-ce=18.03.1~ce-0~debian \ | |
# helm \ | |
sudo apt install -y \ | |
1password-cli \ | |
apt-transport-https \ | |
build-essential \ | |
bzip2 \ | |
ca-certificates \ | |
code \ | |
conntrack \ | |
coreutils \ | |
curl \ | |
dnsutils \ | |
file \ | |
git \ | |
gnome-keyring \ | |
gnupg2 \ | |
hping3 \ | |
httpie \ | |
hugo \ | |
iperf \ | |
iputils-ping \ | |
iputils-tracepath \ | |
jq \ | |
less \ | |
libkrb5-3 \ | |
libsecret-1-0 \ | |
lsof \ | |
man \ | |
mosh \ | |
mtr \ | |
netcat \ | |
nmap \ | |
openssl \ | |
python3 \ | |
python3-pip \ | |
signal-desktop \ | |
software-properties-common \ | |
tcpdump \ | |
tmate \ | |
traceroute \ | |
unzip \ | |
vim \ | |
wget \ | |
whois \ | |
zlib1g | |
###### | |
## Software not in repos | |
###### | |
# golang | |
# cd /usr/local && sudo wget -O go.tar.gz "https://dl.google.com/go/$(curl https://go.dev/VERSION?m=text).linux-$ARCH.tar.gz" \ | |
# && sudo tar -C /usr/local -xzf go.tar.gz && sudo rm go.tar.gz | |
# shell check | |
cd /usr/local/bin && sudo wget -O shellcheck.tar.xz \ | |
"$(curl -s https://api.github.com/repos/koalaman/shellcheck/releases/latest \ | |
| jq --raw-output '.assets[] | .browser_download_url' | grep --color=never linux.x86)" && sudo xz -d shellcheck.tar.xz \ | |
&& sudo tar xf shellcheck.tar --wildcards --strip-components 1 shellcheck*/shellcheck && sudo rm shellcheck.tar \ | |
&& sudo chmod +x shellcheck | |
# rmapi (remarkable api) | |
#cd /usr/local/bin && sudo wget -O rmapi.tar.gz \ | |
# "$(curl -s https://api.github.com/repos/juruen/rmapi/releases/latest \ | |
# | jq --raw-output '.assets[] | .browser_download_url' | grep --color=never linux)" \ | |
# && sudo tar xzf rmapi.tar.gz && sudo chmod +x rmapi | |
# reStream (remarkable streaming) | |
#cd /usr/local/bin && sudo wget -O reStream \ | |
# "$(curl -s https://api.github.com/repos/rien/reStream/releases/latest \ | |
# | jq --raw-output '.assets[] | .browser_download_url' | grep --color=never .sh)" \ | |
# && sudo chmod +x reStream | |
#cd ~ && wget -O /tmp/restream.arm.static \ | |
# "$(curl -s https://api.github.com/repos/rien/reStream/releases/latest \ | |
# | jq --raw-output '.assets[] | .browser_download_url' | grep --color=never .arm.)" | |
# calibre | |
#wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin | |
# docker-compose | |
#sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o \ | |
# /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose | |
# cleanup | |
sudo apt update && sudo apt upgrade -y | |
sudo apt autoremove | |
sudo sh -c 'echo "" > /etc/motd' | |
#sudo rm /etc/update-motd.d/10-uname | |
###### | |
## Clone my stuffs | |
###### | |
#git clone https://github.com/dwallraff/dotfiles ~/code/dotfiles | |
#cd ~/code/dotfiles || return | |
#git remote set-url origin git@github.com:dwallraff/dotfiles.git | |
#cd ~ || return | |
###### | |
## Link stuffs up | |
###### | |
#mkdir -p ~/.ssh/configs | |
#mkdir -p ~/.gnupg | |
#mkdir -p ~/code/kohls | |
#mkdir -p /usr/local/go/work/src | |
#chmod 700 ~/.gnupg | |
#ln -sf ~/code/dotfiles/bashrc ~/.bashrc | |
#ln -sf ~/code/dotfiles/vimrc ~/.vimrc | |
#ln -sf ~/code/dotfiles/screenrc ~/.screenrc | |
#ln -sf ~/code/dotfiles/gitconfig ~/.gitconfig | |
#ln -sf ~/code/dotfiles/gitconfig_kohls ~/code/kohls/.gitconfig | |
#ln -sf ~/code/dotfiles/gpg-agent.conf ~/.gnupg/gpg-agent.conf | |
#ln -sf ~/code/dotfiles/authorized_keys ~/.ssh/authorized_keys | |
#ln -sf ~/code/dotfiles/ssh_config ~/.ssh/config | |
#ln -sf ~/code/dotfiles/ssh_config_includes ~/.ssh/configs | |
#ln -sf /mnt/chromeos/MyFiles/ ~/MyFiles | |
# Add public key to keychain | |
#gpg --recv 86E3A6538517BCC6F7140CF926E38F79A25C6B83 | |
#echo -e "5\ny\n" | gpg --command-fd 0 --expert --edit-key 86E3A6538517BCC6F7140CF926E38F79A25C6B83 trust | |
##### | |
## Start crostini SSH server | |
##### | |
#sudo mv /etc/ssh/sshd_not_to_be_run /etc/ssh/sshd_to_be_run | |
#sudo sed -i '/#PasswordAuthentication yes/ c\PasswordAuthentication no' /etc/ssh/sshd_config | |
#sudo systemctl restart ssh | |
###### | |
## Add docker patch for Crostini | |
## https://www.reddit.com/r/Crostini/comments/9jabhq/docker_now_working/ | |
## Fix for docker perms issue | |
## https://stackoverflow.com/questions/48957195/how-to-fix-docker-got-permission-denied-issue/51362528#51362528 | |
###### | |
#sudo cp ~/code/dotfiles/docker_on_crostini/runc-chromeos /usr/local/sbin/runc-chromeos | |
#sudo chmod +x /usr/local/sbin/runc-chromeos | |
#sudo cp ~/code/dotfiles/docker_on_crostini/daemon.json /etc/docker/daemon.json | |
#sudo service docker restart | |
#sudo chmod 666 /var/run/docker.sock | |
} | |
do_stuff | |
###### | |
## Afterwords | |
###### | |
# Termina Color Scheme backup | |
#cat << 'EOF' > ~/termina_config_backup.json | |
#{ | |
# "magic": "nassh-prefs", | |
# "version": 1, | |
# "nassh": { | |
# "profile-ids": [ | |
# { | |
# "id": "4998", | |
# "json": { | |
# "description": "localhost", | |
# "username": "dwallraff", | |
# "hostname": "penguin.linux.test", | |
# "port": 22, | |
# "nassh-options": "--ssh-agent=gsc", | |
# "argstr": "-A" | |
# } | |
# }, | |
# { | |
# "id": "1026", | |
# "json": { | |
# "description": "pi-hole", | |
# "username": "pi", | |
# "hostname": "192.168.86.32", | |
# "port": 22 | |
# } | |
# } | |
# ], | |
# "welcome/notes-version": 137, | |
# "welcome/show-count": 10 | |
# }, | |
# "hterm": { | |
# "default": { | |
# "audible-bell-sound": "", | |
# "background-color": "#fdf6e3", | |
# "cursor-color": "rgba(101, 123, 131, 0.5)", | |
# "color-palette-overrides": [ | |
# "#073642", | |
# "#dc322f", | |
# "#859900", | |
# "#b58900", | |
# "#268bd2", | |
# "#d33682", | |
# "#2aa198", | |
# "#eee8d5", | |
# "#002b36", | |
# "#cb4b16", | |
# "#586e75", | |
# "#657b83", | |
# "#839496", | |
# "#6c71c4", | |
# "#93a1a1", | |
# "#fdf6e3" | |
# ], | |
# "use-default-window-copy": true, | |
# "ctrl-c-copy": true, | |
# "ctrl-v-paste": true, | |
# "enable-bold": true, | |
# "enable-bold-as-bright": false, | |
# "environment": { | |
# "TERM": "xterm-16color" | |
# }, | |
# "font-family": "\"Source Code Pro\", monospace", | |
# "font-size": 14, | |
# "font-smoothing": "subpixel-antialiased", | |
# "foreground-color": "#657b83", | |
# "keybindings-os-defaults": true, | |
# "pass-ctrl-n": true, | |
# "pass-ctrl-t": true, | |
# "pass-ctrl-tab": true, | |
# "pass-ctrl-w": true, | |
# "user-css": "http://fonts.googleapis.com/css?family=Source+Code+Pro" | |
# } | |
# } | |
#} | |
#EOF | |
# | |
#cat << 'EOF' > ~/reMarkable.txt | |
### For new chromebook/remarkable setup | |
#Get the ssh keys from 1password | |
#Connect reMarkable to chromebook | |
#ssh-copy-id -i remarkable.pub root@10.11.99.1 | |
#scp /tmp/restream.arm.static remarkable:/home/root/restream | |
#ssh remarkable 'chmod +x /home/root/restream' | |
#EOF | |
#cat << 'EOF' > ~/README.txt | |
#If this is a completely new install: | |
# | |
# ## Restore settings to Termina | |
#----- | |
# | |
#- Right-click Secure Shell app icon | |
# - Select options | |
# - Restore backup | |
# - Select termina_config_backup.json | |
# | |
#- Create shortcut | |
# - triple dot -> More tools -> Create shortcut -> New window | |
#EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment