feat(workstation): complete software cleanup and project organization
- Synchronized Ansible roles with removed redundant packages. - Performed system audit (performance, boot, disk usage). - Organized home directory by removing 22 clean remote repositories. - Reclaimed ~21GB of disk space in ~/Projects. - Retained dirty repositories and those without remote origins for safety. - Updated documentation (performance tuning, software stack, setup). - Created NEXT_STEPS.md and documented learnings.
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
# Next Session Tasks
|
||||||
|
|
||||||
|
## Priority 1 (Clean Up)
|
||||||
|
- [ ] Address permission issues in `PhpstormProjects/satag-amicron-entity-bundle` and `SatagAmicronSix` to finish removal.
|
||||||
|
- [ ] Decide on the fate of dirty repositories:
|
||||||
|
- `~/Projects/ShopifySyncApp` (New work)
|
||||||
|
- `~/Projects/firebird` (Subrepo modified)
|
||||||
|
- `~/Projects/djh-corporate-identity` (Untracked work)
|
||||||
|
- `~/WebstormProjects/onlyoffice` (Logic changes)
|
||||||
|
|
||||||
|
## Priority 2 (Retention)
|
||||||
|
- [ ] Confirm if repositories without remotes should be uploaded to Gitea/GitLab:
|
||||||
|
- `~/Projects/opus-transcribe`
|
||||||
|
- `~/Projects/20238-MediGruen-Naturprodukte-GmbH`
|
||||||
|
- `~/Projects/any-to-markdown`
|
||||||
|
- `~/Projects/pdf2md`
|
||||||
|
|
||||||
|
## Context
|
||||||
|
- Reclaimed 21GB today by removing clean remote repositories.
|
||||||
|
- Workstation software cleanup is complete and synced to Ansible roles.
|
||||||
@@ -12,6 +12,32 @@
|
|||||||
- ansible
|
- ansible
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
- name: Ensure redundant and non-core software is removed
|
||||||
|
community.general.pacman:
|
||||||
|
name:
|
||||||
|
- firefox-developer-edition
|
||||||
|
- audacity
|
||||||
|
- kdenlive
|
||||||
|
- obs-studio
|
||||||
|
- shotcut
|
||||||
|
- qgis
|
||||||
|
- tipp10
|
||||||
|
- xournalpp
|
||||||
|
- bleachbit
|
||||||
|
- reiserfsprogs
|
||||||
|
- dmraid
|
||||||
|
- onlyoffice-desktopeditors
|
||||||
|
- virt-manager
|
||||||
|
- guvcview
|
||||||
|
- helvum
|
||||||
|
- qpwgraph
|
||||||
|
- glmark2
|
||||||
|
- act-git
|
||||||
|
- oha
|
||||||
|
- unetbootin
|
||||||
|
- ventoy
|
||||||
|
state: absent
|
||||||
|
|
||||||
- name: Ensure legacy editor packages are removed
|
- name: Ensure legacy editor packages are removed
|
||||||
community.general.pacman:
|
community.general.pacman:
|
||||||
name:
|
name:
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
description: Learnings from workstation cleanup and project organization
|
||||||
|
tags: [workstation, cleanup, git, disk-usage]
|
||||||
|
last_updated: 2026-02-27
|
||||||
|
---
|
||||||
|
|
||||||
|
# Workstation Organization
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
Home directory was cluttered with 4+ years of project history (104GB) and redundant software packages.
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
1. **Software Cleanup**: Two phases of package removal synced to Ansible (`state: absent`).
|
||||||
|
2. **Project Audit**: Scripted identification of Git repositories.
|
||||||
|
3. **Automated Removal**: Deleted 22 clean repositories that have remote origins.
|
||||||
|
4. **Safety**: Retained dirty repos and repos without remotes.
|
||||||
|
|
||||||
|
## Reclaimed
|
||||||
|
- Disk Space: ~21 GB in Projects + ~2.4 GB in system packages.
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
# Software Audit - mw-pfeddersheim-workstation (2026-02-27)
|
||||||
|
|
||||||
|
## 1. Core Development Tools
|
||||||
|
| Package | Version | Verified | Notes |
|
||||||
|
|---------|---------|----------|-------|
|
||||||
|
| **Node.js** | v25.6.1 | Yes | Matches `software-stack.md` |
|
||||||
|
| **Python** | 3.14.3 | Yes | Matches `software-stack.md` |
|
||||||
|
| **Ansible** | 2.20.2 (core) | Yes | Matches `software-stack.md` |
|
||||||
|
| **Docker** | 29.2.1 | Yes | Matches `software-stack.md` |
|
||||||
|
| **PHP** | 8.5.3 | (pacman) | CLI extensions installed (gd, pgsql, sqlite, etc.) |
|
||||||
|
| **Rust** | 1.93.1 | (pacman) | |
|
||||||
|
|
||||||
|
## 2. Categorized Main Packages
|
||||||
|
|
||||||
|
### Development & DevOps
|
||||||
|
- `act-git`: Local GitHub Actions runner
|
||||||
|
- `ansible`: Infrastructure automation
|
||||||
|
- `composer`: PHP dependency manager
|
||||||
|
- `docker-compose`: Multi-container orchestration
|
||||||
|
- `git-filter-repo`, `git-lfs`: Git extensions
|
||||||
|
- `github-cli (gh)`: GitHub integration
|
||||||
|
- `mmctl`: Mattermost CLI
|
||||||
|
- `yarn`: Node.js package manager
|
||||||
|
|
||||||
|
### System Utilities & Monitoring
|
||||||
|
- `btop`, `htop`: Performance monitors
|
||||||
|
- `eza`, `fd`, `jq`: Modern CLI tools
|
||||||
|
- `inxi`, `neofetch`: System information
|
||||||
|
- `nvtop`: GPU monitoring
|
||||||
|
- `powertop`: Power management
|
||||||
|
- `sysstat`: System performance tools
|
||||||
|
- `tailscale`: VPN/Mesh networking
|
||||||
|
- `ufw`: Firewall
|
||||||
|
|
||||||
|
### GUI Applications
|
||||||
|
- `firefox-developer-edition`: Primary dev browser
|
||||||
|
- `google-chrome`: Testing browser
|
||||||
|
- `gimp`: Image editing
|
||||||
|
- `kdenlive`, `obs-studio`, `shotcut`: Media production
|
||||||
|
- `mattermost-desktop`: Team communication
|
||||||
|
- `nextcloud-client`: File sync
|
||||||
|
- `onlyoffice-desktopeditors`: Office suite
|
||||||
|
- `qgis`: Geospatial analysis
|
||||||
|
- `vlc`: Media player
|
||||||
|
|
||||||
|
### Virtualization & Remote Access
|
||||||
|
- `virt-manager`: VM management
|
||||||
|
- `remmina`: Remote desktop client
|
||||||
|
- `rustdesk`: Remote support
|
||||||
|
|
||||||
|
## 3. Findings & Discrepancies
|
||||||
|
- **CachyOS/Manjaro Hybrid**: The system shows Manjaro release branding and specific Manjaro configs (`manjaro-system`, `manjaro-release`), whereas `software-stack.md` mentions CachyOS.
|
||||||
|
- **VS Code Remnants**: `vscode` package is NOT in the `pacman -Qet` list, indicating the package removal was successful. Primary manual remnant paths (configs/data) were verified as deleted.
|
||||||
|
- **Modern Tooling**: Good adoption of modern CLI tools (`eza`, `fd`, `oha`, `aichat`).
|
||||||
|
- **Ansible Compliance**: All core tools defined in `ansible/roles/dev-tools/tasks/main.yml` (git, base-devel, ripgrep, fd, jq, bat, eza, ansible) are present.
|
||||||
|
- **Missing Documentation in Stack**: `bat` and `ripgrep` are installed and managed via Ansible but were not explicitly listed in the `software-stack.md` core table.
|
||||||
|
|
||||||
|
## 4. Redundant Software Audit & Final Decisions
|
||||||
|
Following user feedback, the software list has been finalized. Packages identified as "keep" are retained for specialized inspections despite not being part of the primary development workflow.
|
||||||
|
|
||||||
|
### 4.1. Packages to Remove
|
||||||
|
The following packages will be set to `state: absent` in Ansible and removed via `pacman`.
|
||||||
|
|
||||||
|
| Category | Package | Reason for Removal |
|
||||||
|
|----------|---------|--------------------|
|
||||||
|
| **Browsers** | `firefox-developer-edition` | Redundant (User prefers Chrome) |
|
||||||
|
| **Media Production** | `audacity`, `kdenlive`, `obs-studio`, `shotcut` | Specialized production tools (Non-core) |
|
||||||
|
| **Graphics & GIS** | `qgis` | Specialized GIS tools (Non-core) |
|
||||||
|
| **Education/Utility**| `tipp10`, `xjournalpp` | Typing tutor and notetaking app (Non-core) |
|
||||||
|
| **Maintenance** | `bleachbit` | Redundant (Functionality covered by `scripts/maintenance.sh`) |
|
||||||
|
| **Legacy Storage** | `reiserfsprogs`, `dmraid` | Legacy filesystem and hardware RAID tools |
|
||||||
|
|
||||||
|
### 4.2. Packages to Keep (Inspections & Utilities)
|
||||||
|
These packages were originally identified as removal candidates but will be kept per user request:
|
||||||
|
- `vlc`: Retained for media inspections.
|
||||||
|
- `gimp`: Retained for image inspections.
|
||||||
|
- `nano`: Retained as a fallback terminal editor.
|
||||||
|
- `rustdesk`: Retained for remote management of systems via the Tailscale network.
|
||||||
|
|
||||||
|
## 5. Implementation Status
|
||||||
|
- [x] **Ansible Integration**: Update `ansible/roles/dev-tools/tasks/main.yml` with `state: absent` for the removal list.
|
||||||
|
- [x] **OS Context Sync**: Update `software-stack.md` and related documentation to reflect the Manjaro/Arch environment.
|
||||||
|
- [x] **Execution**: Run removal via CLI or Ansible playbook.
|
||||||
|
|
||||||
|
## 6. Software Usage Analysis (Idle Applications)
|
||||||
|
An analysis was performed to identify applications that have not been utilized for more than 3 months. Since the system root is mounted with `noatime`, usage was inferred from the absence of user-specific configuration and cache updates in `~/.config` and `~/.cache`.
|
||||||
|
|
||||||
|
### 6.1. Stale Application Candidates
|
||||||
|
The following applications show no evidence of recent activity and are recommended for future review or removal to minimize the workstation's footprint.
|
||||||
|
|
||||||
|
| Application | Last Used (Est.) | Description |
|
||||||
|
|:---|:---|:---|
|
||||||
|
| `onlyoffice-desktopeditors` | > 3 Months | Office suite (Text, Spreadsheets, Presentations) |
|
||||||
|
| `virt-manager` | > 3 Months | Desktop UI for managing virtual machines |
|
||||||
|
| `rustdesk` | > 3 Months | Remote desktop software |
|
||||||
|
| `guvcview` | > 3 Months | Video capture interface for webcams |
|
||||||
|
| `helvum` | > 3 Months | GTK patchbay for PipeWire |
|
||||||
|
| `qpwgraph` | > 3 Months | Qt-based PipeWire graph interface |
|
||||||
|
| `glmark2` | > 3 Months | OpenGL benchmark tool |
|
||||||
|
| `act-git` | > 3 Months | Local GitHub Actions runner |
|
||||||
|
| `oha` | > 3 Months | HTTP load generator/tester |
|
||||||
|
| `unetbootin` | > 3 Months | Live USB creation utility |
|
||||||
|
| `ventoy` | > 3 Months | Multi-ISO bootable USB creator |
|
||||||
|
|
||||||
|
### 6.2. Removal Decisions
|
||||||
|
Following the usage analysis, the user has decided to remove the following idle applications via Ansible:
|
||||||
|
- **Office**: `onlyoffice-desktopeditors`
|
||||||
|
- **Virtualization**: `virt-manager`
|
||||||
|
- **Capture**: `guvcview`
|
||||||
|
- **PipeWire Tools**: `helvum`, `qpwgraph`
|
||||||
|
- **Benchmarking**: `glmark2`, `oha`, `act-git`
|
||||||
|
- **USB Utilities**: `unetbootin`, `ventoy`
|
||||||
|
|
||||||
|
The application **`rustdesk`** will be **retained** as it is actively used for remote system management over Tailscale.
|
||||||
|
|
||||||
|
### 6.3. Strategy Note
|
||||||
|
Usage detection on this workstation is constrained by the `noatime` mount option. Future audits should rely on systemd journal analysis or application-specific logging where available to increase accuracy.
|
||||||
@@ -7,7 +7,7 @@ This document tracks optimization decisions, system tuning parameters, and clean
|
|||||||
- **CPU**: AMD/Intel (High core count assumed from load distribution)
|
- **CPU**: AMD/Intel (High core count assumed from load distribution)
|
||||||
- **RAM**: 64GB
|
- **RAM**: 64GB
|
||||||
- **Storage**: NVMe (77% usage detected)
|
- **Storage**: NVMe (77% usage detected)
|
||||||
- **OS**: CachyOS/Arch Linux
|
- **OS**: Manjaro/Arch Linux
|
||||||
|
|
||||||
## Optimization Strategies
|
## Optimization Strategies
|
||||||
|
|
||||||
@@ -22,10 +22,11 @@ This document tracks optimization decisions, system tuning parameters, and clean
|
|||||||
- **Package Manager**: Maintaining only the last 2 versions of packages in the cache.
|
- **Package Manager**: Maintaining only the last 2 versions of packages in the cache.
|
||||||
|
|
||||||
### 3. Service Optimization
|
### 3. Service Optimization
|
||||||
- **Ananicy**: (Optional) Use Ananicy-cpp for automatic process prioritizing (CachyOS default usually).
|
- **Ananicy**: (Optional) Use Ananicy-cpp for automatic process prioritizing.
|
||||||
|
|
||||||
## Implementation Log
|
## Implementation Log
|
||||||
|
|
||||||
| Date | Type | Description |
|
| Date | Type | Description |
|
||||||
|------|------|-------------|
|
|------|------|-------------|
|
||||||
| 2026-02-27 | Initial | Initial tuning document and strategy established. |
|
| 2026-02-27 | Initial | Initial tuning document and strategy established. |
|
||||||
|
| 2026-02-27 | Audit | Performed system inspection: Boot time 33.8s, RAM usage 6.5GB/62GB, identified KVM and UVC errors. |
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
This guide describes how to bootstrap the **mw-pfeddersheim-workstation** infrastructure on a fresh installation.
|
This guide describes how to bootstrap the **mw-pfeddersheim-workstation** infrastructure on a fresh installation.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
- Linux (Arch/CachyOS preferred)
|
- Linux (Manjaro/Arch Linux)
|
||||||
- Python 3.12+
|
- Python 3.12+
|
||||||
- Git
|
- Git
|
||||||
|
|
||||||
|
|||||||
+11
-16
@@ -10,9 +10,12 @@
|
|||||||
| **Ansible** | 2.20.2 (core) | Infrastructure provisioning and configuration |
|
| **Ansible** | 2.20.2 (core) | Infrastructure provisioning and configuration |
|
||||||
| **Docker** | 29.2.1 | Containerization and environment isolation |
|
| **Docker** | 29.2.1 | Containerization and environment isolation |
|
||||||
| **Git** | latest | Version control |
|
| **Git** | latest | Version control |
|
||||||
|
| **ripgrep** | latest | Fast line-oriented search tool (`rg`) |
|
||||||
|
| **bat** | latest | A `cat` clone with syntax highlighting |
|
||||||
|
| **rustdesk** | latest | Remote management via Tailscale |
|
||||||
|
|
||||||
## OS Context
|
## OS Context
|
||||||
- **OS**: Linux (CachyOS/Arch Linux based on detected GCC 15 and kernel 6.12)
|
- **OS**: Linux (Manjaro/Arch Linux based)
|
||||||
- **Architecture**: x86_64
|
- **Architecture**: x86_64
|
||||||
|
|
||||||
## Maintenance Policies
|
## Maintenance Policies
|
||||||
@@ -28,19 +31,11 @@
|
|||||||
|
|
||||||
## Deprecated Software (Pending Cleanup)
|
## Deprecated Software (Pending Cleanup)
|
||||||
|
|
||||||
### Microsoft Visual Studio Code (Remnants)
|
### Microsoft Visual Studio Code (Status: Removed)
|
||||||
The following remnants of Visual Studio Code / MS IDE components have been identified for review and potential removal to reduce software stack complexity.
|
VS Code has been decommissioned from this workstation.
|
||||||
|
|
||||||
| Type | Path / Identifyer | Description |
|
| Type | Status | Notes |
|
||||||
|------|-------------------|-------------|
|
|------|--------|-------|
|
||||||
| **Package** | `vscode` | Open Source build of Visual Studio Code (installed via pacman) |
|
| **Package** | Removed | `vscode` not present in `pacman -Qet` |
|
||||||
| **Binary** | `/usr/bin/code` | Launcher script for VS Code |
|
| **Config** | Removed | `~/.vscode-oss` directory deleted |
|
||||||
| **Binary** | `/usr/bin/code-oss` | OSS specific launcher script |
|
| **Application Data** | Removed | `~/.config/Code - OSS/` directory deleted |
|
||||||
| **Config** | `~/.vscode-oss` | Global VS Code OSS configuration and extensions |
|
|
||||||
| **Theming** | `~/.oh-my-bash/themes/vscode` | VS Code specific oh-my-bash theme |
|
|
||||||
| **Application Data** | `~/.config/Code - OSS/` | Extensive user data, logs, and cache |
|
|
||||||
| **Application Data** | `~/.local/share/pipx/venvs/*/lib/python*/site-packages/jupyter_lsp/specs/vscode_*` | Python/Jupyter LSP remnants |
|
|
||||||
| **Project Data** | `~/Projects/firebird/.vscode` | Local project settings |
|
|
||||||
| **Project Data** | `~/src/agent-zero/.vscode` | Local project settings |
|
|
||||||
| **Project Data** | `~/nerve/AutoGPT/.vscode` | Local project settings |
|
|
||||||
| **Project Data** | `~/agent-zero/data/.vscode` | Local project settings |
|
|
||||||
|
|||||||
Reference in New Issue
Block a user