267 lines
8.3 KiB
Markdown
267 lines
8.3 KiB
Markdown
# SYSTEM.md
|
|
|
|
**System documentation for LLM coding agents** - This file describes the computer system where this project resides, including hardware, OS, installed software, and environment details.
|
|
|
|
> Last updated: 2025-11-11
|
|
|
|
## System Overview
|
|
|
|
- **Hostname**: tower-of-joy
|
|
- **User**: jpmschweitzer
|
|
- **Home Directory**: /home/jpmschweitzer
|
|
- **Project Location**: /home/jpmschweitzer/Projects/portainer-core
|
|
|
|
## Operating System
|
|
|
|
### Distribution
|
|
- **OS**: Zorin OS 16.3
|
|
- **Based on**: Ubuntu 20.04 (Focal Fossa)
|
|
- **Kernel**: Linux 5.4.0-216-generic
|
|
- **Architecture**: x86_64 (64-bit)
|
|
|
|
### Desktop Environment
|
|
- **Display Server**: X11 (GDM)
|
|
- **Desktop**: GNOME Shell (Zorin session mode)
|
|
- **Session Manager**: gnome-session
|
|
|
|
### Locale & Timezone
|
|
- **Language**: en_US.UTF-8
|
|
- **Numeric/Time Format**: nl_NL.UTF-8
|
|
- **Timezone**: Europe/Amsterdam (CET, +0100)
|
|
|
|
## Hardware Specifications
|
|
|
|
### CPU
|
|
- **Model**: Intel Core i7-6700 @ 3.40GHz (6th Gen Skylake)
|
|
- **Cores**: 4 physical cores, 8 threads (2 threads per core)
|
|
- **Architecture**: x86_64
|
|
- **Frequency**: 800 MHz - 4000 MHz (currently ~3666 MHz)
|
|
- **Cache**:
|
|
- L1d: 128 KiB
|
|
- L1i: 128 KiB
|
|
- L2: 1 MiB
|
|
- L3: 8 MiB
|
|
- **Virtualization**: VT-x supported
|
|
- **Notable Flags**: AVX, AVX2, AES-NI, SSE4.1, SSE4.2, FMA
|
|
|
|
### Memory
|
|
- **Total RAM**: 16 GiB
|
|
- **Available**: ~9.6 GiB (typical)
|
|
- **Swap**: 2.0 GiB
|
|
|
|
### Storage
|
|
|
|
**System has 2 disks with total capacity of 4.2TB:**
|
|
|
|
#### Disk 1: System SSD (/dev/sda)
|
|
- **Model**: Crucial CT525MX300SSD1 (525GB SSD)
|
|
- **Partition**: /dev/sda1
|
|
- **Filesystem**: ext4
|
|
- **Total Size**: 489 GB
|
|
- **Used**: 92 GB (21%)
|
|
- **Available**: 365 GB
|
|
- **Mount Point**: `/` (root)
|
|
- **Purpose**: Operating system, Docker containers, application data
|
|
|
|
#### Disk 2: Media HDD (/dev/sdb)
|
|
- **Model**: Seagate IronWolf NE ST4000NE001 (4TB NAS-grade HDD)
|
|
- **Total Size**: 3.7 TB
|
|
- **Filesystem**: ext4
|
|
- **Label**: "media"
|
|
- **UUID**: f4300e91-3f51-45a0-b038-03335c5bd792
|
|
- **Mount Status**: ⚠️ **Currently unmounted** (not in /etc/fstab)
|
|
- **Purpose**: Media storage for Jellyfin, Nextcloud data, backups
|
|
- **Drive Type**: NAS-optimized (24/7 operation, multi-user workloads)
|
|
|
|
**Total Storage Capacity**: 4.2 TB
|
|
|
|
### Graphics
|
|
- **GPU**: NVIDIA GeForce RTX 2080 Ti (TU102, Rev. A)
|
|
- **VRAM**: 11 GB (11018 MiB)
|
|
- **Driver**: NVIDIA 470.256.02
|
|
- **CUDA Version**: 11.4
|
|
- **Bus**: PCIe 0a:00.0
|
|
- **Current Usage**: ~390 MiB VRAM (mostly X11/GNOME)
|
|
- **Power**: 260W TDP
|
|
|
|
**Note**: NVCC (CUDA compiler) is not currently in PATH, but CUDA drivers are installed.
|
|
|
|
## Development Tools & Languages
|
|
|
|
### Programming Languages
|
|
|
|
#### Python
|
|
- **Version**: 3.8.10 (system default)
|
|
- **pip**: 25.3 (Python 3.10 in user site-packages)
|
|
- **Location**: /usr/bin/python3
|
|
- **Python 2.x**: Not installed
|
|
- **Virtual Environments**:
|
|
- virtualenv: Not installed
|
|
- Conda: Not installed
|
|
- venv module: Available (built-in)
|
|
|
|
#### Node.js & JavaScript
|
|
- **Node.js**: v24.11.0
|
|
- **npm**: 11.6.1
|
|
- **Version Manager**: NVM installed at /home/jpmschweitzer/.nvm
|
|
|
|
#### Java
|
|
- **Version**: Java 21.0.4 LTS (Oracle JDK)
|
|
- **Runtime**: Java(TM) SE Runtime Environment (build 21.0.4+8-LTS-274)
|
|
- **VM**: Java HotSpot 64-Bit Server VM
|
|
|
|
#### C/C++
|
|
- **GCC**: 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
|
|
- **Make**: GNU Make 4.2.1
|
|
- **CMake**: Not installed
|
|
|
|
#### Other Languages
|
|
- **Go**: Not installed
|
|
- **Rust**: Not installed
|
|
|
|
### Version Control
|
|
- **Git**: 2.25.1
|
|
|
|
### Containerization & Virtualization
|
|
- **Docker**: 28.1.1, build 4eba377
|
|
|
|
### Editors & IDEs
|
|
- **Vim**: 8.1 (2018 May 18)
|
|
- **VS Code**: Not installed
|
|
|
|
### Command Line Tools
|
|
- **Shell**: Bash 5.0.17
|
|
- **curl**: 7.68.0
|
|
- **wget**: 1.20.3
|
|
- **SSH**: OpenSSH 8.2p1 Ubuntu-4ubuntu0.13
|
|
|
|
## GPU & CUDA Information
|
|
|
|
### NVIDIA GPU Details
|
|
The system has an NVIDIA RTX 2080 Ti with CUDA support, suitable for:
|
|
- Machine learning and deep learning workloads
|
|
- CUDA-accelerated computing
|
|
- GPU rendering and compute tasks
|
|
- Parallel processing
|
|
|
|
### CUDA Configuration
|
|
- **Driver Version**: 470.256.02
|
|
- **CUDA Toolkit Version**: 11.4 (driver supports)
|
|
- **Compute Capability**: 7.5 (Turing architecture)
|
|
- **NVCC**: Not in PATH (may need manual setup)
|
|
|
|
### GPU Usage Considerations
|
|
When working with GPU-accelerated code:
|
|
- Ensure CUDA toolkit is properly installed if needed
|
|
- Use appropriate CUDA version compatibility (11.4 or compatible)
|
|
- PyTorch/TensorFlow should use CUDA 11.x compatible builds
|
|
- Monitor VRAM usage (11 GB total, ~10.6 GB available for compute)
|
|
|
|
## System Capabilities & Recommendations
|
|
|
|
### Suitable For
|
|
- **Web Development**: Node.js, npm available
|
|
- **Python Development**: Python 3.8 with pip
|
|
- **Java Development**: Java 21 LTS
|
|
- **Machine Learning**: CUDA-capable GPU with 11GB VRAM
|
|
- **Containerized Development**: Docker available
|
|
- **Compiled Languages**: GCC toolchain available
|
|
- **Media Server**: 3.7TB NAS-grade storage for Jellyfin/Plex
|
|
- **NAS/File Server**: Seagate IronWolf drive optimized for 24/7 operation
|
|
- **Cloud Storage**: Ample space for Nextcloud deployments
|
|
- **Home Server**: Suitable for comprehensive home lab setup
|
|
|
|
### Limitations
|
|
- No Rust toolchain (needs installation)
|
|
- No Go compiler (needs installation)
|
|
- CMake not installed (needed for some C/C++ projects)
|
|
- VS Code not installed (Vim available as alternative)
|
|
- CUDA compiler not in PATH
|
|
|
|
### Environment Notes
|
|
- NVM is available for Node.js version management
|
|
- Python 3.8 is the system default (older, consider pyenv for newer versions)
|
|
- pip is installed in user site-packages (Python 3.10 version)
|
|
- Docker is available for containerized workflows
|
|
|
|
## Package Management
|
|
|
|
### System Package Manager
|
|
- **APT**: Available (Ubuntu/Debian package manager)
|
|
- Use `sudo apt install <package>` for system packages
|
|
|
|
### Language-Specific Package Managers
|
|
- **Python**: pip3 (25.3)
|
|
- **Node.js**: npm (11.6.1), managed via NVM
|
|
- **Java**: Maven/Gradle likely needed (not verified)
|
|
|
|
## Network Information
|
|
- SSH client available (OpenSSH 8.2p1)
|
|
- Standard network tools available (curl, wget)
|
|
|
|
## Usage Notes for LLM Agents
|
|
|
|
### Before Installing New Software
|
|
1. Check if the tool is already installed using `which <command>`
|
|
2. Check available disk space:
|
|
- System SSD: 365 GB available (for OS and containers)
|
|
- Media HDD: 3.7 TB available (currently unmounted - needs mounting)
|
|
3. Use appropriate package manager (apt, pip, npm, etc.)
|
|
4. Consider using Docker for isolated environments
|
|
5. **Mount the 4TB media drive** before deploying data-intensive services:
|
|
- Recommended mount point: `/mnt/media` or `/media/storage`
|
|
- Add to `/etc/fstab` for automatic mounting on boot
|
|
- UUID: `f4300e91-3f51-45a0-b038-03335c5bd792`
|
|
|
|
### GPU Development
|
|
1. Verify CUDA toolkit path if developing GPU code
|
|
2. Check GPU memory availability with `nvidia-smi`
|
|
3. Use CUDA 11.x compatible libraries
|
|
4. Monitor GPU utilization to avoid OOM errors
|
|
|
|
### Python Development
|
|
1. System Python is 3.8.10 (older version)
|
|
2. Consider using venv for project isolation
|
|
3. pip is available but points to Python 3.10 libs in user space
|
|
4. May need to install python3-venv: `sudo apt install python3-venv`
|
|
|
|
### Node.js Development
|
|
1. NVM is installed for version management
|
|
2. Current Node.js is v24.11.0 (latest as of 2024)
|
|
3. npm 11.6.1 is available
|
|
|
|
### Docker Usage
|
|
1. Docker 28.1.1 is installed
|
|
2. Useful for consistent development environments
|
|
3. Can isolate dependencies and avoid system conflicts
|
|
|
|
### Storage Management (Dual-Disk Setup)
|
|
1. **System SSD (/dev/sda)**: Use for:
|
|
- Operating system
|
|
- Docker images and container configs
|
|
- Application databases (small, performance-critical)
|
|
- Cache directories
|
|
|
|
2. **Media HDD (/dev/sdb)**: Use for:
|
|
- Jellyfin/Plex media libraries
|
|
- Nextcloud user data
|
|
- Backups and archives
|
|
- Large file storage
|
|
- Any data-intensive workloads
|
|
|
|
3. **Best Practices**:
|
|
- Keep Docker container configs on SSD for performance
|
|
- Store media files on HDD (they're sequential access, HDD is fine)
|
|
- Use bind mounts to map HDD storage into containers
|
|
- Example: `-v /mnt/media/jellyfin:/media:ro` in Docker
|
|
|
|
4. **Before First Use**:
|
|
- Mount the media drive (see step 5 in "Before Installing New Software")
|
|
- Verify mount with `df -h /mnt/media`
|
|
- Set appropriate permissions: `sudo chown -R $USER:$USER /mnt/media`
|
|
|
|
---
|
|
|
|
*Generated automatically on 2025-11-11, updated with storage configuration*
|
|
*For project-specific guidelines, see [AGENTS.md](./AGENTS.md)*
|