Deploy Your Applications
With Confidence

Demystify deployment by learning the crucial ground work
for deploying Ruby and Python web applications
from network theory to managing database backups.
Learn how everything works with plain Bash.

Buy the pre-release for $35
Prefer waiting? 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. Inside, I talk about all the moving parts of deploying full-stack web applications, and how to automate them. It's a distilled knowledge of a few books and various documentation sources in a single packaging.

Here's a testimonial of someone reading the pre-release version:

These last years I have seen how virtualization has brought all the advantages of powerful dedicated servers with the flexibility and features of managed services. As a tech entrepreneur, this hit the sweet spot with prices been dirty cheap but with the problem that you have to cook your own meal. You have to manage your DevOps.

While I was learning on my own I bumped into the Deployment from Scratch book from Josef Strzibny. The book is amazing because it covers every piece of knowledge you need to follow in a very practical way, providing all the snippets of code that you need but keeping in mind the big picture and why you do the things you do.

I was fighting to deploy my Ruby on Rails application. Now, I deploy my application to a production server with 4 CPU cores, 16 GB of RAM, and automated backups for barely €15 a month. The same would be €500 on Heroku. I now deploy with a single command, too. For me, this is a real competitive advantage.

I cannot recommend it enough!

Juan Sebastián Caro Rodríguez
President at ADETER

Chapters

1. Bird’s Eye

A bird's eye view of high-level concepts when it comes to provisioning, configuration management, and application deployment.

2. Terminals

Many exciting journeys start in a terminal, and it won't be any different for us. Before dispatching to clouds, we buckle up and get everyone familiar with standard streams, pipes, and other shell basics.

3. Little Bit of Network Theory

The theoretical foundation for understanding a multi-server setup, networking utilities, webserver configuration, and firewalls. A local and Internet addressing.

4. Secure Connections

Connecting to our first virtual private server. Getting familiar with the SSH protocol and its public key encryption. Configuring SSH on client and server.

5. Hands-On Networking

A hands-on exploration of a newly created virtual machine with a focus on networking. We'll learn about network interfaces, IP addresses, ports, and sockets in a more practical way.

6. Server Configuration 101

Installation and configuration of software from package repositories. Automating configuration management with Bash.

7. Filesystems

A brief look at what filesystems are and the filesystem layout in Linux. Where do files go, and where will our applications live?

8. User Roles

Priviledged and unprivileged access. Implementing user roles with Linux users and groups.

9. Permissions

Exploring the Linux discreet permission system and Access Control List to set ownership and limit access for services on the system.

10. Processes

A closer look at Linux processes. CPU and virtual memory, background processes, monitoring, debugging, systemd, system logging, and scheduled processes.

11. Web Servers

Kinds of web servers. Setting up NGINX as a web server and a reverse proxy. Automating log rotation.

12. Domain Names and Certificates

A closer look at DNS services and working with TLS certificates. Self-signed and Let's Encrypt.

13. Firewalls

Building imaginary walls with firewalld. Editing and defining zones to manage risk expectations.

14. Bashful Configuration Management

Building a simple convention over configuration Bash framework to configure servers.

15. Language Runtime

Exploring version managers of popular programming languages, isolating application dependencies.

16. Application Servers

Concurrency, threading, logging, and other considerations for a good application server configuration. Notes on Puma and Gunicorn configuration.

17. Building Services

Learning to write systemd unit files to run application services. Working with cgroups. System and user systemd services.

18. Databases and Key-Value Stores

Running PostgreSQL and Redis in production. Installation, configuration, client configuration. Backups and restores.

19. SELinux

A closer look at often overlooked Security-Enhanced Linux. Understanding the targeted policy and contexts. Fixing SELinux violations.

20. Storage Concerns

Discussing local, block, and object storage. Implementing network filesystems with NFS.

21. Backups and Restores

Data collection, compression, and encryption for frictionless data backups and restores.

22. Secrets Management

Secret management. Environment files and Rails Encrypted Credentials.

23. Application Deployment

Discussing deployment and post-deployment tasks. Making a Heroku-like git-push deployment.

24. Linux Containers

A primer on Linux containers. Building and running containers with Docker and Podman. Rootless and caching considerations.

25. Fortune Telling

What did you learn and where to go next from here?

Pre-release

Buy the pre-release of 23 chapters today for reduced price.

Don't wait! Get the public pre-release right now. 23 chapters are already available, together with 3 demonstrations, and a security checklist. It's not a properly finished book yet, but if you buy it now for the reduced price, you'll get anything I include as part of the final release (like source code, cheatsheets and checklists).

Buy the pre-release for $35

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

Not ready to buy now?

Join 600+ people waiting for the final release.

Interested in what you have seen so far? Leave me your e-mail address and I 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-2021 Josef Strzibny