Initial commit
This commit is contained in:
24
README.md
Normal file
24
README.md
Normal 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
43
arch-install-notes.md
Normal 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
33
network-planning.md
Normal 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
46
self-hosted-services.md
Normal 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
|
||||||
Reference in New Issue
Block a user