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,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.
|
||||
Reference in New Issue
Block a user