# Homelab Setup ## Overview Setting up a personal homelab using a ThinkPad laptop running Arch Linux to move away from cloud providers like Google. ## Goals - [x] Linux installation (Arch Linux on ThinkPad) - [x] SSH remote access (hostname: homelab) - [x] Dotfiles and development environment setup - [x] Network domain setup - [ ] Self-hosted cloud storage (ownCloud/Nextcloud) - [x] Self-hosted git repository (Gitea/Forgejo/GitLab) - [x] 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 1. **System Setup**: Follow [docs/system-setup.md](docs/system-setup.md) for Arch installation and configuration 2. **Network Security**: Configure SSH, DNS, and VPN using [docs/network-security.md](docs/network-security.md) 3. **Services**: Plan and deploy applications from [docs/services.md](docs/services.md) 4. **Voice Assistant**: Set up AI voice capabilities with [docs/voice-assistant.md](docs/voice-assistant.md) 5. **Tasks**: Track progress in [TODO.md](TODO.md) 6. **Issues**: Find solutions in [docs/troubleshooting.md](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](docs/system-setup.md)** - Complete Arch Linux installation, TTY config, desktop setup - **[docs/network-security.md](docs/network-security.md)** - SSH hardening, DuckDNS, WireGuard VPN, firewall setup - **[docs/services.md](docs/services.md)** - Self-hosted services: Git hosting, cloud storage, media server - **[docs/voice-assistant.md](docs/voice-assistant.md)** - AI voice assistant setup with Piper TTS and FastAPI - **[TODO.md](TODO.md)** - Centralized task list with progress tracking by category - **[docs/troubleshooting.md](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