Nextcloud Installation & Optimization

Nextcloud Installation & Optimization Guide#


Antigracity-cli chat during last update: agy –conversation=208181d3-885d-4b18-8544-403c7747e6d1

1. PHP Configuration#

Ensure PHP 8.3 is tuned for Nextcloud performance.

Edit php.ini#

nano /etc/php/8.3/apache2/php.ini

Modify these values (remove the ; prefix):

memory_limit = 512M
upload_max_filesize = 200M
max_execution_time = 360
post_max_size = 200M
date.timezone = America/Toronto

; OPcache Settings
opcache.enable=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Enable Apache Modules & APCu#

a2enmod dir env headers mime rewrite ssl
systemctl restart apache2
# Enable CLI for memory caching
nano /etc/php/8.3/mods-available/apcu.ini

Add:

Obsidian

1 Core Obsidian Shortcuts#

These are the most essential keys for building your homelab documentation rapidly.

Action Shortcut (Mac) Result
Quick Open Cmd + O Search for any note in your vault.
Insert Link Cmd + K Creates standard []( ) syntax.
Toggle Sidebar Cmd + S Hides/Shows the file explorer.
Search in Note Cmd + F Finds text within the current file.
Global Search Cmd + Shift + F Searches your entire vault.
Command Palette Cmd + P Access every feature (Templates, Plugins, etc).

Since we switched to Standard Markdown Links, use these to keep the “network” alive.

Obsidian and Hugo setup on Mac

Homelab: Obsidian to Hugo Automated Publishing Guide#

This guide outlines the infrastructure and configuration required to sync an Obsidian vault across multiple devices and automate the publishing process to a Hugo website via Cloudflare Pages.


1. Multi-Device Sync (The Git & Web Layer)#

To sync your notes between computers and view them on mobile devices without the overhead of real-time database sync engines:

1.1. Between Computers (Mac Studio & MacBook Pro/Air)#

We use the Obsidian Git plugin to synchronize vaults directly via GitHub.

Ollama & Stable Diffusion AI Guide

Ollama & Stable Diffusion AI Guide#

1 HP1GPU - Docker (Ollama Model Inventory)#

1.1 llama3.2:latest (2.0 GB)#

  • Consuming VM: HP1Docker
  • Services:
    • karakeep (Docker)
    • paperless (Docker)
    • [n8n](n8n.md) (Docker)

1.2 qwen3-vl:8b (6.1 GB)#

  • Consuming VM: HP1Docker
    • Service: paperless-ai (Docker)

1.3 gemma3:12b (8.1 GB)#

  • Consuming VM: HP1GPU
  • Service:
    • open-webui (Docker)

1.4 llama3.2-vision:latest (7.8 GB)#

  • Consuming VM: HP1Docker
  • Service:
    • paperless Inactive (Commented out in compose)

1.5 qwen2.5vl:3b (3.2 GB)#

  • Consuming VM: HP1Docker
  • Service: paperless (Testing)
  • Status: Inactive (Commented out in compose)

1.6 glm-ocr:latest (2.2 GB)#

1.7 gemma4::e4b (9.6 GB)#

1.8 nomic-embed-text:latest (274 MB)#

  • Service: Internal Embeddings / RAG
  • Status: Active (Implicit)

2 Ollama Installation & Network Setup#

2.1 Basic Installation#

# Open firewall port
ufw allow 11434/tcp
# Official Install Script
curl -fsSL [https://ollama.com/install.sh](https://ollama.com/install.sh) | sh

2.2 Enable Local Network Access#

To allow other devices to use the AI, you must change the bind address from 127.0.0.1 to 0.0.0.0.

Pangolin Backup Strategy

1 VPS BACKUP SYSTEM: Pangolin Docker#

Target VPS: 72.11.147.220
VPS Provider: RackNerd (RN-VPS)
Backup LXC: Proxmox 102
Retention: 28 Files (14 Days)

The backup is a pull operation: Proxmox LXC 102 initiates SSH to the VPS. The home ISP public IP is therefore used as the source IP seen by the VPS firewall. On 2026-08-12, the home IP was 208.96.219.86; this address is dynamic and must be updated if the ISP changes it.

Pangolin Tunnel - VPS Setup

Pangolin Tunnel Setup Guide#


Current VPS and SSH Access (Verified 2026-08-12)#

The current Pangolin VPS is hosted by RackNerd:

  • VPS hostname: RN-VPS
  • VPS public IP: 72.11.147.220
  • Operating system: Ubuntu
  • SSH port: TCP 22
  • Current home public IP: 208.96.219.86 (may change when the ISP address changes)

SSH access is restricted by multiple layers:

  1. UFW: incoming traffic is denied by default; TCP port 22 is allowed only from the current home public IP.
  2. Fail2ban: the sshd jail has the current home public IP in ignoreip, so it is not accidentally banned. The value must also be present persistently in /etc/fail2ban/jail.local.
  3. CrowdSec: the Pangolin container can enforce decisions through the Ubuntu host firewall via the INPUT and DOCKER-USER iptables chains.

The backup LXC connects outbound to the VPS. It does not require an inbound connection from the VPS to the home network. If the ISP IP changes, update both UFW and Fail2ban before the next backup.

Pangolin Update

1. Pangolin Pre-Update Requirements#

1.1. Backup Data#

Always backup your data before updating. Copy your config directory to a safe location to allow for a rollback if necessary.

1.2. Version Strategy#

Update incrementally between major versions (e.g., 1.0.0 → 1.1.0 → 1.2.0) rather than skipping major releases.


2. Update Process#

2.1. Stop the Stack#

Stop all running containers:

sudo docker compose down

2.2. Check Latest Versions#

Before editing your configuration, verify the current stable release versions for each component:

Pi-hole Installation & High Availability

Pi-hole Installation & High Availability Guide#


1. Basic Installation#

Documentation: Pi-hole Official Install

Deployment#

# Automated install script
curl -sSL [https://install.pi-hole.net](https://install.pi-hole.net) | bash

Password Management#

Save the password provided at the end of the installation.

# To change or reset the web interface password:
pihole setpassword
# Alternative:
pihole -a -p

Network Integration (UniFi)#

  1. Go to UniFi Network App > Internet > [Your WAN/LAN].
  2. Change DNS Server to your Pi-hole IP.

2. Synchronization (Multi-Instance)#

For Pi-hole Version 6#

Use Nebula Sync for v6 compatibility.

Proxmox - Configuration

Proxmox Setup & Management Guide#

For fresh installations and initial server builds, please refer to the Proxmox - Initial Setup guide for automated provisioning steps.


1. Storage Management#

1.1 Storage: ZFS Pool Creation#

Create a simple mirrored or striped ZFS pool via CLI.

# Create a pool named 'Storage' using two disks
zpool create Storage sdb sdc

# The pool will now appear in Node > Storage > ZFS

1.2 Storage Specific Tests#

# Test SMB Share Throughput
dd if=/dev/zero of=/mnt/pve/HP1Storage/test.file bs=1M count=4000

# Test local-lvm Performance
dd if=/dev/zero of=/var/lib/vz/test.file bs=1M count=4000

2. Networking#

2.1 Add Second Network Bridge (Isolated VM Traffic)#

Use this for dedicated VM traffic on a specific physical port (e.g., eno6).

Proxmox - Node Backup and Restore

Proxmox VE Host Backup & Restore Guide#

This guide covers the automated backup and restoration process for all Proxmox VE nodes using the dedicated PVE-only scripts.

Proxmox VE 9 Network Interface Disconnection Warning

On fresh Proxmox VE 9 installations, interfaces are pinned automatically (e.g., nic0nic5). Overwriting /etc/network/interfaces with a legacy backup containing older naming schemes (such as eno5, eno6, or eno49) will cause the network interfaces to fail on reboot, resulting in a total loss of Web UI and SSH access.