cleberg.net
- Webmaster
- Christian Cleberg
- Generator
- weblorg 0.1.0 (https://emacs.love/weblorg)
- Public lists
- I ♥ RSS
- Fetched
Table of Contents
1. st
1.1. Obtain Files
1.2. Dependencies
1.3. Building
1.4. Customization (Patches)
1. st
st standards for Simple Terminal, a simple terminal implementation for X made by
the suckless team.
This post walks through the dependencies needed a...
Nginx Wildcard Redirects
Table of Contents
1. Problem
2. Solution
2.1. Nginx Config
1. Problem
I recently migrated domains and replaced the old webpage with a simple info page
with instructions to users on how to edit their bookmarks and URLs to get to the
page they were seeking.
Th...
Nginx Gzip: Compress Text, Nothing Else
Table of Contents
1. Text Compression
2. Enable Nginx Compression with gzip
3. Explanations of ngxhttpgzipmodule Options
1. Text Compression
Text compression allows a web server to serve text-based resources faster than
uncompressed data. This can speed up things l...
Nginx Referrer Ban List
Table of Contents
1. Creating the Ban List
2. Configuring Nginx
3. Enabling the Ban List
4. Restart Nginx
5. Testing Results
1. Creating the Ban List
In order to ban list referral domains or websites with Nginx, you need to create
a ban list file. The file below wi...
Server Build: Rack Hardware, Consumer Parts
Table of Contents
1. The Dilemma
2. Components
3. Building the Server
4. Software
5. The Results
5.1. Mistakes I Made
1. The Dilemma
For years, I have been using desktops and a Raspberry Pi as the backbone of my
homelab. I have always wanted to move toward a si...
Fixing Nginx Permission Denied Errors on /var/lib/nginx
Table of Contents
1. The Problem
2. The Solution
This is a brief post so that I personally remember the solution as it
has occurred multiple times for me.
1. The Problem
After migrating to a new server operating system (OS), I started receiving quite
a few permis...
Self-Hosting Guide: Matrix Synapse
Table of Contents
1. Synapse
2. Installation Process
2.1. Dependencies
2.2. Running Synapse
2.3. Configuring Synapse
2.4. Nginx Reverse-Proxy
2.5. Open Firewall & Router Ports
2.6. Adding Matrix Users
1. Synapse
If you're reading this, you likely know that ...
Void Linux: Remove the Display Manager
Table of Contents
1. Display Manager Services
1.1. Disabling the Current Display Manager
1.2. Enabling a New Display Manager
2. Set Up .xinitrc
3. Set Up Your Shell Profile
1. Display Manager Services
In order to change the display manager on Void Linux - or an...
Alpine Linux: Minimal Install, Minimal Attack Surface
Table of Contents
1. Alpine Linux
1.1. Installation
1.2. Post-Installation
2. Nginx Web Server
3. Docker Containers
4. Git Server
5. Thoughts on Alpine
1. Alpine Linux
Alpine Linux is a very small distribution, built on musl libc and busybox. It
uses ash as the...
Self-Hosting Guide: Syncthing
Table of Contents
1. An Overview of Syncthing
2. Installing Syncthing
2.1. Server & Desktop
2.2. Mobile
3. How Does Syncthing Work?
3.1. Local Syncthing Server(s)
3.2. Syncthing Dashboard
3.3. Remote Devices
4. My Personal Cloud Storage Set-up
5. Pros & Co...
MTP on Linux: Mount Your Phone Without a File Manager
Table of Contents
1. Use a Universal Serial Bus (USB) 3.0 Port
2. Switch USB Preferences to MTP
3. Install jmtpfs
4. Create a Mount Point
5. Mount & Access the Phone's File System
I recently ran into trouble attempting to mount my GrapheneOS phone to my laptop
run...
Installing GrapheneOS on Pixel 6 Pro
Table of Contents
1. Introduction
2. Gathering Tools & Files
2.1. Android Tools
2.2. GrapheneOS Files
3. Installation Process
3.1. Enable Developer Debugging & OEM Unlock
3.2. Reboot Device
3.3. Unlock the Bootloader
3.4. Flashing Factory Images
3.5. Lock th...
Building and Exploring SerenityOS
Table of Contents
1. Overview
2. Building
2.1. Clone
2.2. Build
3. Issues
4. Screenshots
1. Overview
SerenityOS is a unique operating system (OS) that I have seen pop up in my news
feed a few times over the last few years, but I have never had time to test it
o...
Privacy.com Changed the Product, Not the Name
Table of Contents
1. Privacy.com Changes Their Terms
1.1. Changing from a "Prepaid Debit" Model to a "Charge Card" Model
1.2. Daily Payments and Available Credit
1.3. Personal Information
1.4. Fees
2. My Thoughts
1. Privacy.com Changes Their Terms
Recently, Pri...
Bash-It: Plugins and Autosuggestions
Table of Contents
1. Bash
1.1. Installation
2. Bash-it
2.1. Installation
2.2. Aliases
2.3. Plugins
2.4. Themes
2.4.1. ble.sh
3. Restart the Session
1. Bash
For those who are not familiar, Bash is a Unix shell that is used as the default
login shell for ...
Recursive FLAC to Opus Conversion
Table of Contents
1. Converting FLAC to OPUS
1.1. Dependencies
1.2. Conversion Process
1.3. Cleanup
1.4. Check the Resulting Size
1. Converting FLAC to OPUS
I am currently rebuilding my music library from scratch so that I can
effectively archive all the music ...
Curseradio: Internet Radio from the Terminal
Table of Contents
1. Overview
2. Features
2.1. Commands/Shortcuts
3. Installation
3.1. Dependencies
3.2. Repository Source Installation
4. Run the Application
1. Overview
While exploring some interesting Linux applications, I stumbled across
curseradio, a c...
GnuPG: Encryption, Signing, Web of Trust
Table of Contents
1. The History of GPG
2. Encryption Algorithms
2.1. Vulnerabilities
2.1.1. Platforms
3. Creating a Key Pair
4. Common Usage
4.1. Email
4.2. File Encryption
4.3. Ownership Signatures
4.4. File Integrity
4.4.1. Finding Public Keys
1. T...
Self-Hosting Guide: Git and cgit
Table of Contents
1. My Approach to Self-Hosting Git
2. Assumptions
3. Adding a Git User
3.1. Import Your SSH Keys to the Git User
3.2. (Optional) Disable Password-Based SSH
3.2.1. Setting up the Base Directory
3.2.2. Creating a Test Repository
4. Change the Login...
Fedora and i3: Back on Linux
Table of Contents
1. Leaving macOS
2. Fedora
2.1. i3
3. Software Choices
1. Leaving macOS
As I noted in a recent post, I have been planning on migrating from macOS back
to a Linux-based operating system (OS). I am happy to say that I have finally
completed my m...
Daily Poetry via Cron
Table of Contents
1. Source Code
2. My Daily Dose of Poetry
3. Prerequisites
4. Breaking Down the Logic
4.1. Required Packages
4.2. Sending the API Request
4.3. Parsing the API Results
4.4. Composing the Email
4.5. Sending the Email
5. The Result!
6. Scheduling the Da...
Terminal First: Why the GUI Is Optional
Table of Contents
1. Text-Based Simplicity
2. Living Life in the Terminal
2.1. Browsing the Web
2.2. Chatting with Friends
2.3. Email
2.4. RSS Feed Reader
2.5. Writing & Programming
1. Text-Based Simplicity
I've detailed my views on web-based minimalism and...
Self-Hosting Guide: FreshRSS
Table of Contents
1. Why Use Really Simple Syndication (RSS)?
2. Documentation
3. Installation
3.1. DNS
3.2. Docker
3.3. Fresh RSS Set-Up
3.4. Nginx Reverse-Proxy
3.5. HTTPS
4. Post-Installation Fixes
4.1. API Set-Up
4.2. Base URL Fix
1. Why Use Really Simple...
Ditching Cloudflare
Table of Contents
1. Registrar
2. DNS
2.1. Dynamic DNS Updates
2.2. Njalla's DNS Tool
3. Tunnel
4. Access
1. Registrar
After spending a year or so using Cloudflare for DNS (Domain Name System) only -
no proxying or applications - I spent the last few months usi...
PineTime: Open Source Smartwatch Overview
Table of Contents
1. PineTime Product Information
1.1. Overview
1.2. Product Specifications
2. Unboxing
3. Software
3.1. Watch Operating System (OS): InfiniTime
3.2. iOS App: InfiniLink
4. Final Thoughts
4.1. Pros
4.2. Cons
1. PineTime Product Information...
Nginx Reverse Proxy Config
Table of Contents
1. What is a Reverse Proxy?
1.1. A Brief Example
2. Reverse Proxy Options
3. Nginx Reverse Proxy Example
3.1. Local Applications
3.2. Step 1: DNS Configuration
3.3. Step 2: Open Network Ports
3.4. Step 3: Nginx Installation
3.5. Step 4: Nginx Confi...
SSH MFA: TOTP on Top of Keys
Table of Contents
1. Why Do I Need Multi-Factor Authentication (MFA) for SSH (Secure Shell Protocol)?
2. Install MFA PAM Module
3. Initialize the PAM Module
3.1. Interactive Method
3.2. Non-Interactive Method
4. PAM Configuration Settings
5. SSH Configuration Settings...
Server Hardening: Firewalls, SSH, VLANs
Table of Contents
1. Planning Data Flows & Security
1.1. My Personal Data Flow
1.2. Thought Process
1.2.1. Server
1.3. ufw
1.4. ssh
1.5. fail2ban
2. Switch
2.1. 802.1Q VLAN Configuration
2.2. 802.1Q VLAN PVID Setting
3. Router
4. Physical Security
4.1. L...
Self-Hosting Guide: Nextcloud
Table of Contents
1. What is Nextcloud?
2. Install Dependencies
3. Set Up MySQL
4. Download & Install Nextcloud
5. Configure the Apache Web Server
6. DNS
7. Certbot
8. Results
1. What is Nextcloud?
Nextcloud is a self-hosted solution for storage, communications...
Dynamic DNS Updates via the Cloudflare API
Table of Contents
1. DDNS: Dynamic DNS
1. DDNS: Dynamic DNS
If you're hosting a service from a location with DDNS (Dynamic Domain Name
System), where your internet protocol (IP)address may change at any time, you
must have a solution to update the DNS (Domain Name ...