Files
portainer-core/docs/reference/SYSTEM.md
T

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)*