b25378bfcf54cee07675bd288aaebed0647825d3
- Add merge_slashes off to prevent automatic redirects - Add proxy_redirect off to stop nginx from modifying WebDAV responses - Add explicit WebDAV method support (PUT, DELETE, PROPFIND, etc.) - Add WebDAV-specific headers (Depth, Destination, etc.) - Optimize for large file uploads and streaming Fixes HTTP 301 errors that prevented WebDAV file uploads in clients like X-plore File Manager. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Homelab Setup
Overview
Setting up a personal homelab using a ThinkPad laptop running Arch Linux to move away from cloud providers like Google.
Goals
- Linux installation (Arch Linux on ThinkPad)
- SSH remote access (hostname: homelab)
- Dotfiles and development environment setup
- Network domain setup
- Self-hosted cloud storage (ownCloud/Nextcloud)
- Self-hosted git repository (Gitea/Forgejo/GitLab)
- AI voice assistant (local TTS with Piper)
- Gradual migration from commercial cloud services
Hardware
- Main Server: ThinkPad laptop
- Development: Windows PC with WSL (for AI experimentation)
- Android tablet: Not good for long-term work but can be useful for short SSH sessions
- Runs Manjaro in a VM, same OS like the laptop
Inspiration & Resources
- PewDiePie homelab setup video: https://www.youtube.com/watch?v=u_Lxkt50xOg
- Need to collect tips and inspiration from this video
Current Status
- ✅ Arch Linux installed on ThinkPad
- ✅ SSH access configured (accessible as
homelab) - ✅ Dotfiles management with yadm configured and merged
- ✅ Development environment setup completed
- ✅ Network domain setup (DuckDNS + Nginx reverse proxy)
- ✅ Gitea Git server running (Docker container)
- ✅ AI voice assistant with local TTS (Piper + FastAPI)
- Next: SSL certificates, additional self-hosted services
Documentation Structure
Quick Start Guide
- System Setup: Follow docs/system-setup.md for Arch installation and configuration
- Network Security: Configure SSH, DNS, and VPN using docs/network-security.md
- Services: Plan and deploy applications from docs/services.md
- Voice Assistant: Set up AI voice capabilities with docs/voice-assistant.md
- Tasks: Track progress in TODO.md
- Issues: Find solutions in docs/troubleshooting.md
Repository Structure
homelab/
├── README.md # This overview
├── TODO.md # Task tracking
├── docs/ # Detailed documentation
│ ├── system-setup.md # Arch Linux installation & config
│ ├── network-security.md # SSH, DNS, VPN, firewall
│ ├── services.md # Self-hosted services
│ ├── voice-assistant.md # AI voice setup with Piper TTS
│ └── troubleshooting.md # Solutions & fixes
├── config/ # Configurations & scripts
│ ├── docker/gitea/ # Gitea container setup
│ ├── nginx/ # Reverse proxy configs
│ └── scripts/ # Utility scripts
├── voice-server/ # AI voice assistant server
│ ├── src/voice_server/ # FastAPI application
│ ├── pyproject.toml # Poetry dependencies
│ └── README.md # Voice server documentation
└── scripts/ # Convenience scripts
├── enable-voice.sh # Start voice assistant
└── disable-voice.sh # Stop voice assistant
Documentation Files
- docs/system-setup.md - Complete Arch Linux installation, TTY config, desktop setup
- docs/network-security.md - SSH hardening, DuckDNS, WireGuard VPN, firewall setup
- docs/services.md - Self-hosted services: Git hosting, cloud storage, media server
- docs/voice-assistant.md - AI voice assistant setup with Piper TTS and FastAPI
- TODO.md - Centralized task list with progress tracking by category
- docs/troubleshooting.md - Hardware issues, software problems, and solutions
Current Configuration
- System: Arch Linux with XFCE desktop, ter-124b TTY font, Colemak layout
- Network: Static IP (192.168.0.100), SSH port 2222, DuckDNS (ak-homelab.duckdns.org)
- Services: Nginx reverse proxy, Gitea Git server (Docker), AI voice assistant (Piper TTS)
- Security: SSH hardened, firewall planned, SSL certificates pending
- Development: yadm dotfiles, tmux with temperature monitoring, zsh with proper history
Description
Languages
Shell
56.4%
Python
29.6%
HTML
14%