An introductory book to to web application deployment

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

Deployment 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 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 choices too.


1. Introduction

What is 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 filesystem navigation and files editing. SSH configuration.

4. Introduction to Practical Networking

Exploring networking setup, connecting VPS to the world Internet, private networking with our other servers.

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 the 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 and 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. Monitoring and system logging.

11. Managing Application Runtime

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

12. 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.

13. Managing User Data

Taking care of user uploaded data. Making secure backups.

14. Managing Databases and Key-value Stores

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

15. SELinux

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

16. Uploading Application Code

A comfortable "git push" deployment setup for delivering code to a remote server. Extending it with post deployment tasks to handle all the use-cases we need.

17. DNS and SSL/TLS certificates

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

18. 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.

Who is this not for?

Those who…

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 the Faculty of Informatics, Masaryk University.

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

I believe every aspiring maker on the web should have 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.

In this book I provide comments nobody asked for and unverified facts from the Internet. One day I will build an online community for fellow cats having people flatmates.

Let me know about the launch and updates of this book

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