Files
homelab/docs/system-setup.md
Arpad Krejczinger f7b5d26eab Reorganize repository structure and add configuration management
- Create organized directory structure:
  - docs/ for all documentation files
  - config/ for deployment configurations and scripts
- Add CLAUDE.md with project architecture and development workflow
- Update README.md with new structure and current status
- Move all documentation to docs/ directory
- Organize Docker and Nginx configurations under config/

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-06 17:24:11 +02:00

4.2 KiB

System Setup Guide

Complete guide for Arch Linux installation and system configuration.

Initial Installation

Pre-installation

  1. Boot from Arch ISO
  2. Verify boot mode: ls /sys/firmware/efi/efivars
  3. Connect to internet: iwctl for WiFi
  4. Update system clock: timedatectl set-ntp true

Disk Preparation

  1. List disks: fdisk -l
  2. Partition the disk: cfdisk /dev/sdX
    • EFI partition: 512M, type EFI System
    • Root partition: remaining space, type Linux filesystem
  3. Format partitions:
    mkfs.fat -F32 /dev/sdX1  # EFI
    mkfs.ext4 /dev/sdX2      # Root
    
  4. Mount filesystems:
    mount /dev/sdX2 /mnt
    mkdir /mnt/boot
    mount /dev/sdX1 /mnt/boot
    

Current partition setup is a quite fragmented leftover from my dual-booting days. Later we should wipe the leftover Windows drive for extra storage, but first we should confirm there's no essential files there (unlikely since it wasn't booted for months, mostly using other windows PC)

System Installation

  1. Install base packages: pacstrap /mnt base linux linux-firmware
  2. Generate fstab: genfstab -U /mnt >> /mnt/etc/fstab
  3. Chroot: arch-chroot /mnt
  4. Set timezone: ln -sf /usr/share/zoneinfo/Europe/Budapest /etc/localtime
  5. Generate hardware clock: hwclock --systohc
  6. Configure locale:
    • Edit /etc/locale.gen, uncomment en_US.UTF-8 UTF-8
    • Run: locale-gen
    • Create /etc/locale.conf: LANG=en_US.UTF-8
  7. Set hostname: echo "homelab" > /etc/hostname
  8. Configure hosts file
  9. Set root password: passwd
  10. Install bootloader: pacman -S grub efibootmgr
  11. Install GRUB: grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
  12. Generate config: grub-mkconfig -o /boot/grub/grub.cfg

Post-Installation Setup

User Management

# Create user
useradd -m -G wheel -s /bin/bash hoborg
passwd hoborg

# Configure sudo
pacman -S sudo
visudo  # Uncomment %wheel ALL=(ALL) ALL

Essential Packages

pacman -S git base-devel openssh networkmanager
systemctl enable NetworkManager
systemctl enable sshd

AUR Access

# Install yay AUR helper
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Desktop Environment

XFCE Installation

pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter
systemctl enable lightdm

Themes and Appearance

  • Window Manager Theme: Matcha-dark-aliz
  • Icons: Papirus-Maia
  • Fonts:
    • System: Install Nerd Fonts (ttf-iosevkaterm-nerd ttf-jetbrains-mono-nerd)
    • TTY: ter-124b (12x24 bold)

Development Environment

Dotfiles Management

# Install yadm
pacman -S yadm

# Clone dotfiles
yadm clone git@gitlab.com:akrejczinger/dotfiles.git

Shell Configuration

  • Shell: zsh with antidote plugin manager
  • Terminal: wezterm with Catppuccin theme
  • Multiplexer: tmux with catppuccin theme and temperature monitoring
  • Editor: neovim with lazy.nvim plugin manager

Key Configurations

  • Keyboard Layout: Colemak (US variant in X11)
  • TTY Layout: Colemak with caps lock → backspace via systemd service
  • Font Fallbacks: Noto fonts for Unicode support

TTY Configuration

Font and Layout

# Configure /etc/vconsole.conf
KEYMAP=colemak
FONT=ter-124b
FONT_MAP=8859-1

Caps Lock Fix

Caps lock mapped to backspace via systemd service:

# /etc/systemd/system/caps-backspace.service
sudo setkeycodes 3a 14  # Map caps scancode to backspace keycode

Color Scheme

TTY colors configured in .zshrc for better readability.

System Maintenance

Package Management

  • Regular updates: yay -Syu
  • Orphaned packages: yay -Yc
  • Cache cleanup: yay -Sc

Backup Strategy

  • Dotfiles: yadm + git repository
  • System configs: Document in this guide
  • User data: External backup solution

Hardware-Specific Notes

ThinkPad Optimizations

  • Temperature Monitoring: Available via sensors command
  • Battery Management: TLP for power optimization
  • Trackpad: libinput with natural scrolling
  • Function Keys: Media keys work out of box

Network Configuration

  • WiFi: NetworkManager with GUI applet
  • Ethernet: Automatic DHCP
  • Bluetooth: bluez with pulseaudio integration