My custom Lubuntu 18.04 home server packages list

This time, I would like to share a small list of packages that I’ve put together in order to transform my basic home server running Ubuntu 18.04.1 LTS (Bionic Beaver) into a state of the art home server perfect to use for data science and more!

if you would like to replicate this setup, I have written a series of articles describing the steps needed to build this system. I have automated most of the process and they require very little input.

This is just the list of packages that are installed following that process.

Difficulty: Super Easy.

Time consuming: About 3 to 4 hours.

Cost: Free (Open Source Licensing).

Goal: To transform your basic home server into a state of the art technological tool, able to process complex processes.

Requirements

Packages list

-for Updates and installs

apt-fast

Use apt-fast instead of apt-get for a speedy update. “apt-fast” is a shell script wrapper for “apt-get” that improves updated and package download speed by downloading packages from multiple connections simultaneously.

Manual Install:

sudo add-apt-repository ppa:apt-fast/stable
sudo apt-get update
sudo apt-get -y install apt-fast

From now on, I will use apt-fast to update and install new packages.

-for Desktop environment

Lubuntu

Lubuntu is a fast and lightweight operating system with a clean and easy-to-use user interface. It is a Linux system, that uses the minimal desktop LXDE, and a selection of light applications. Because of this, Lubuntu has very low hardware requirements.

Website: https://lubuntu.me/

Manual Install:

sudo apt-fast -y install lubuntu-desktop

The full list of packages installed with the Lubuntu Desktop Environment is found here.

-for Web browsing

Firefox

Safe and easy web browser from Mozilla.

Website: https://www.mozilla.org/en-US/firefox

Manual Install:

sudo apt-fast -y install firefox

Chromium

Chromium is the open-source project behind Google Chrome.

Website: https://www.chromium.org/

Manual Install:

sudo apt-fast -y install chromium-browser

Flash Player

Adobe® Flash® Player is a lightweight browser plug-in and rich Internet application runtime that delivers consistent and engaging user experiences, stunning audio/video playback, and exciting gameplay.

Website: https://get.adobe.com/flashplayer/

Manual Install:

sudo apt-fast -y install flashplugin-installer

-for File sharing

Samba

A Samba file server enables file sharing across different operating systems over a network. It lets you access your desktop files from a laptop and share files with Windows and macOS users.

Documentation: https://www.samba.org/samba/docs/

Website: https://www.samba.org

Manual Install:

sudo apt-fast -y install tasksel
sudo tasksel install samba-server

# Make a fresh clean configuration file
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf'

# Command to create a new Samba user:
sudo smbpasswd -a $USER

# Add to Samba configuration file: /etc/samba/smb.conf
sudo tee -a /etc/samba/smb.conf <<< "[homes]"
sudo tee -a /etc/samba/smb.conf <<< "   comment = Home Directories"
sudo tee -a /etc/samba/smb.conf <<< "   browseable = yes"
sudo tee -a /etc/samba/smb.conf <<< "   read only = no"
sudo tee -a /etc/samba/smb.conf <<< "   create mask = 0700"
sudo tee -a /etc/samba/smb.conf <<< "   directory mask = 0700"
sudo tee -a /etc/samba/smb.conf <<< "   valid users = %S"

# For Samba GUI to work
sudo touch /etc/libuser.conf

# Restart Samba Server
sudo systemctl restart smbd
sudo systemctl status smbd

Dropbox

Dropbox brings your files together, in one central place. They’re easy to find and safely synced across all your devices—so you can access them anytime, anywhere. No more wasting the day tracking down work.

Website: https://www.dropbox.com

Manual Install:

sudo apt install -y nautilus-dropbox

FileZilla

FileZilla is a cross-platform FTP application, consisting of FileZilla Client and FileZilla Server. Client binaries are available for Windows, Linux, and macOS.

Documentation: https://wiki.filezilla-project.org/Documentation

Website: https://filezilla-project.org/

Manual Install:

sudo apt-fast -y install filezilla

-for Office work

Libre Office

LibreOffice is a powerful office suite. Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. LibreOffice includes several applications compatible with Microsoft Office that make it the most powerful Free and Open Source office suite on the market.

Website: https://www.libreoffice.org/

Manual Install:

sudo apt-fast -y install libreoffice

LaTeX

LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents.

Documentation: https://www.latex-project.org/help/documentation/

Website: https://www.latex-project.org/

Manual Install:

sudo apt-fast -y install texlive-full
sudo apt-fast -y install texmaker

-for Text editing

Emacs

Emacs is the perfect package for large files editing. It belongs to a family of text editors that are characterized by their extensibility.

Documentation: http://www.gnu.org/software/emacs/documentation.html

Website: http://www.gnu.org/software/emacs/

Manual Install:

sudo apt-fast -y install emacs

Geany

Geany is a lightweight GUI text editor. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. It supports many filetypes and has some nice features.

Documentation: https://www.geany.org/Documentation/Manual

Website: https://www.geany.org/

Manual Install:

sudo apt-fast -y install geany

Atom

Atom is a free and open-source text and source code editor for macOS, Linux, and Microsoft Windows with support for plug-ins written in Node.js, and embedded Git Control.

Documentation: https://flight-manual.atom.io

Website: https://atom.io/

Manual Install:

sudo add-apt-repository ppa:webupd8team/atom
sudo apt-fast update
sudo apt-fast -y install atom

-for Image creation & editing

Gimp

GNU Image Manipulation Program (GIMP) is a graphics editor used for image retouching and editing. GIMP is a cross-platform image editor available for GNU/Linux, OS X, Windows, and more operating systems. It is free software. Whether you are a graphic designer, photographer, illustrator, or scientist, GIMP provides you with sophisticated tools to get your job done. You can further enhance your productivity with GIMP thanks to many customization options and 3rd party plugins.

Documentation: https://www.gimp.org/docs/

Website: https://www.gimp.org/

Manual Install:

sudo apt-fast -y install gimp

-for Video creation & editing

OBS Studio

OBS Studio is an Open Broadcaster Software free and open-source able to stream and record the desktop environment.

Resources: https://obsproject.com/forum/resources/

Website: https://obsproject.com/

Manual Install:

sudo apt-fast -y install ffmpeg
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-fast update
sudo apt-fast -y install obs-studio

VLC Media player

VLC is a free and open-source cross-platform multimedia player and framework that plays most multimedia files as well as DVDs, Audio CDs, VCDs, and various streaming protocols.

Website: www.videolan.org/vlc/

Manual Install:

sudo apt-fast -y install vlc

Blender

Blender is the free and open-source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.

Documentation: https://www.blender.org/support/

Website: https://www.blender.org

Manual Install:

sudo apt-fast -y install blender

-for Audio creation & editing

Audacity

Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, Mac OS X, GNU/Linux, and other operating systems.

Documentation: https://www.audacityteam.org/help/documentation/

Website: https://www.audacityteam.org

Manual Install:

sudo apt-fast -y install  audacity

Ardour

Ardour is a hard disk recorder and digital audio workstation application. It runs on Linux, macOS, FreeBSD and Microsoft Windows.

Documentation: http://manual.ardour.org/toc/

Website: http://ardour.org

Manual Install:

sudo apt-fast -y install ardour

Spotify

Music streaming service for everyone. Millions of songs. No credit card needed.

Website: https://www.spotify.com

Manual Install:

sudo apt-fast -y install snapd
sudo snap install spotify

-for Database management

MariaDB

One of the most popular database servers. Made by the original developers of MySQL. Guaranteed to stay open source. MariaDB is a community-developed fork of the MySQL relational database management system intended to remain free under the GNU GPL.

Documentation: https://mariadb.org/learn/

Website: https://mariadb.org

Manual Install:

sudo apt-fast -y install mariadb-server mariadb-client
sudo mysql_secure_installation

You will be asked these questions:

  Enter current password for root (enter for none): <-- press Enter
  Set root password? [Y/n] <-- Y
  New password: <-- Enter the new MariaDB root password here
  Re-enter new password: <-- Repeat the password here
  Remove anonymous users? [Y/n] <-- Y
  Disallow root login remotely? [Y/n] <-- Y
  Remove test database and access to it? [Y/n] <-- Y
  Reload privilege tables now? [Y/n] <-- Y

Then, execute these commands:

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

On your notebook, you should create a new section as follows:

Title: MariaDB

User: root

Password: Your super secret password that you typed just a few seconds ago.

PostgreSQL

PostgreSQL is a powerful, open-source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

Documentation: https://www.postgresql.org/docs/

Website: https://www.postgresql.org

Manual Install:

sudo apt-fast -y install postgresql-10

In order to setup a password for PostgreSQL, you can type as follows:

sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'psqlpassword';"

On your notebook, you should create a new section as follows:

Title: PostgreSQL

User: postgres

Password: psqlpassword

SQLite3

SQLite is a relational database management system contained in a C programming library. In contrast to many other database management systems. SQLite is the most used database engine in the world.

Documentation: https://www.sqlite.org/docs.html

Website: https://www.sqlite.org

Manual Install:

sudo apt-fast -y install sqlite3

MongoDB

MongoDB is a free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas.

Documentation: https://docs.mongodb.com

Website: https://www.mongodb.com

Manual Install:

sudo apt-fast -y install  mongodb
sudo systemctl status mongodb

Execute this command to verify connection status: A returned value of 1 for the ok field in the response indicates that the server is working properly.

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Please note that Mongo will not add any user nor a password. It will be up to you to set up from here onward.

Neo4J

Neo4j is a graph database management system developed by Neo4j, Inc. Described by its developers as an ACID-compliant transactional database with native graph storage and processing, Neo4j is the most popular graph database according to DB-Engines ranking.

Learn: https://neo4j.com/graphacademy/

Website: https://neo4j.com

Manual Install:

sudo wget -O - https://debian.neo4j.org/neotechnology.gpg.key | sudo apt-key add -
sudo echo 'deb https://debian.neo4j.org/repo stable/' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt-fast update
sudo apt-fast -y install neo4j
sudo systemctl start neo4j

With the default configuration, Neo4j only accepts local connections. To accept non-local connections, follow the instructions below to edit this file:

/etc/neo4j/neo4j.conf

sudo nano /etc/neo4j/neo4j.conf

Eliminate the ”#” symbol in front of the following line and exit by saving your changes.

# dbms.connectors.default_listen_address=0.0.0.0

For changes to take effect, run the following command:

sudo systemctl restart neo4j

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: Neo4j

Open browser to: http://localhost:7474/browser/

User: neo4j

Password: neo4j

-for Database interface

phpMyAdmin

phpMyAdmin is a free and open-source administration tool for MySQL and MariaDB. As a portable web application written primarily in PHP, it has become one of the most popular MySQL administration tools, especially for web hosting services.

Website: https://www.phpmyadmin.net

Manual Install:

sudo apt-fast -y install phpmyadmin

You will see the following questions:

Web server to configure automatically: <-- Select the option: apache2
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.

To set the root access to PHPMyAdmin, run in the terminal as follows:

sudo mysql -u root -D mysql -e "CREATE USER 'admin_myphpadmin'@'localhost' IDENTIFIED BY 'myphpadminpassword'; GRANT ALL PRIVILEGES ON *.* TO 'admin_myphpadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;"

Alternative, you could use the following script by typing from the terminal as follows:

$ sudo mysql -u root

> CREATE USER 'admin_myphpadmin'@'localhost' IDENTIFIED BY 'myphpadminpassword';
> GRANT ALL PRIVILEGES ON *.* TO 'admin_myphpadmin'@'localhost' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
> exit

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: phpMyAdmin

Open browser to: http://localhost/phpmyadmin

user: admin_myphpadmin

password: myphpadminpassword

MySQL Workbench

MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. MySQL Workbench is available on Windows, Linux and Mac OS X.

Website: https://www.mysql.com/products/workbench/

Manual Install:

sudo apt-fast -y install mysql-workbench

To connect, you can use the same user name and password as phpMyAdmin since it is connecting to the same database if you are connecting to localhost.

Title: Workbench

user: admin_myphpadmin

password: myphpadminpassword

pgAdmin

pgAdmin is the most popular and feature-rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.

Documentation: https://www.pgadmin.org/docs

Website: https://www.pgadmin.org

Manual Install:

sudo apt-fast -y install pgadmin3

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: PostgreSQL

User: postgres

Password: psqlpassword

DB Browser for SQLite

DB Browser for SQLite is a high quality, visual, open-source tool to create, design, and edit database files compatible with SQLite.

Website: https://sqlitebrowser.org

Manual Install:

sudo apt-fast -y install sqlitebrowser

-for Data Science

Octave

GNU Octave is free software that runs on GNU/Linux, macOS, BSD, and Windows. Compatible with many Matlab scripts featuring a high-level programming language, primarily intended for numerical computations. It has powerful mathematics-oriented syntax with built-in plotting and visualization tools.

Documentation: https://octave.org/doc/interpreter

Website: https://www.gnu.org/software/octave

Manual Install:

sudo apt-fast -y install octave

SageMath

SageMath is a computer algebra system with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, number theory, calculus, and statistics.

Documentation: http://www.sagemath.org/library.html

Website: http://www.sagemath.org

Manual Install:

sudo apt-fast -y install sagemath

Maxima

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android.

Documentation: http://maxima.sourceforge.net/documentation.html

Website: http://maxima.sourceforge.net

Manual Install:

sudo apt-fast -y install wxmaxima

Python3

Python is a programming language that lets you work quickly and integrate systems more effectively.

Documentation: https://docs.python.org/3/

Website: https://www.python.org

Manual Install:

sudo apt-fast -y install python3 python3-pip

RStudio Desktop

RStudio is a free and open-source integrated development environment for R, a programming language for statistical computing and graphics.

The current version at the time of this writing is: 1.1.453 Released: 2018-05-16

Documentation: http://docs.rstudio.com

Website: https://www.rstudio.com/products/rstudio

Manual Install:

sudo apt-fast -y install r-base
sudo apt-fast -y install libssl-dev libcurl4-openssl-dev libxml2-dev
wget https://download1.rstudio.org/rstudio-xenial-1.1.453-amd64.deb
sudo dpkg -i rstudio-xenial-1.1.453-amd64.deb
rm -f rstudio-xenial-1.1.453-amd64.deb
sudo apt-fast -y -f install
sudo su - -c "R -e \"install.packages('rmarkdown', repos='https://cran.rstudio.com/')\""

RStudio Server

RStudio is a free and open-source integrated development environment for R, a programming language for statistical computing and graphics.

The current version at the time of this writing is: 1.1.456 Released: 2018-07-19

Documentation: http://docs.rstudio.com/ide/server-pro

Website: https://www.rstudio.com/products/rstudio

Manual Install:

wget https://download2.rstudio.org/rstudio-server-1.1.456-amd64.deb
sudo dpkg -i rstudio-server-1.1.456-amd64.deb
rm -f rstudio-server-1.1.456-amd64.deb
sudo apt-fast -y -f install

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: RStudio Server

Open browser to: http://localhost:8787.

User name: administrator

Password: <your_password> in my case is mysupersecretpassword

Shiny Server

Open Source Shiny Server provides a platform on which you can host multiple Shiny applications on a single server, each with their own URL or port.

Documentation: http://docs.rstudio.com/shiny-server/

Website: https://www.rstudio.com/products/shiny/download-server/

sudo su - -c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.7.907-amd64.deb
sudo dpkg -i shiny-server-1.5.7.907-amd64.deb
rm -f shiny-server-1.5.7.907-amd64.deb
sudo apt-fast -y -f install

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: Shiny Server

Open browser to: http://localhost:3838.

R essentials

To install R essential packages, we could do it as follows from the terminal.

sudo su - -c "R -e \"install.packages('repr', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('IRdisplay', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('evaluate', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('crayon', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('pbdZMQ', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('uuid', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('digest', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('devtools', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('tidyverse', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('caret', repos='https://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('nnet', repos='https://cran.rstudio.com/')\""

An alternative one command line that install multiple packages, will be as follows:

$ sudo su - -c "R -e \"install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon') , repos='https://cran.rstudio.com/')\""
$ sudo su - -c "R -e \"install.packages(c('pbdZMQ', 'uuid', 'digest', 'devtools') , repos='https://cran.rstudio.com/')\""
$ sudo su - -c "R -e \"install.packages(c('tidyverse', 'caret', 'nnet') , repos='https://cran.rstudio.com/')\""

To know the path to your R libraries:

sudo su - -c "R -e \".libPaths()\""

-for Education

Geogebra

GeoGebra is an interactive geometry, algebra, statistics and calculus application, intended for learning and teaching mathematics and science from primary school to university level.

Resources: https://www.geogebra.org/materials

Website: https://www.geogebra.org

Manual Install:

sudo apt-fast -y install geogebra-gnome

-for Programming

Ruby

Ruby is a dynamic, open-source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.

Documentation: https://www.ruby-lang.org/en/documentation

Website: https://www.ruby-lang.org/en/

Manual Install:

sudo apt-fast -y install ruby ruby-dev

In order to enable Ruby Gems from the bash, just do as follows:

echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
sudo gem update --system

-for Development

Jupyter Notebooks

Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text. Uses include data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.

Documentation: http://jupyter.org/documentation

Website: http://jupyter.org

Manual Install:

pip3 install jupyter

In order to install IRKernel for Jupyter, we can add different kernels from the drop down menu as follows:

sudo su - -c "R -e \"devtools::install_github('IRkernel/IRkernel')\""
sudo su - -c "R -e \"IRkernel::installspec()\""

If you want to run locally, just type in the terminal as follows:

jupyter notebook

If you want to connect to your server using SSH Tunneling from a different computer running Linux or Mac, simply run the following SSH command from the terminal:

ssh -L 8888:localhost:8888 <server_username>@<server_ip_address>

Where <server_username> is your user name; in my case is administrator and <server_ip_address> is your server’s IP address, which is my home network is: 192.168.1.228 as seen in the installation process.

Open browser to: http://localhost:8888.

To stop, just press Ctrl + c in the terminal.

Spyder

Spyder is an open-source cross-platform integrated development environment for scientific programming in the Python language. Spyder integrates NumPy, SciPy, Matplotlib, and IPython, as well as other open-source software.

Documentation: https://pythonhosted.org/spyder/

Manual Install:

sudo apt-fast -y install spyder3

Hydrogen

Hydrogen is an interactive coding environment that supports Python, R, JavaScript, and other Jupyter kernels to be used from within Atom.

apm stands for “atom package manager”.

To install Hydrogen, Atom must be installed first.

Documentation: https://nteract.gitbooks.io/hydrogen/docs/Usage/GettingStarted.html

Website: https://nteract.gitbooks.io/hydrogen/

Manual Install:

apm install hydrogen

-for Content management

Jekyll

Jekyll transforms your plain text into static websites and blogs. Jekyll is a simple, blog-aware, static site generator for personal, project, or organization sites. Written in Ruby by Tom Preston-Werner, GitHub’s co-founder, it is distributed under an open-source license.

In fact, this site was built using Jekyll.

Documentation: https://jekyllrb.com/docs/home/

Website: https://jekyllrb.com

Manual Install:

gem install jekyll bundler
jekyll --version
gem list jekyll
gem update jekyll

Joomla

Joomla! is a free and open-source content management system for publishing web content, developed by Open Source Matters, Inc. It is built on a model–view–controller web application framework that can be used independently of the CMS.

Documentation: https://docs.joomla.org

Website: https://www.joomla.org

Manual Install:

First, we need to create a Joomla database named joomladb.

sudo mysql -u root -D mysql -e "CREATE DATABASE joomladb; CREATE USER 'admin_joomla'@'localhost' IDENTIFIED BY 'myjoomlapassword'; GRANT ALL ON joomladb.* TO 'admin_joomla'@'localhost' IDENTIFIED BY 'myjoomlapassword' WITH GRANT OPTION; FLUSH PRIVILEGES;"

Now, we need to execute the following commands in order to install.

wget https://github.com/joomla/joomla-cms/releases/download/3.8.10/Joomla_3.8.10-Stable-Full_Package.tar.bz2
sudo mkdir -p /var/www/html/joomla
sudo tar xvjf Joomla_3.8.10-Stable-Full_Package.tar.bz2 -C /var/www/html/joomla
sudo chown -R www-data:www-data /var/www/html/joomla/
sudo chmod -R 755 /var/www/html/joomla/
sudo systemctl restart apache2.service
rm -f Joomla_3.8.10-Stable-Full_Package.tar.bz2

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: Joomla

Open browser to: http://localhost/joomla.

Database: joomladb

User: admin_joomla

Password: myjoomlapassword

WordPress

WordPress is open source software you can use to create a beautiful website, blog, or app. WordPress is both free and priceless at the same time.

Website: https://wordpress.org

Manual Install:

First, we need to create a WordPress database named wordpressdb.

sudo mysql -u root -D mysql -e "CREATE DATABASE wordpressdb; CREATE USER 'admin_wp'@'localhost' IDENTIFIED BY 'mywppassword'; GRANT ALL ON wordpressdb.* TO 'admin_wp'@'localhost' IDENTIFIED BY 'mywppassword' WITH GRANT OPTION; FLUSH PRIVILEGES;"

Now, we need to execute the following commands in order to install.

wget wget https://wordpress.org/latest.tar.gz
sudo tar -zxvf latest.tar.gz -C /var/www/html
sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo chmod -R 755 /var/www/html/wordpress/
sudo systemctl restart apache2.service
rm -f latest.tar.gz

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: WordPress

Open browser to: http://localhost/wordpress.

Database: wordpressdb

User: admin_wp

Password: mywppassword

-for Collaboration

Git

Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.

Documentation: https://git-scm.com/docs

Website: https://git-scm.com

Manual Install:

sudo apt-fast -y install git

Zoom

Zoom is the leader in modern enterprise video communications, with an easy, reliable cloud platform for video and audio conferencing, collaboration, chat, and webinars across mobile devices, desktops, telephones, and room systems.

Website: https://www.zoom.us

Manual Install:

wget https://www.zoom.us/client/latest/zoom_amd64.deb
sudo dpkg -i zoom_amd64.deb
sudo apt-fast -y -f install

Slack

Slack is a place where your team comes together to collaborate, important information can be found by the right people, and your tools pipe in information when and where you need it.

Website: https://slack.com

Manual Install:

sudo snap install slack --classic

Docker

Docker is a computer program that performs operating-system-level virtualization also known as containerization. The following Linux commands will start Docker and ensure that starts after the reboot.

Documentation: https://docs.docker.com

Learning: https://training.docker.com

Website: https://www.docker.com

Manual Install:

sudo apt-fast -y install docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version

-for System administration

Webmin

Webmin is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, file sharing and much more. Webmin removes the need to manually edit Unix configuration files like /etc/passwd, and lets you manage a system from the console or remotely.

Documentation: http://www.webmin.com/docs.html

Website: http://www.webmin.com

Manual Install:

wget -qO- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
sudo add-apt-repository "deb http://download.webmin.com/download/repository sarge contrib"
sudo apt update
sudo apt-fast -y install webmin

To keep a record of user names and passwords, on your notebook, you should create a new section as follows:

Title: Webmin

Open browser to: https://localhost:10000/

User: <your_user_name> in my case is administrator.

Password: <your_password> in my case is mysupersecretpassword.

-for Protection

Clamav Antivirus

ClamAV® is an open-source antivirus engine for detecting trojans, viruses, malware & other malicious threats.

Documentation: https://www.clamav.net/documents

Website: https://www.clamav.net

Manual Install:

sudo apt-fast -y install clamav clamav-daemon clamav-freshclam clamtk
sudo service clamav-daemon start

ufw Firewall

Uncomplicated Firewall is a program for managing a Netfilter firewall designed to be easy to use. It uses a command-line interface consisting of a small number of simple commands and uses iptables for configuration.

Documentation: http://manpages.ubuntu.com/manpages/bionic/en/man8/ufw.8.html

Manual Install:

sudo apt-fast -y install ufw
sudo ufw enable

To open ports, you must follow the documentation above, some examples are as follows:

sudo ufw allow ssh      # Secure Shell remote access
sudo ufw allow samba    # Network file share
sudo ufw allow 80/tcp   # Webserver
sudo ufw allow 443/tcp  # Https Webserver
sudo ufw allow 4000/tcp # Jekyll
sudo ufw allow 3306/tcp # MariaDB
sudo ufw allow 5432/tcp # PostgreSQL
sudo ufw allow 8787/tcp # R Studio Server
sudo ufw allow 3838/tcp # Shiny
sudo ufw allow 7474/tcp # Neo4j
sudo ufw allow 8888/tcp # Jupyter Notebooks
sudo ufw allow from any to any port 10000 proto tcp # Webmin

Final thoughts

I hope you enjoy your new system as much as I enjoy mine. I will try to come back and update as much as possible. Please note that there’s so much information to share, if I miss anything, please let me know.

I thank you for keeping this long. I will appreciate any feedback you might have.

Feel free to share and let’s have fun!