Created
December 11, 2016 16:39
-
-
Save nanoninja/69af7cc909477dbce61bed217d329378 to your computer and use it in GitHub Desktop.
Ubuntu Deb Installation
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
#!/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