VPS FOR MAKERS

An introductory book to server deployment for makers on the web

Are you a web developer, aspiring sysadmin or just a curious human?

VPS for Makers is a book about setting up your own virtual server for the purposes of running a web application. It teaches you the basic theory of system administration and goes through many practical tasks that all result in a deployed full featured web application backed by a relational database on Linux.

Who is this for?

The book is intended for beginners and false beginners in system administration, server provisioning and deployment. It's designed to be a good first exposure and deliberately focusing on fundamentals.

Requirements for this book are basic knowledge of HTML, CSS, Internet and computers. Recommended is some knowledge of building web applications and navigating a Linux command line.

Things you will learn

And much more!

Tech stack

We will work with Fedora 29 and CentOS 8 operating systems, deploying Python and Ruby applications, PostgreSQL and Redis databases, configuring NGINX web server and proxy.

All of this wrapped with general theory and approach applicable to other technology choises too.

Chapters

1. Introduction

What his book is about and how to read it. Fedora, CentOS, VPS, virtualization, cloud and other terms explained to get everybody up to speed.

2. Internet Protocols and Services

The theoretical foundation. TCP/IP, internet protocols and network services. Understanding IPv4 and IPv6 addresses.

3. Command Line and SSH

What is a command line. Bash basics including navigation and files editing. SSH configuration.

4. Introduction to Practical Networking

Exploring networking setup, connecting VPS to the world Internet, private networking.

5. Managing Users and Groups

Creating and understanding users and groups for finer and more secure management. Adding system administrator and application users.

6. Filesystem, Files and Directories

Exploring the question on where to look for and put our files on Linux. Understanding Filesystem Hierarchy Standard.

7. Setting Up Permissions

Detail look on Linux file and directory permissions.

8. Installing and Managing Software

Introduction to package management on Fedora/CentOS. Installing 3rd party software.

9. Scripting With Bash

Looking into Bash capabilities for making a reusable provisioning and deployment scripts.

10. Running Processes

Starting and running processes. Using systemd and creating unit files.

11. System Logging

Understanding logging.

12. Managing Application Runtime

Python and Ruby installation from packages, version managers and even from source. Libraries, application servers, monitoring and debugging.

13. Running a Web Application Server

Diving into nginx web application server and proxy. Looking at using TCP and UNIX sockets, important directives for performance and more.

14. Managing User Data

Taking care of user uploaded data. Making secure backups.

15. Managing Databases and Key-value Stores

A close look on running PostgreSQL and Redis in production. Access, permissions, monitoring, backups.

16. SELinux

Theory and practical application of oftentimes overlooked Security-Enhanced Linux. Building custom policy files and troubleshooting.

17. Uploading Application Code

A comfortable "git push" deployment setup for delivering code to a remote server.

18. Post Deployment Tasks

Extending "git push" deployment to handle all use-cases we need.

19. DNS and SSL/TLS certificates

Setting up a custom domain name with auto-renewal Let's Encrypt certificates.

20. Scripting Deployment

A complete walk-through example of scripted provisioning and "git push" deployment of a full featured Rails application including secrets, storage, WebSockets, PostgreSQL, Redis, backups.

Regular chapters are intervened by PRACTICE chapters with practical tasks extending the knowledge of previous chapter/s. They come directly with a solution.

Better not buy if

What is this book not about?

About the authors
Josef & Tiger

Hello, I am Josef Strzibny. A maker, software engineer, dancer, traveler, dreamer.

I am originally a self-taught software developer. I made and deployed first commercial web applications during high school in 2008. I have Bachelor's and Master's degrees in Applied Informatics program from Faculty of Informatics, Masaryk University.

I have worked 3 and half years for Red Hat on the platform and developer experience teams. I am Red Hat Certified Engineer and Fedora developer. I have spent 2 years leading the development team in a small startup as their CTO.

I am maker of Get Tandem which I run since 2011 and I write and contribute to open source from time to time.

I believe every aspiring maker on the web should have the insights into how servers deployment work and what's behind the curtain. I hope this book will be a gentle and light introduction to this topic.

And while you wait for the release of the book I invite you to read my blog where I write about Fedora, Ruby, Vagrant and more.

Hello, my name is Tiger. People call me Meow (don't know why). I like following mice on Twitter, coffee and devops. I feel adventurous when comes to pythons. One day I will build an online community for fellow cats having people flatmates.

Let me know about launch and updates of this book

We use MailChimp for the email list. Learn more about MailChimp's privacy policy.