Skip to content

Instantly share code, notes, and snippets.

@instance-id
Last active May 17, 2019 00:53
Show Gist options
  • Save instance-id/e3a345a02137272fbb94e7f990addd4f to your computer and use it in GitHub Desktop.
Save instance-id/e3a345a02137272fbb94e7f990addd4f to your computer and use it in GitHub Desktop.
WIP server setup
#!/bin/bash
sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install -y \
apt-transport-https \
curl \
ca-certificates \
build-essential \
software-properties-common \
file \
git \
mc \
htop \
sysstat \
unzip \
jq \
gcc \
libkrb5-dev \
gnupg-agent
if [ ! -d "/usr/local/bin/micro" ]; then sudo curl https://getmic.ro | bash; fi && \
sudo mv micro /usr/local/bin/micro
sudo apt install zsh
echo 'export SHELL=$(which zsh)
exec $(which zsh) -l' >> ~/.profile
wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh
chmod +x install.sh && ./install.sh
rm install.sh
source ~/.zshrc
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
nvm install node
curl -fsSL https://raw.githubusercontent.com/fishworks/gofish/master/scripts/install.sh | bash
gofish init
mkdir ~/.zshrc.d
rm -rf $HOME/.zshrc
file_location=$HOME/.zshrc
cat > $file_location <<- "EOF"
export ZSH=$HOME/.oh-my-zsh
ZSH_THEME="af-magic"
plugins=(git zsh-autosuggestions)
source $ZSH/oh-my-zsh.sh
# Source all files in ~/.zshrc.d/
for i in ~/.zshrc.d/* ; do
if [ -r "$i" ]; then
source $i
fi
done
EOF
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh-syntax-highlighting" --depth 1
echo "source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> "$HOME/.zshrc.d/paths.zsh" && \
echo "alias mi=\"micro\"">> "$HOME/.zshrc.d/aliases.zsh" && \
echo "alias ll=\"ls -lah\"">> "$HOME/.zshrc.d/aliases.zsh" && \
echo "export PATH=$HOME/bin:/usr/local/bin:$PATH">> "$HOME/.zshrc.d/paths.zsh" && \
echo "export PATH=\"$HOME/linuxbrew/.linuxbrew/bin:$PATH\"">> "$HOME/.zshrc.d/paths.zsh" && \
echo "fpath=($HOME/linuxbrew/.linuxbrew/share/zsh-completions $fpath)">> "$HOME/.zshrc.d/paths.zsh" && \
echo "export NVM_DIR=\"$HOME/.nvm\"">> "$HOME/.zshrc.d/paths.zsh"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo groupadd docker
sudo usermod -aG docker $USER
DISK_NAME="web2_data"
echo "DISK_NAME=$DISK_NAME"
lsblk
sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
sudo mkdir -p /mnt/disks/$DISK_NAME
sudo mount -o discard,defaults /dev/sdb /mnt/disks/$DISK_NAME
sudo chmod a+w /mnt/disks/$DISK_NAME
echo UUID=`blkid -s UUID -o value /dev/sdb`
echo UUID=`sudo blkid -s UUID -o value /dev/sdb` /mnt/disks/$DISK_NAME ext4 discard,defaults,nofail 2 | sudo tee -a /etc/fstab
docker volume create --driver local portainer_data
docker container run -d --name portainer -p 4575:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$PWD:$PWD" \
-w="$PWD" \
--restart=always \
--mount source=portainer_data,target=/data portainer/portainer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment