Skip to content

Instantly share code, notes, and snippets.

@nanoninja
Created December 11, 2016 16:39
Show Gist options
  • Save nanoninja/69af7cc909477dbce61bed217d329378 to your computer and use it in GitHub Desktop.
Save nanoninja/69af7cc909477dbce61bed217d329378 to your computer and use it in GitHub Desktop.
Ubuntu Deb Installation
#!/bin/bash
# URLS
URL_DOCKER="deb https://apt.dockerproject.org/repo ubuntu-xenial main"
URL_GOLANG="https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz"
URL_MONGODB="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.4.0.tgz"
URL_NETBEANS="http://download.netbeans.org/netbeans/8.2/final/bundles/netbeans-8.2-php-linux-x64.sh"
# Upgrade and install
add-apt-repository -y ppa:numix/ppa
# Add docker key
apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sleep 2
# Pre install
echo $URL_DOCKER > /etc/apt/sources.list.d/docker.list
echo "mysql-server mysql-server/root_password password root" | sudo debconf-set-selections
echo "mysql-server mysql-server/root_password_again password root" | sudo debconf-set-selections
# Remove lock
rm /var/lib/dpkg/lock && dpkg --configure -a
sleep 1
apt update && sudo apt upgrade -y &&
apt install -y \
curl git filezilla tree bleachbit vim terminator unzip zip chromium-browser \
nginx-full php7.0-fpm php7.0-json php7.0-soap php7.0-xsl php7.0-sqlite3 \
php7.0-gd php7.0-zip php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-dev \
php-pear mysql-server screen \
numix-gtk-theme numix-folders numix-icon-theme numix-icon-theme-circle \
numix-icon-theme-square numix-blue-gtk-theme openjdk-8-jdk docker-engine \
&& apt clean && rm -rf /tmp/*
sleep 1
# Install Netbeans
wget --progress=bar:force $URL_NETBEANS -O /tmp/netbeans.sh \
&& chmod +x /tmp/netbeans.sh; sleep 1 \
&& /tmp/netbeans.sh --silent \
&& rm -Rf /tmp/netbeans.sh
# Install Go
wget --progress=bar:force $URL_GOLANG -O /tmp/go.tar.gz \
&& tar -C /usr/local -xzf /tmp/go.tar.gz \
&& mv /usr/local/go /usr/local/go1.7.4 \
&& ln -s /usr/local/go1.7.4 /usr/local/go \
&& mkdir -p $HOME/Workspace/Go \
&& chown -R $SUDO_USER:$SUDO_USER $HOME/Workspace
# Install MongoDB
wget --progress=bar:force $URL_MONGODB -O /tmp/mongodb.tgz \
&& tar -C /usr/local -xzf /tmp/mongodb.tgz \
&& mv /usr/local/mongodb-linux-x86_64-ubuntu1604-3.4.0 /usr/local/mongodb3.4.0 \
&& ln -s /usr/local/mongodb3.4.0 /usr/local/mongodb \
&& mkdir /var/{lib,log}/mongodb \
&& mkdir /etc/mongodb \
&& useradd -r --home-dir /usr/local/mongodb mongodb \
&& chown -R mongodb:mongodb /usr/local/mongodb3.4.0 /usr/local/mongodb /var/lib/mongodb /var/log/mongodb
# MongoDB basic configuration
echo '# Basic configuration
net:
port: 27017
storage:
dbPath: "/var/lib/mongodb"
directoryPerDB: false
processManagement:
fork: false
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true' > /etc/mongodb/mongod.conf
# MongoDB service configuration
echo '[Unit]
Description=MongoDB service
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/local/mongodb/bin/mongod --quiet --config /etc/mongodb/mongod.conf
[Install]
WantedBy=multi-user.target' > /etc/systemd/system/mongod.service
# MongoDB service
systemctl enable mongod && service mongod start && service mongod status
# Numix settings
sudo -H -u $SUDO_USER bash -c 'gsettings set org.gnome.desktop.interface gtk-theme "Numix"'
sudo -H -u $SUDO_USER bash -c 'gsettings set org.gnome.desktop.interface icon-theme "Numix-Circle"'
# Nginx config
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
mkdir -p $HOME/Workspace/Web
# Bash configuration
echo "# Go" >> $HOME/.profile
echo "export GOPATH=$HOME/Workspace/Go" >> $HOME/.profile
echo "PATH=\$PATH:/usr/local/go/bin" >> $HOME/.profile
echo "" >> $HOME/.profile
echo "# MongoDB"
echo "PATH=\$PATH:/usr/local/mongodb" >> $HOME/.bashrc
echo "alias ip1='ifconfig | grep '\''inet '\'' | grep -v 127.0.0.1 | cut -d: -f2 | awk '\''{ print $2 }'\'''" >> $HOME/.bash_aliases
echo "alias ip2='ifconfig -a | perl -nle'\''/(\d+\.\d+\.\d+\.\d+)/ && print '\'''" >> $HOME/.bash_aliases
echo "alias ip3='curl ifconfig.co'" >> $HOME/.bash_aliases
chown $SUDO_USER:$SUDO_USER $HOME/.bash_aliases
chown $SUDO_USER:$SUDO_USER $HOME/.bashrc
source $HOME/.bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment