An introductory book
to web application deployment.

Demystify deployment by learning the crucial ground work for deploying Python and Ruby web applications from network theory to managing database backups. Learn how to think about deployment and how to use Bash to write your first deploy script.

Sign up for updates

The book

The book is written for software engineers, programmers, indie hackers, and makers on the web. It teaches system administration, server provisioning and deployment of web applications. It's designed to be both a good first exposure and a great second dive in.

Inside we talk about all the moving parts of deploying full-stack web applications. Internet and DNS. NGINX web server. Deployment with git. Security with SELinux. It's a distilled knowledge of a few books and various documentation sources in a single packaging.

Chapters

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

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

7. Permissions

Detail look on Linux file and directory permissions.

8. Package Repositories

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 and running systemd services. Monitoring and system logging.

11. Defining Services

Writing and editing systemd unit files.

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. Extending it with post deployment tasks to handle all the use-cases we need.

18. DNS and SSL/TLS certificates

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

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

Authors

Hello, I am Josef Strzibny, a full stack web 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. I have worked for Red Hat on the platform and developer experience teams as a Linux packager. I was a Red Hat Certified Engineer.

Hey hey, 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.

Updates

Join 400+ people already waiting for the final release.

Interested in what you have seen so far? Leave us your e-mail address and we get back to you with the book updates. No spam. Unsubscribe any time.

MailChimp is used to manage this mailing list. Tracking is turned off. Double-opt in, so please check your spam folder, confirm and mark as not spam so you can receive emails from me. Learn more about MailChimp's privacy policy.

© 2018-2020 Josef Strzibny