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>
This commit is contained in:
158
docs/system-setup.md
Normal file
158
docs/system-setup.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# 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:
|
||||
```bash
|
||||
mkfs.fat -F32 /dev/sdX1 # EFI
|
||||
mkfs.ext4 /dev/sdX2 # Root
|
||||
```
|
||||
4. Mount filesystems:
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
pacman -S git base-devel openssh networkmanager
|
||||
systemctl enable NetworkManager
|
||||
systemctl enable sshd
|
||||
```
|
||||
|
||||
### AUR Access
|
||||
```bash
|
||||
# Install yay AUR helper
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
cd yay
|
||||
makepkg -si
|
||||
```
|
||||
|
||||
## Desktop Environment
|
||||
|
||||
### XFCE Installation
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
# 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
|
||||
```bash
|
||||
# Configure /etc/vconsole.conf
|
||||
KEYMAP=colemak
|
||||
FONT=ter-124b
|
||||
FONT_MAP=8859-1
|
||||
```
|
||||
|
||||
### Caps Lock Fix
|
||||
Caps lock mapped to backspace via systemd service:
|
||||
```bash
|
||||
# /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
|
||||
Reference in New Issue
Block a user