Commit Graph

99 Commits

Author SHA1 Message Date
d40a3d4239 Update os-release branding to show nullpoint identity
- Add nullpoint branding to /etc/os-release PRETTY_NAME field
- Preserve original OS information as base system reference
- Create backup of original os-release file
- Display updated branding information during installation
2025-08-25 15:05:32 +02:00
0d21e43a8f also give root lsd and bpytop 2025-08-25 11:12:03 +02:00
b582bb9574 better ascii logos 2025-08-25 11:07:39 +02:00
0809224963 Update to Nebula v1.9.6
Use latest stable release for improved performance and bug fixes
2025-08-24 20:32:05 +02:00
9ae5c8bbd0 Add cluster logo ASCII art to installer
Beautiful mesh network visualization for nullpoint cluster installer
2025-08-24 20:30:23 +02:00
370a46f9cf better icon for nullpoint cluster 2025-08-24 19:01:06 +02:00
50c56ad5f7 README h3 -> h2 2025-08-24 18:47:00 +02:00
bb0514469d Properly implement remote nodes as GlusterFS clients
Remote nodes are now true GlusterFS clients:
- Only install glusterfs-client packages (not server)
- Don't run glusterd service
- Don't contribute storage bricks
- Mount volume as client from full nodes
- Perfect for edge locations with high latency

Full nodes are GlusterFS servers:
- Install and run glusterfs-server
- Contribute storage bricks
- Participate in replication
- Must be used in low-latency environments

This prevents replication delays - writes only wait for full nodes,
not remote clients. Remote nodes get eventual consistency.
2025-08-24 18:45:53 +02:00
b3db6f0f82 Add remote node support to nullpoint cluster
- Full nodes: contribute storage, act as lighthouses
- Remote nodes: don't contribute storage, not lighthouses, but have full read/write access
- Expanded README with clearer feature descriptions
- Interactive node type selection during join
- Remote nodes useful for edge locations or low-storage devices
2025-08-24 18:41:54 +02:00
7bc8fb8f06 upd README 2025-08-24 18:34:43 +02:00
443c5a03c1 clusetr icon 2025-08-24 18:34:11 +02:00
9ee3b5b40f Minimize cluster section in README
Keep it simple - just the essentials:
- What it is: distributed storage with mesh networking
- How to run it: wget command
- How it works: preshared secret + lighthouse
- Where data goes: /data/storage/
2025-08-24 18:22:43 +02:00
3dec31c52e Make cluster setup more generic and flexible
- Accept list of lighthouse endpoints (DNS names or IPs)
- Remove specific HA setup references from README
- Add recommendation for redundant DNS in script prompts
- Add links to Nebula and GlusterFS documentation
- Support multiple lighthouse endpoints separated by commas
- More generic language suitable for any infrastructure setup
2025-08-24 18:21:50 +02:00
1d48721308 Simplify Nebula setup with DNS-based lighthouse discovery
- Use DNS domain for lighthouse discovery (works with HAProxy/Keepalived)
- All nodes are lighthouses by default for full redundancy
- Remove static_host_map complexity - DNS handles everything
- Ask for lighthouse domain during setup
- Allow disabling lighthouse mode for remote/edge nodes
- Simplified cluster secret: domain:port:ca_cert

This allows using existing HA infrastructure (DNS pointing to alive nodes)
instead of complex IP tracking and manual updates.
2025-08-24 18:18:37 +02:00
2c7bd4ac76 Replace WireGuard with Nebula for true mesh networking
- Switch from WireGuard point-to-point to Nebula overlay network
- Certificate-based trust with single CA for cluster authentication
- True mesh networking - all nodes can communicate directly
- Simplified joining process with lighthouse-based discovery
- Network range: 192.168.100.0/24 (lighthouse at .1)
- Auto-downloads and installs Nebula binaries
- Maintains GlusterFS replication across mesh nodes

Note: Certificate distribution requires manual step for security
2025-08-24 18:07:57 +02:00
402d997599 Fix WireGuard AllowedIPs for proper mesh networking
Change from /32 single-IP restrictions to full network range for all peers.
This enables proper all-to-all mesh communication while maintaining
security through preshared keys.
2025-08-24 17:54:35 +02:00
12e8546023 Add nullpoint cluster feature with WireGuard mesh and GlusterFS
- New cluster-setup.sh script for creating/joining distributed storage clusters
- Interactive menu: create new cluster or join existing
- WireGuard mesh networking with automatic IP allocation
- GlusterFS with full replication across all nodes
- Single-node start capability, scales up as nodes join
- Storage mounted at /data/storage/ with automatic firewall config
- Simple wget installer for post-nullpoint-install usage
2025-08-24 17:51:01 +02:00
46d79166a3 Fix Python 3.13 pip and improve user installations
- Add python3.13-pip package for pip support
- Move Claude Code and bpytop to user-only installations
- Add pip alias to use Python 3.13
- Add empty line to MOTD for better spacing
2025-08-18 22:35:37 +02:00
3f27ac8960 Add system upgrade, Docker, bpytop, and bash completion
- Add dnf upgrade at start for latest packages/kernel
- Install real Docker CE from official repository
- Install bpytop via Python 3.13
- Add bash-completion package and zsh compatibility
- Add user to docker group for permission
2025-08-18 22:31:08 +02:00
337ef1e54c Fix PATH export for ~/.local/bin
- Put ~/.local/bin at start of PATH
- Use proper quoting format expected by Claude installer
2025-08-18 22:16:50 +02:00
3ba8f9d1d4 Use Claude Code official installer
- Replace Node.js/npm installation with Claude's official installer
- Cleaner and handles dependencies automatically
2025-08-18 22:11:57 +02:00
5de21476ad Update Python aliases in zshrc
- Add python3.13 alias pointing to python
- Add various Python version aliases (py13, py9)
- Add Python venv management aliases
2025-08-18 21:48:30 +02:00
dc0c37c40d Remove old npm from dnf install
- Only install modern Node.js 20 + npm from NodeSource
- Avoid conflict between old and new npm versions
2025-08-18 21:47:39 +02:00
12fe681efa Install Node.js 20 LTS before Claude Code
- Use NodeSource repository for modern Node.js 20
- Replaces outdated Node.js 16 from AlmaLinux repos
- Ensures Claude Code compatibility
2025-08-18 21:47:17 +02:00
6e47dfb7b6 Add Python 3.13 installation
- Install python3.13 package to match dotfiles alias
- Ensures 'python' alias points to working Python 3.13

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:43:51 +02:00
c4044139d1 Add npm and Claude Code installation
- Install npm package via dnf
- Install Claude Code globally via npm
- Add proper error handling for both installations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:41:17 +02:00
d91a7e9426 Improve end-of-install instructions
- Clear numbered steps for first boot process
- Emphasize entering passphrase twice (RAID1 setup)
- Mention automatic reboot after installation
- Cleaner, more actionable instructions

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:35:35 +02:00
b49fcb3358 Improve SSH fingerprint display logic
- Compare fingerprints and show if they're the same
- Clear indication when keys are shared vs different
- Better user experience for host key verification

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:33:12 +02:00
96ff742bd5 Display SSH host key fingerprints at end of installation
- Show SHA256 fingerprints for both normal and rescue SSH keys
- Helps distinguish between dropbear (rescue) and OpenSSH (normal)
- Makes it easy to verify host keys on first connection

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:31:19 +02:00
c68fadd9aa Refactor terminal setup to use loop for both users
- Single loop handles both user and root setup
- Install oh-my-zsh, powerlevel10k, and dotfiles for both
- Fix shell change using sed instead of chsh command
- Cleaner, more maintainable code structure

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:22:35 +02:00
a707af5b7a Install dotfiles and zsh configuration for root
- Install oh-my-zsh and powerlevel10k for both user and root
- Copy dotfiles to both user and root home directories
- Set zsh as default shell for root
- Root now has same terminal experience as user

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:12:08 +02:00
9739367f38 Harden SSH configuration completely
- Disable root login
- Disable password authentication entirely
- Disable PAM authentication
- Only allow specific user via AllowUsers
- Add clear status messages

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:09:55 +02:00
4895b7d733 Add passwordless sudo for the user
- Configure NOPASSWD: ALL for the created user
- Create proper sudoers.d file with correct permissions
- User no longer needs to enter password for sudo commands

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:09:16 +02:00
d27a6dd76f Fix p10k configuration loading
- Add missing source line for ~/.p10k.zsh in .zshrc
- This prevents the p10k configuration wizard from running

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:05:23 +02:00
c19ec14cfd Fix unlock-luks script and SSH key management
- Make unlock-luks work in minimal initramfs environment
- Handle missing lsblk and systemd-ask-password --list
- Try to use same SSH host key for dropbear and OpenSSH
- Add clear documentation about fingerprint differences
- Better error handling and debugging output

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:02:50 +02:00
4e1129c368 Simplify to only use ED25519 host keys
- Remove RSA and ECDSA key generation (legacy crypto)
- Only generate and use ED25519 keys (most secure)
- Simplify both main script and dracut module

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 21:00:16 +02:00
aa9bac2c5b Add SHA256 fingerprint display for ED25519 host key
- Show SHA256 fingerprint for ed25519 key (modern standard)
- Keep SHA1 output from dropbearkey for other keys
- Clean up key generation output

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 20:55:40 +02:00
555987af40 Fix SSH port in post-install message
- Update from port 2222 to port 22 for dropbear
- Remove redundant -p flag since 22 is default SSH port

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 20:46:12 +02:00
eb7a74e6fc Fix basename error in dotfiles installation
- Properly handle . and .. in dotfile copy loop
- Change directory before listing to avoid path issues
- Explicitly exclude . and .. from file copying

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 20:45:10 +02:00
bb642474b7 Fix initramfs SSH and Clevis compatibility issues
- Replace tinyssh with dropbear for better AlmaLinux compatibility
- Create custom dracut module for dropbear SSH access
- Fix clevis-luks-askpass.path for AlmaLinux 8.7+ (not needed)
- Fix dotfiles installation basename error
- Remove duplicate epel-release installation
- Update README to reflect dropbear on port 22

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 20:39:54 +02:00
6f3e1788e5 going back to dropbear 2025-08-18 20:21:45 +02:00
10ac0401af . 2025-08-18 01:37:18 +02:00
97c296da97 . 2025-08-18 01:35:27 +02:00
ab251d723f . 2025-08-18 01:22:32 +02:00
0a108c460d . 2025-08-18 01:18:55 +02:00
9bc2c4bb34 change 2025-08-18 01:14:33 +02:00
8aee8ab3de ffuuuuu 2025-08-18 01:14:04 +02:00
70bd757166 tinyssh gen host keys 2025-08-18 01:02:54 +02:00
059a926da6 clevis luks askpass ehm ok 2025-08-18 00:58:00 +02:00
0fe95ab969 tinyssh over dropbear 2025-08-18 00:51:10 +02:00