Initial commit

This commit is contained in:
2025-07-29 17:14:55 +02:00
commit 91103ee7d4
4 changed files with 146 additions and 0 deletions

24
README.md Normal file
View File

@@ -0,0 +1,24 @@
# 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
- [ ] Network domain setup
- [ ] Self-hosted cloud storage (ownCloud/Nextcloud)
- [ ] Self-hosted git repository (Gitea/Forgejo/GitLab)
- [ ] Gradual migration from commercial cloud services
## Hardware
- **Main Server**: ThinkPad laptop
- **Development**: Windows PC with WSL (for AI experimentation)
## 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
- Downloading Arch Linux ISO
- Planning initial setup phase

43
arch-install-notes.md Normal file
View File

@@ -0,0 +1,43 @@
# Arch Linux Installation Notes
## Pre-Installation Checklist
- [ ] Download Arch Linux ISO
- [ ] Create bootable USB drive
- [ ] Backup any important data on ThinkPad
- [ ] Note ThinkPad hardware specs for driver compatibility
## Installation Steps
### Boot and Initial Setup
- [ ] Boot from USB
- [ ] Set keyboard layout if needed: `loadkeys us`
- [ ] Verify UEFI boot: `ls /sys/firmware/efi/efivars`
- [ ] Connect to internet (wifi-menu or ethernet)
### Partitioning
- [ ] List disks: `fdisk -l`
- [ ] Create partitions (EFI, swap, root)
- [ ] Format partitions
- [ ] Mount filesystems
### Base System Installation
- [ ] Update package database: `pacman -Sy`
- [ ] Install base system: `pacstrap /mnt base linux linux-firmware`
- [ ] Generate fstab: `genfstab -U /mnt >> /mnt/etc/fstab`
- [ ] Chroot: `arch-chroot /mnt`
### System Configuration
- [ ] Set timezone
- [ ] Configure locale
- [ ] Set hostname
- [ ] Configure network
- [ ] Set root password
- [ ] Install bootloader (GRUB)
- [ ] Create user account with sudo privileges
## Post-Installation Priorities
- [ ] Install essential packages (git, base-devel)
- [ ] Install and configure yadm: `pacman -S yadm`
- [ ] Clone dotfiles: `yadm clone <your-dotfiles-repo>`
- [ ] Install SSH server: `pacman -S openssh`
- [ ] Enable SSH service: `systemctl enable sshd`
- [ ] Configure firewall

33
network-planning.md Normal file
View File

@@ -0,0 +1,33 @@
# Network Planning
## Current Network Setup
- Document your current router/modem setup
- Note internal IP range (usually 192.168.1.x or 10.0.0.x)
## SSH Access Planning
### Local Network Access
- [ ] Assign static IP to ThinkPad
- [ ] Configure SSH key authentication
- [ ] Test SSH from WSL machine
### External Access (Optional)
- [ ] Research dynamic DNS services (DuckDNS, No-IP)
- [ ] Configure router port forwarding (if needed)
- [ ] Set up VPN for secure remote access
## Domain Setup Options
### Local Domain
- [ ] Configure local DNS (Pi-hole, router settings)
- [ ] Use .local domain for internal services
### Public Domain
- [ ] Register domain name
- [ ] Configure DNS records
- [ ] Set up reverse proxy (nginx, Caddy)
## Security Considerations
- [ ] Change default SSH port
- [ ] Disable root SSH login
- [ ] Configure fail2ban
- [ ] Set up firewall rules (iptables/ufw)
- [ ] Regular security updates

46
self-hosted-services.md Normal file
View File

@@ -0,0 +1,46 @@
# Self-Hosted Services Planning
## Git Repository Hosting
### Options to Research
- **Gitea**: Lightweight, Go-based, minimal resource usage
- **Forgejo**: Gitea fork, community-driven development
- **GitLab CE**: Feature-rich but more resource intensive
- **Gogs**: Simple, lightweight alternative
### Requirements
- [ ] Web interface for repository management
- [ ] Git over SSH and HTTPS
- [ ] User management and permissions
- [ ] Issue tracking (optional)
- [ ] CI/CD integration (future consideration)
### Installation Considerations
- Docker deployment vs native installation
- Database requirements (SQLite vs PostgreSQL)
- Reverse proxy setup for HTTPS
- Backup strategy for repositories
## Cloud Storage Solutions
### Options to Research
- **Nextcloud**: Full-featured, extensive app ecosystem
- **ownCloud**: Original project, stable and mature
- **Seafile**: Performance-focused file sync
- **Syncthing**: Decentralized sync (no server needed)
### Requirements
- [ ] File synchronization across devices
- [ ] Web interface for file management
- [ ] Mobile app support
- [ ] Calendar and contacts sync
- [ ] Document editing (optional)
## Service Integration
- Single sign-on between services
- Shared storage for configuration backups
- Monitoring and logging setup
- Automated backups and disaster recovery
## Resource Planning
- Estimate RAM and storage requirements
- Consider containerization with Docker/Podman
- Plan for service discovery and networking