Deploying a Secure Virtual Private Server with Ubuntu

Setting up a secure instance of Ubuntu with Caddy, NGINX, Apache, PHP, MariaDB, PostgreSQL, Redis, and more

Course Summary

Who Is This Course For

  • Developers who want to host their own web applications
  • People who are interested in acquiring "DevOps" skills for future employment
  • People who are interested in best practices for securing a Linux based server

Requirements

  • A functional Windows, Macintosh, or Linux computer & an Internet connection
  • Some experience with Linux is helpful, but not essential. We'll go over the basics

What You Will Learn

  • Deploy a secure Virtual Private Server on a provider like Linode, Digital Ocean, or Vultr
  • Install most commonly used software (web server, PHP, databases, etc)
  • Connect to the VPS using SSH (secure shell) and Kes (public and private SSH keys)
  • Best practices to secure the VPS
  • Learn how ufw, the "Uncomplicated Firewall" works

Description

Many developers have been turning to Virtual Private Servers to host their projects, and with good reason: unlike in a shared hosting environment, you are not running the risk of someone else's badly written code resulting in poor performance or (worse yet) your site being compromised because of someone else's insecure programming.

With a Virtual Private Server, you have complete control over the software that is available to you, and you can fine tune the server to meet your exact needs. But setting up a secure VPS takes a bit of work, and requires a bit of learning.

This course will take you through the basics of setting up a fast, secure VPS on Linode, DigitalOcean, AWS Lightsail, Vultr or any other provider that offers VPS Linux hosting. We'll set up an Ubuntu 20.04 server with the most commonly needed software, and ensure that it is locked down as securely as possible. We will also go through best practices for adding users, software, and services, and ensure that we choose the right kind of server for a particular project. We will learn how to implement public and private keys for secure access using SSH, how to edit files on the remote server through the command line using vi or nano/pico, how to use the most common and useful Linux command line programs, and how to configure the most popular and useful server software.

  • Python's primitive data types: integer, float, string, and boolean 
  •  Python's aggregate data types: tuple, set, dictionary and list 
  •  How to make decisions in Python: if/elif/else  
  • How to loop in Python: for and while loops  
  • How to write functions  
  • How to import from the standard library, and third party packages  
  • How to structure a Python program  
  • How to perform mathematical operations in Python  
  • How to manipulate strings in Python  
  • How to work with classes in Python

And, as the saying goes, much more. Periodically, I'll include "aside" lectures, which focus on a particular aspect of Python in more detail, with simple code examples that are not part of the main project.

 This course requires no previous programming experience.  

Course Pricing

Enroll in course

$16.99 CAD

Buy Now

Course Curriculum

Trevor Sawler

Trevor has more than twenty years of experience in professional software development, and over 30 years of experience as a university professor. As an entrepreneur, he has worked with a broad range of clients, including Thomson Nelson, Hewlett Packard, the Royal Bank of Canada, Keybank, Sprint, and many, many others. He also has extensive management and project management experience. He has led teams of fifty developers and artists on multi-million dollar projects, and much smaller teams on much smaller projects. Trevor continues to work projects for a variety of clients every day. As a professor, he has taught in a wide variety of course areas, including Computer Science, English, Irish, and American literature, and a number of "crossover" courses that bridge the liberal arts and technological fields. He has won regional, national, and international awards for his work in the IT field, and has also won awards for his teaching and research as a University professor.