$linuxjunkies
>

Linux guides

77 guides in Server Setup · intermediate.

Server Setup· 10 min read

Use ESPHome to Build Smart Devices

Install ESPHome on Linux, write YAML configs with a secrets file, flash ESP32/ESP8266 over USB and OTA, then integrate live sensor data into Home Assistant.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Build a Woodpecker CI Pipeline End-to-End

Set up a Woodpecker CI server and agent with Docker Compose, then build a real pipeline with registry secrets, BuildKit layer caching, and SSH deploy steps.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Self-Host Wallabag for Read-It-Later

Deploy Wallabag on your own server with Docker and PostgreSQL, configure browser extensions and mobile apps, and import your Pocket or Instapaper reading list.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Self-Host Vaultwarden (Bitwarden Server)

Deploy a self-hosted Vaultwarden (Bitwarden-compatible) password server using Docker Compose, nginx reverse proxy, Let's Encrypt TLS, and automated backups.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Self-Host CalDAV/CardDAV with Radicale

Set up Radicale as a self-hosted CalDAV/CardDAV server with htpasswd auth, Nginx reverse proxy, and sync to Evolution, Thunderbird, iOS, and Android.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Self-Host PhotoPrism for Photo Library

Deploy PhotoPrism on your own server with Docker Compose. Covers storage layout, database setup, face recognition tuning, and reverse geocoding for places.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Self-Host Kavita for Comics and Books

Deploy Kavita on Docker, configure comic and book libraries, enable OPDS for mobile reading apps, and secure it with an Nginx HTTPS reverse proxy.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Self-Host Joplin Server

Self-host Joplin Server with Docker Compose, PostgreSQL, Nginx TLS reverse proxy, and end-to-end encryption for private, cross-device note sync.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Self-Host Immich (Google Photos Replacement)

Deploy Immich — a full Google Photos replacement — on your own server using Docker Compose, with machine learning, mobile auto-backup, and album sharing.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Self-Host FreshRSS

Deploy FreshRSS with Docker Compose, import feeds via OPML, connect mobile clients through the Google Reader API, and manage multiple users on one instance.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Self-Host Forgejo (Gitea Fork)

Install Forgejo from a single binary on Linux, harden it with systemd, put it behind Nginx with TLS, add CI runners, and understand the ForgeFed federation roadmap.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Self-Host Calibre-Web for Your eBook Library

Deploy Calibre-Web with Docker, import your Calibre library, configure send-to-Kindle email delivery, and set up an OPDS catalog for KOReader.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Turn a Raspberry Pi into a Media Server

Set up Jellyfin on a Raspberry Pi 4 or 5 with persistent external storage mounts and honest guidance on hardware-accelerated transcoding limits.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install Zigbee2MQTT

Install Mosquitto, configure a Zigbee USB coordinator, run Zigbee2MQTT as a systemd service, and pair devices using the built-in web frontend.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install the Mosquitto MQTT Broker

Install and secure Mosquitto MQTT broker with password auth, TLS on port 8883, ACL topic control, and a clean mosquitto.conf on Debian, Ubuntu, Fedora, and Arch.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install Miniflux RSS Reader

Install the Miniflux self-hosted RSS reader on Linux: single binary, PostgreSQL backend, Fever API for mobile clients, and OPML import in under 30 minutes.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Install Home Assistant OS on a Pi (or VM)

Flash Home Assistant OS to a Raspberry Pi 4/5 or VM, attach a Zigbee dongle, configure add-ons, and set up automated off-device backups.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Write an Ansible Role

Learn to build a reusable Ansible role from scratch: directory layout, defaults vs vars, handlers, templates, dependencies, and publishing to Ansible Galaxy.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Ship Logs with Vector

Configure Vector to collect systemd-journald logs, reshape events with VRL transforms, and ship structured data to Grafana Loki and Elasticsearch.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Use Kustomize (Without Templates)

Manage Kubernetes manifests without templates using Kustomize bases, overlays, patches, and generators — applied with plain kubectl -k.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Use Helm Charts on Linux

Install Helm 3, manage chart repos, override values, render manifests locally with helm template, and package your own chart for Kubernetes.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Tune PHP-FPM Pools for Production

Configure PHP-FPM pool process managers (dynamic, static, ondemand), calculate max_children from real memory usage, enable slowlog, and monitor with the status page.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Self-Host a GitHub Actions Runner on Linux

Install a GitHub Actions self-hosted runner on Linux, configure it as a systemd service, assign labels, register at org level, and harden the execution environment.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

A Modern nginx TLS Configuration

Configure nginx with TLS 1.2/1.3, Mozilla Intermediate cipher suites, OCSP stapling, HSTS, and DH parameters for a production-ready HTTPS setup.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

nginx as a Reverse Proxy: Best Practices

Configure nginx as a production-grade reverse proxy: upstream keepalive pools, buffering tuning, WebSocket upgrades, and correct X-Forwarded-* header handling.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install TimescaleDB on PostgreSQL

Install TimescaleDB on PostgreSQL, create hypertables, automate continuous aggregates, and enforce data-retention policies on Ubuntu, Fedora, and Arch.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install and Use Terraform on Linux

Install Terraform on Debian, Fedora, and Arch Linux, configure AWS, Hetzner, and DigitalOcean providers, and manage infrastructure with plan, apply, and remote state backends.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install Pulumi on Linux

Install Pulumi on Debian, Fedora, or Arch Linux, pick a language runtime, configure a state backend, manage secrets, and compare Pulumi to Terraform.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install Prometheus on Linux

Install Prometheus on Linux from tarball or distro packages, configure scrape targets and retention, and run it securely under a hardened systemd unit.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Use OpenTofu (the Terraform Fork)

Install OpenTofu, the MPL-licensed Terraform fork, migrate existing projects safely, and understand provider compatibility and new features like state encryption.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install MongoDB on Linux

Install MongoDB 7.0 on Linux via the official apt/dnf repo, configure mongod, enable authentication, and set up a single-node replica set ready for production.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install Mail-in-a-Box

Set up a self-hosted mail server on Ubuntu 22.04 with one command. Covers the MiaB installer, DNS records (SPF, DKIM, DMARC), admin panel, and verification.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install Loki and Promtail for Logs

Install Grafana Loki and Promtail as single binaries, ship systemd-journald logs, and create log-based metric rules — managed with systemd.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install k3s on a Single Linux Node

Install k3s on a single Linux node in minutes: covers the curl installer, kubeconfig setup, built-in Traefik ingress, and essential kubectl commands.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install and Configure a GitLab Runner

Install GitLab Runner on Linux, register Shell and Docker executors, configure caches, route jobs with tags, and understand autoscaling with the fleeting plugin.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install Drone / Woodpecker CI

Deploy Woodpecker CI (or Drone) with Docker Compose, wire OAuth to Gitea or GitHub, connect agents, and run your first pipeline in under an hour.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install ClickHouse on Linux

Install ClickHouse on Linux from the official repo, configure users and storage, design an efficient MergeTree schema, ingest data, and tune for query performance.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install and Tune Redis for Production

Install Redis on Linux, configure RDB and AOF persistence, set maxmemory eviction policies, and add replication with Sentinel for production HA.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Auto-Deploy a Static Site with Caddy + Git Hooks

Set up a zero-CI deploy pipeline: push to a bare Git repo, run a build hook, and let Caddy serve your static site with automatic TLS.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Container Image Best Practices

Reduce container attack surface with multi-stage builds, distroless base images, non-root users, and automated CVE scanning using Trivy, Scout, and Grype.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

cloud-init Explained (with worked examples)

Learn how cloud-init bootstraps cloud VMs: user-data formats, key modules, datasource detection, and hands-on debugging on Hetzner, EC2, and DigitalOcean.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Set Up a WireGuard VPN Server

Configure a WireGuard VPN server from scratch: key generation, server and client configs, NAT with nftables, IP forwarding, firewall rules, and MTU tuning.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Self-Host Nextcloud

Install a production Nextcloud server using Nginx, PHP-FPM, MariaDB, and Redis — including systemd-managed cron and performance tuning.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install PostgreSQL with Sensible Tuning

Install PostgreSQL from PGDG repos and apply evidence-based tuning for shared_buffers, work_mem, effective_cache_size, and WAL settings on any Linux server.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Install and Use Podman (Docker without a daemon)

Run OCI containers without a daemon using Podman. Covers rootless setup, podman-compose, and systemd Quadlet units for production-grade container management.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install and Configure HAProxy

Install HAProxy and configure frontends, backends, ACL-based routing, TLS termination, sticky sessions, and HTTP health checks on modern Linux distros.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Self-Host Git with Gitea or Forgejo

Install Forgejo or Gitea on Linux, configure Caddy as a reverse proxy, enable SSH access on a custom port, push your first repository, and register an Actions runner.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Install Elasticsearch or OpenSearch

Install Elasticsearch 8 or OpenSearch 2 on Linux, tune JVM heap, configure security, set up single-node or cluster mode, and verify with live index operations.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Host Multiple Sites on One Linux Server

Host multiple websites on one Linux server using Nginx as a reverse proxy, systemd-managed app services, per-domain TLS, and isolated system users.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Docker Compose in Production

Deploy Docker Compose in production with compose.yaml, explicit networks, named volumes, restart policies, journald logging, and file-based secrets.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

Build an nftables Firewall Script

Build a complete nftables firewall from scratch: tables, chains, sets, default-deny input policy, service allowlisting, and persistent systemd configuration.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Run Rootless Containers with Podman

Run OCI containers without root or a daemon. Learn Podman installation, user namespace setup, rootless networking, and systemd Quadlet unit files for production use.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Set Up Pi-hole on a Linux Server

Set up Pi-hole on Linux for network-wide ad and tracker blocking — covers installation, blocklists, gravity updates, conditional forwarding, and DHCP.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Set Up and Use Docker Compose

Learn how to write Compose files, define networks and volumes, manage environment variables, and control multi-container Docker stacks with the modern Compose CLI plugin.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install Traefik as a Reverse Proxy

Install Traefik v3 as a Docker-based reverse proxy with automatic Let's Encrypt TLS, static and dynamic config, and label-driven service routing.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install and Configure Redis

Install Redis on Debian, Ubuntu, Fedora, and Arch; configure persistence, memory limits, authentication, and manage the service with systemd for production use.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install RabbitMQ on Linux

Install RabbitMQ on Debian, Ubuntu, Fedora, Rocky, and Arch using official repos, enable the management UI, create users, and test a live queue.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

How to Install Prometheus and Grafana on Linux

Install Prometheus and Grafana on Linux, configure node_exporter scraping, connect the datasource, and build your first system metrics dashboard.

IntermediateUbuntuDebianFedoraArch
Server Setup· 10 min read

How to Set Up HAProxy as a Load Balancer

Set up HAProxy as an HTTP load balancer with active health checks, stick tables for session persistence, and a live stats dashboard — step by step.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Webmin: The Complete Setup Guide

Install Webmin on Debian/Ubuntu and RHEL-family Linux, configure core modules, and harden it with TLS, 2FA, and IP restrictions for production use.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Squid Debug Logging: Turn It On and Read It

Learn how to enable Squid debug_options, navigate cache.log and access.log, and trace the exact cause of a denied or failed proxy request.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Set Up Squid as a Caching Web Proxy

Install and configure Squid as a forward caching proxy on Linux — covering ACLs, cache tuning, firewall rules, and explicit vs transparent intercept mode.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Set Up an NFS Server

Set up a production-ready NFSv4 server on Linux: configure exports, mount shares on clients, lock down permissions, and tune read/write performance.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Set Up a Samba File Share

Step-by-step guide to installing Samba, creating a share user, configuring smb.conf, opening the firewall, and mounting the share from Windows and Linux clients.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Set Up a LEMP Stack

Install and configure Nginx, MariaDB, and PHP-FPM on a fresh Linux server. Covers Debian, Ubuntu, Fedora, RHEL, Rocky, and Arch with systemd service management.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Run a Node.js App in Production with PM2

Deploy a Node.js application with PM2: process management, ecosystem config files, systemd startup integration, and structured log rotation.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install and Configure PostgreSQL

Install PostgreSQL on Debian, Fedora, or Arch, then configure roles, databases, pg_hba.conf authentication, and secure remote access in clear, production-ready steps.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install MySQL or MariaDB

Install MySQL or MariaDB on Debian, Fedora, or Arch; secure it with mysql_secure_installation; create users with least-privilege grants; and automate backups.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install Docker on Linux

Install Docker Engine on Ubuntu, Debian, Fedora, RHEL, or Arch from the official repository, configure the docker group, run a first container, and get Compose working.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install the Apache Web Server

Install Apache on Linux, enable modules, configure named virtual hosts, use .htaccess, and verify your setup — covering Debian, Ubuntu, Fedora, RHEL, and Arch.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Install and Configure nginx

Install nginx, configure server blocks and document roots, set up a reverse proxy to a local application, and verify everything with nginx -t and curl.

IntermediateUbuntuDebianFedoraArch
Server Setup· 8 min read

Free SSL Certificates with Let’s Encrypt

Issue and auto-renew free TLS certificates with Let's Encrypt and Certbot for Nginx or Apache on Ubuntu, Fedora, and Arch Linux.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

How to Create a systemd Service

Learn to write systemd service unit files from scratch: unit types, dependency directives, restart policies, enabling at boot, and reading logs with journalctl.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Configure a Squid Proxy with Webmin

Install Squid and the Webmin Squid module, configure disk and memory caching, set LAN access controls, and verify the proxy is serving cached responses.

IntermediateUbuntuDebianFedoraArch
Server Setup· 8 min read

How to Configure the SMTP HELO/EHLO Name

Set the correct SMTP HELO/EHLO hostname in Postfix and Sendmail, configure FCrDNS records, and verify your mail server won't be rejected or spam-flagged.

IntermediateUbuntuDebianFedoraArch
Server Setup· 9 min read

Configure a UPS on Linux with NUT

Install and configure Network UPS Tools (NUT) on Linux to detect your UPS, load the right driver, and trigger a safe automatic shutdown when battery runs low.

IntermediateUbuntuDebianFedoraArch
Server Setup· 12 min read

Build an Intranet Server on Linux

Set up a complete small-office intranet on one Linux box: Nginx web server, dnsmasq local DNS, Samba file sharing, and a Wiki.js team wiki.

IntermediateUbuntuDebianFedoraArch