Ubuntu is a popular Linux distribution open-source operating system that’s operated by Canonical. Canonical supplies support and security updates for every release of Ubuntu and oversees its ongoing development. Ubuntu has multiple editions, including core, server, and desktop, that allow it to run across different types of machines. It can be used on personal computers, servers, supercomputers, in cloud computing, and more.
Ubuntu is popular for a variety of reasons, and it’s attractive to builders who need a free, open source solution that’s secure and easy to use. The popularity of the software combined with the collaborative nature of open source means that Ubuntu is well-supported in the Canonical community. The operating system is user-friendly and customizable, and Ubuntu offers enhanced security within its OS.
Installing Ubuntu is relatively simple, and the initial setup of your server can be completed in a few easy steps.
First, you’ll need to log into the server as root and create a new user. To do this, you must know your server’s public IP address and its password or the private key for the root user’s account (if you installed an SSH key for authentication). Once you are logged in as root, you’ll be able to add the new user account and assign administrative privileges. You’ll also want to configure SSH access for your new user if needed. After creating a regular user for daily use, you will want to enable external access for your regular user and make sure you can SSH into the account directly.
Next, you’ll want to set up a firewall. Ubuntu 20.04 servers come preinstalled with the Uncomplicated Firewall (UFW) to make sure only connections to certain services are allowed. If your servers are running on DigitalOcean, you can use DigitalOcean Cloud Firewalls instead of UFW. We recommend using only one firewall at a time to avoid conflicting rules that may be difficult to debug.
Finally, you’re ready to install any software you need onto your server!
If you are new to Linux, you’ll want to get familiar with the terminal. The terminal is the typical way to interact with a Linux Server, and knowing the basics of the Linux terminal and executing commands through the command line is a great way to get started. Since most people use an OS with a graphical user interface (GUI) for their day-to-day computer needs, Linux has a terminal emulator, which is a program that allows the terminal to be used in a graphical environment.
In the Linux system, the shell is a command-line interface that interprets a user’s commands and script files and tells the server’s operating system what to do with them. After logging into your server with SSH, you’ll be connected to a remote shell, or command prompt, where you can issue commands to the server.
Commands are given by specifying the name of a program and there are many standard Linux tools installed by default in Ubuntu 20.04. Some tools are for navigating the file system, others are for installing software packages, and others are used to configure the system and applications. Running a command is known as a process, and there are a variety of ways to execute commands. Check out this tutorial for some examples that cover the basics of executing commands.
Two common ways to set up your Ubuntu servers are through SSH keys or by installing Webmin on your Ubuntu server. SSH, or secure shell, is an encrypted protocol used to administer and communicate with servers. Installing Webmin allows you to administer your server through a browser-based interface, easily managing user accounts, configuring DNS settings, and more.
Once you have set up remote access to your server over SSH and configured a firewall, you can start installing software on your server. Here we’ll take you through several common pieces of software that may be useful as you get started with Ubuntu 20.04:
Virtual Network Computing, or VNC, is a connection system that allows you to use your keyboard and mouse to interact with a graphical desktop environment on a remote server. It makes managing files, software, and settings on a remote server easier for users who are not yet comfortable with the command line. Installing VNC on an Ubuntu 20.04 server requires you to set up a VNC server with TightVNC and connect to it securely through an SSH tunnel. Then, you’ll use a VNC client program on your local machine to interact with your server.
If you are developing or deploying your own application on your server, you can run it in isolated, lightweight environments, known as containers. One example of this approach is using Docker Compose to containerize a Laravel application for development. Containerized environments are portable, reproducible, and disposable and can be leveraged for developing, testing, and deploying applications to production.
If you would like to store your personal content, like documents and pictures, in a centralized location, install Nextcloud on your Ubuntu 20.04 server. All of Nextcloud’s features are open-source, and the software allows you to secure and control your own sensitive data.
TensorFlow is an open-source machine learning software library. Often, TensorFlow is used to train neural networks. Install TensorFlow on your Ubuntu 20.04 server to get started building computer vision, natural language processing (NLP), and sequence modeling projects.
Postfix is a popular open-source Mail Transfer Agent (MTA). Install Postfix on your Ubuntu 20.04 server to route and deliver email on a Linux system.
Install the LEMP software stack on your Ubuntu 20.04 server to serve dynamic web pages and web applications written in PHP. With LEMP, web pages are served by the Nginx server, the backend data is stored in a MySQL database, and the dynamic processing is handled by PHP. Install a “LAMP” stack on your Ubuntu 20.04 server to enable a server to host dynamic websites and web apps written in PHP. The site data is stored in a MySQL database, and dynamic content is processed by PHP.
Python is a flexible and versatile programming language, with strengths in scripting, automation, data analysis, machine learning, and back-end development. Learn how to install Python on an Ubuntu 20.04 server, as well as set up a programming environment, with this tutorial.
The Elastic Stack is a collection of open-source software produced by Elastic that allows for centralized logging. Install the Elastic Stack on your Ubuntu 20.04 server to search, analyze, and visualize logs generated from any source in any format.
Overall, if you’re looking for an operating system that’s well supported by cloud providers, incredibly versatile, and has available resources from a large community, Ubuntu is a fantastic choice. For more developer resources related to Ubuntu 20.04, check out our community articles.
If you’ve enjoyed this tutorial and our broader community, consider checking out our DigitalOcean products which can also help you achieve your development goals.