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:
172
README.md
172
README.md
@@ -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
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user