docs: update README to reflect arty-based setup and removed Ansible playbook

- Replace Ansible provisioning workflow with arty installation scripts
- Update arty.yml configuration to show simplified structure
- Add HiDrive integration documentation for .zlogin
- Update environment structure to show version managers and symbolic links
- Remove references to playbook.yml and environment-based repo management
- Add documentation for new installation scripts (debian, rust, zed, claude, etc.)
- Clean up .zshenv and remove .last_pwd tracking file

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-14 11:55:37 +01:00
parent 1b90863c19
commit 5bd732f3ac
6 changed files with 126 additions and 370 deletions

172
README.md
View File

@@ -58,35 +58,37 @@ git init && git remote add origin git@github.com:valknarogg/home.git
git fetch && git reset --hard origin/main
git branch --set-upstream-to=origin/main main
# 2. Install Ansible (if not already installed)
sudo apt install git ansible
# 3. Configure git
# 2. Configure git
git config --global init.defaultBranch main
git config --global --add safe.directory /home/$USER
# 4. Unleash the Ansible playbook
sudo -u $USER ansible-playbook -K playbook.yml
# 3. Install essential packages using arty scripts
arty debian/install # Base packages (curl, zsh, fzf, davfs2, etc.)
arty rust/install # Rust toolchain via rustup
arty zed/install # Zed editor
arty claude/install # Claude CLI
# 4. Sync shell configuration and version managers
arty sync
# 5. Source the shell configuration
source ~/.zshrc
```
### **Selective Provisioning**
### **Available Installation Scripts**
Run specific parts of the setup using tags:
Arty provides installation scripts for various tools:
```bash
# Install only Node.js environment
ansible-playbook --tags node -K playbook.yml
# Install Python + Ruby
ansible-playbook --tags python,ruby -K playbook.yml
# Install everything
ansible-playbook -K playbook.yml
arty debian/install # curl, zsh, fzf, davfs2, krusader, make, imagemagick, ffmpeg, yt-dlp
arty rust/install # Rust toolchain via rustup
arty zed/install # Zed code editor
arty claude/install # Claude AI CLI
arty mattermost/install # Mattermost desktop client
arty joplin/install # Joplin note-taking app
arty yq/install # yq YAML processor
```
#### 🏷️ **Available Tags:**
`base` | `node` | `python` | `ruby` | `rust` | `zsh` | `postgres` | `docker` | `fonts` | `flatpak` | `github` | `oh-my-posh`
---
## 🎯 ARTY - REPOSITORY ORCHESTRATION 🎯
@@ -110,73 +112,70 @@ sudo ./arty.sh install
### **The `arty.yml` Configuration**
The root `~/arty.yml` defines your entire repository ecosystem:
The root `~/arty.yml` defines your repository dependencies and installation scripts:
```yaml
name: "Valknar's home"
version: "1.0.0"
envs:
dev: # Development environment
prod: # Production environment
version: '1.0.0'
description: "Valknar's home repository"
author: 'valknar@pivoine.art'
license: 'MIT'
references:
# Project repositories
- url: git@github.com:valknarogg/pivoine.art.git
into: Projects/pivoine.art
env: dev
# Media repositories
- url: git@github.com:valknarogg/home-pictures.git
into: Bilder
env: dev
# Custom scripts and binaries
- url: git@github.com:valknarogg/bin.git
into: bin
# Version managers
- url: https://github.com/nvm-sh/nvm.git
into: .nvm
- url: https://github.com/rbenv/rbenv.git
into: .rbenv
- url: https://github.com/pyenv/pyenv.git
into: .pyenv
- url: https://github.com/moovweb/gvm.git
into: .gvm
# ... and many more
# Shell configuration
- url: https://github.com/ohmyzsh/ohmyzsh.git
into: .oh-my-zsh
- url: https://github.com/romkatv/powerlevel10k.git
into: .oh-my-zsh/custom/themes/powerlevel10k
scripts:
debug: echo "$ARTY_BIN_DIR" && echo "$ARTY_LIBS_DIR"
debian/install: sudo apt install curl zsh fzf davfs2 krusader make imagemagick ffmpeg yt-dlp
rust/install: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
zed/install: curl -f https://zed.dev/install.sh | sh
claude/install: curl -fsSL https://claude.ai/install.sh | bash
```
### **Using Arty**
```bash
# Sync all dev environment repositories
arty sync --env dev
# Sync all repositories defined in arty.yml
arty sync
# Sync production repositories only
arty sync --env prod
# Run installation scripts
arty debian/install
arty rust/install
arty zed/install
# Install dependencies from arty.yml
arty install
# Update all references
arty update
# Run custom scripts defined in arty.yml
arty debug
# Show dependency tree
arty deps
# Update a specific reference
arty update pivoine.art
# Show configuration info
arty info
```
### **What Arty Manages:**
-Project repositories (pivoine.art, sexy.pivoine.art, etc.)
-Media repositories (Pictures, Videos, Music)
-Docker compose configurations
-Version managers (nvm, rbenv, pyenv, gvm)
- ✅ Oh-My-Zsh and plugins
- ✅ Shell scripts and binaries
-**Version managers** (nvm, rbenv, pyenv, gvm)
-**Shell configuration** (Oh-My-Zsh, Powerlevel10k, plugins)
-**Custom binaries** (from valknarogg/bin repository)
-**Installation scripts** (system packages, development tools)
### **Environment-Based Management**
### **Simplified Repository Management**
References can be tagged with `env: dev` or `env: prod` to control which repositories are synced in different environments. This allows you to:
- Keep heavy media files out of production servers
- Separate development projects from system utilities
- Maintain clean, minimal deployments
The configuration has been streamlined to focus on essential tooling and version managers. Project-specific repositories should be managed separately in their respective locations (e.g., `~/Projects/`), while arty handles the core development environment setup.
---
@@ -229,20 +228,27 @@ rs /local/path/ user@host:/remote/path/
---
## 📁 PROJECT STRUCTURE 📁
## 📁 ENVIRONMENT STRUCTURE 📁
```
~/Projects/
├── butter-sh/ # Butter.sh ecosystem (arty, judge, myst, etc.)
├── docker-compose/ # Docker orchestration configs
├── pivoine.art/ # Jekyll art portfolio (main site)
├── docs.pivoine.art/ # Documentation site
├── sexy.pivoine.art/ # Rust + web project (includes buttplug package)
── node.js/
── awesome/ # GitHub Awesome lists browser
├── awesome-app/ # Awesome list application
├── email-pour-vous/ # Email templating project
└── webshot/ # Website screenshot tool
~/
├── bin/ # Custom scripts and executables
├── .nvm/ # Node Version Manager
├── .rbenv/ # Ruby Version Manager
├── .pyenv/ # Python Version Manager
├── .gvm/ # Go Version Manager
── .oh-my-zsh/ # Oh-My-Zsh framework
── custom/
├── themes/
│ └── powerlevel10k/
│ └── plugins/
│ ├── zsh-autosuggestions/
│ └── zsh-syntax-highlighting/
├── Projects/ # Development projects (managed separately)
├── Documents/ # → /mnt/hidrive/users/valknar/Documents
├── Pictures/ # → /mnt/hidrive/users/valknar/Pictures
├── Videos/ # → /mnt/hidrive/users/valknar/Videos
└── Music/ # → /mnt/hidrive/users/valknar/Music
```
---
@@ -251,6 +257,7 @@ rs /local/path/ user@host:/remote/path/
### **Shell Configuration**
- **`.zshrc`** - Oh-My-Zsh with Powerlevel10k theme
- **`.zlogin`** - Login script (mounts HiDrive, creates symbolic links)
- **`.p10k.zsh`** - Powerlevel10k configuration
- **`.bashrc`** - Bash configuration (fallback)
@@ -275,8 +282,21 @@ rs /local/path/ user@host:/remote/path/
- **`.gitconfig`** - Git user configuration
### **Orchestration**
- **`arty.yml`** - Repository and dependency management
- **`playbook.yml`** - Ansible system provisioning
- **`arty.yml`** - Repository and dependency management with installation scripts
---
## 🔗 HIDRIVE INTEGRATION 🔗
The `.zlogin` script automatically:
- **Mounts HiDrive** storage at `/mnt/hidrive` on shell login
- **Creates symbolic links** from HiDrive to home directory:
- `~/Documents``/mnt/hidrive/users/valknar/Documents`
- `~/Pictures``/mnt/hidrive/users/valknar/Pictures`
- `~/Videos``/mnt/hidrive/users/valknar/Videos`
- `~/Music``/mnt/hidrive/users/valknar/Music`
This provides seamless access to cloud-stored media and documents from your home directory.
---
@@ -293,8 +313,8 @@ This repository uses an **inverted `.gitignore`** pattern:
!README.md
!.gitignore
!.zshrc
!.zlogin
!arty.yml
!playbook.yml
...
```