| Age | Commit message (Collapse) | Author |
|
Remove ports for services not installed:
- 80,443,8080/tcp (no web server)
- 9040,9050,9051,9053,9119/tcp (Tor relay - only client installed)
- 443/tcp limit (no HTTPS service)
Add inline comments documenting each port's purpose.
|
|
Detect if avahi-daemon.service is active and skip install/config.
Supports archzfs installs that pre-configure avahi for mDNS on first boot.
|
|
Locking root prevents console access after reboot, making recovery
impossible without reinstalling.
|
|
Move redirect outside subshell so mkdir and git clone output
goes to logfile instead of stdout.
|
|
- Run npm install -g as root (global install requires root perms)
- Add wireless-regdb to prerequisites (prevents kernel regulatory warnings)
|
|
The stub-resolv.conf file only exists when systemd-resolved is running.
|
|
Creates /etc/docker/daemon.json with storage-driver: zfs when running
on a ZFS root filesystem. This provides better performance and enables
Docker to leverage ZFS snapshots.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
Installs @anthropic-ai/claude-code via npm after npm is installed.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- tailscale-bin no longer exists in AUR; tailscale is now in official repos
- torbrowser-launcher (official repo) is more reliable than tor-browser-bin
(AUR) which has GPG key verification issues
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
- ZFS scrub timer: use template unit with pool name (zfs-scrub-weekly@pool.timer)
- Emacs config: handle existing .emacs.d dir with git pull instead of failing
|
|
|
|
|
|
|
|
- Bootstrap DNS symlink in create_user() before AUR/git operations
- Add git safe.directory config before git restore (root on user repo)
|
|
When run via curl|bash, archsetup_dir resolves to /root with no files.
Now clones from git.cjennings.net instead of copying local files.
|
|
- Fixed permission bug where source_dir tmpfs was owned by root
- Remove zfssnapshot and zfsrollback (now in archzfs ISO)
|
|
zfssnapshot:
- Change date format to YYYY-MM-DD_HH-MM-SS_description
(matches pre-pacman snapshot format for consistent sorting)
- Convert spaces to underscores instead of hyphens
- Add GRUB menu regeneration after snapshot creation
zfsrollback:
- Add special warning for genesis rollback
- Add GRUB menu regeneration after successful rollback
(removes destroyed snapshots from boot menu)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
|
|
- zfssnapshot: create dated snapshots across all pools with description
- zfsrollback: fzf-based snapshot selection with multi-dataset rollback
- Both require root and validate input/show appropriate warnings
|
|
- Add --autologin and --no-autologin CLI flags
- Add is_encrypted_root() to detect LUKS and ZFS encryption
- Prompt user on encrypted systems (default yes)
- Configure getty@tty1 drop-in for passwordless login after decryption
|
|
- wireguard-tools from pacman (dotfiles have helper functions ready)
- tailscale-bin from AUR (prebuilt, fast install)
- Enable tailscaled service (run 'tailscale up' to authenticate)
|
|
|
|
- Configure systemd-resolved with DoT using Cloudflare + Quad9
- Enable DNSSEC validation
- Integrate with NetworkManager
- Fix conflict: keep systemd-resolved for DNS, avahi for mDNS
|
|
|
|
|
|
|
|
Root is locked last so it remains available for recovery if script fails earlier.
Users must use sudo for privileged operations after successful install.
|
|
|
|
- Install and configure fail2ban with ufw integration
- SSH jail: 3 attempts, 1 hour ban
- Default jail: 5 attempts, 10 minute ban
- Also file security recommendations to assets/
|
|
|
|
|
|
- Detect Intel, AMD, and NVIDIA GPUs via lspci
- Install appropriate drivers and hardware video acceleration
- Support multiple GPUs (e.g., hybrid Intel+NVIDIA laptops)
- Add --no-gpu-drivers flag to skip (useful for VMs)
- Use nvidia-dkms for better kernel compatibility
- Add fallback to mesa+vesa for unknown hardware
|
|
- Add missing error codes to error() calls
- Remove useless mkdir pipe to tee
- Remove duplicate 5353/udp firewall rule
- Replace deprecated exfat-utils with exfatprogs
- Quote all variable expansions for safety
- Use pipx instead of pip for isolated environments
|
|
|
|
- Add ZFS detection with sanoid/syncoid for snapshot management
- Add gvfs-smb for Thunar SMB network browsing
- Fix shell quoting throughout script
- Fix stale $action variables in error handlers
- Fix display() return values (was returning 1)
- Fix mkinitcpio.conf sed pattern to be flexible
- Fix vconsole.conf duplicate entries on re-run
- Fix systemd unit overrides using drop-in files
- Fix ufw port typo (55353 -> 5353)
- Fix GRUB_RECORDFAIL_TIMEOUT undefined variable
- Enable NetworkManager service
- Move thunar, libvips, isync to pacman (now in official repos)
- Clean up reflector config with heredoc
- Remove unnecessary sudo when already root
- Convert shebang from sh to bash
|
|
|
|
|
|
|
|
|
|
File remains local but is now covered by .gitignore
|
|
- xinitrc: replace caffeine/caffeine-indicator with caffeine start
- redshift: improve night settings (4500K, no dimming), add comments
- ai-assistants: read protocols.org before NOTES.org
- thunar/calibre: minor auto-generated config updates
|
|
tmux's -c option doesn't expand ~ so windows were starting in $HOME
instead of project directories. Expand tilde to $HOME before passing
to tmux.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
Diagnosed and fixed bug where stow created symlinks to inaccessible locations.
Added test to verify dotfiles are readable by user. Full test passed in 42m 57s.
|
|
Previously, stow created dotfile symlinks pointing to wherever archsetup
was run from (e.g., /root/archsetup or /tmp). If run from a location
inaccessible to the user, zsh would fail to read its config on first
login and prompt for new user setup.
The fix copies archsetup to ~/code/archsetup before running stow, ensuring
symlinks always point to a user-accessible location.
Also adds a test to verify dotfiles are readable by the user (not just root).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
Created script to launch tmux session with Claude assistants for multiple
projects. Synced dotfile changes including calibre, audacious, and shell configs.
|
|
|
|
These AUR packages were incorrectly duplicated as pacman_install calls,
causing false errors during installation. The correct aur_install entries
remain in the emacs utilities section.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
Enables resuming from where the script left off if interrupted:
- State stored in /var/lib/archsetup/state/ as marker files
- run_step() wrapper tracks completion, skips completed steps
- --status flag shows installation progress
- --fresh flag clears state for clean restart
- --help flag documents all options
- 12 major steps tracked (intro through boot_ux)
Example:
archsetup --status # check progress
archsetup # resume from last step
archsetup --fresh # start over
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
Validates system requirements before starting:
- Disk space (minimum 20GB free on /)
- Network connectivity (ping archlinux.org)
- pacman available
- Running on Arch Linux (/etc/arch-release)
Provides clear error messages with recovery hints if checks fail.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
Both fixes were already implemented:
- Root check exists at archsetup:23-27
- git_install and yay installer use safe rm + fresh clone (no git pull --force)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|