From 5407ba391a2f49cd11d9c9e3de7a5b1fae87400a Mon Sep 17 00:00:00 2001 From: aitbc Date: Mon, 30 Mar 2026 17:36:39 +0200 Subject: [PATCH] fix: use standard /var/log/aitbc instead of symlinked /var/lib/aitbc/logs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Standard Logging Directory - Complete: ✅ LOG DIRECTORY STRUCTURE FIXED: Changed from symlinked /var/lib/aitbc/logs to standard /var/log/aitbc - setup.sh: Updated to create /var/log/aitbc as actual logs directory - systemd services: Updated all services to use /var/log/aitbc - Removed symlink: No longer creating symlink from /var/lib/aitbc/logs to /var/log/aitbc - Reason: /var/log/aitbc is standard Linux location for logs ✅ BEFORE vs AFTER: ❌ Before (Non-standard): /var/lib/aitbc/logs/ (created directory) /var/log/aitbc -> /var/lib/aitbc/logs/ (symlink) systemd ReadWritePaths=/var/lib/aitbc/logs Non-standard logging location ✅ After (Standard Linux): /var/log/aitbc/ (actual logs directory) No symlink needed systemd ReadWritePaths=/var/log/aitbc Standard Linux logging location ✅ SETUP SCRIPT CHANGES: 📁 Directories: Create /var/log/aitbc instead of /var/lib/aitbc/logs 📋 Permissions: Set permissions on /var/log/aitbc 👥 Ownership: Set ownership on /var/log/aitbc 📝 README: Create README in /var/log/aitbc 🔗 Symlink: Removed symlink creation ✅ SYSTEMD SERVICES UPDATED: 🔧 aitbc-advanced-ai.service: ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data 🔧 aitbc-enterprise-api.service: ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data 🔧 aitbc-multimodal-gpu.service: ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data /dev/nvidia* 🔧 aitbc-web-ui.service: ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data ✅ STANDARD LINUX COMPLIANCE: 📁 /var/log/aitbc: Standard location for application logs 📁 /var/lib/aitbc/data: Standard location for application data 📁 /var/lib/aitbc/keystore: Standard location for secure storage 📁 /etc/aitbc: Standard location for configuration 🎯 FHS Compliance: Follows Linux Filesystem Hierarchy Standard ✅ BENEFITS: ✅ Standard Practice: Uses conventional Linux logging location ✅ Tool Compatibility: Works with standard log management tools ✅ System Integration: Integrates with system logging infrastructure ✅ Monitoring: Compatible with logrotate and monitoring tools ✅ Documentation: Clear and standard directory structure ✅ CODEBASE CONSISTENCY: 📋 Documentation: Already references /var/log/aitbc in many places 🔧 Services: All systemd services now use consistent log path 📝 Scripts: Log scripts and tools work with standard location 🎯 Standards: Follows Linux conventions for logging RESULT: Successfully updated entire codebase to use standard /var/log/aitbc directory for logs, eliminating non-standard symlinked structure and ensuring Linux FHS compliance. --- setup.sh | 11 ++++------- systemd/aitbc-advanced-ai.service | 2 +- systemd/aitbc-enterprise-api.service | 2 +- systemd/aitbc-multimodal-gpu.service | 2 +- systemd/aitbc-web-ui.service | 2 +- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/setup.sh b/setup.sh index d3099619..e54c8003 100755 --- a/setup.sh +++ b/setup.sh @@ -91,7 +91,7 @@ setup_runtime_directories() { "/var/lib/aitbc" "/var/lib/aitbc/keystore" "/var/lib/aitbc/data" - "/var/lib/aitbc/logs" + "/var/log/aitbc" "/etc/aitbc" ) @@ -104,26 +104,23 @@ setup_runtime_directories() { chmod 755 /var/lib/aitbc chmod 700 /var/lib/aitbc/keystore # Secure keystore chmod 755 /var/lib/aitbc/data - chmod 755 /var/lib/aitbc/logs + chmod 755 /var/log/aitbc chmod 755 /etc/aitbc # Set ownership chown root:root /var/lib/aitbc chown root:root /var/lib/aitbc/keystore chown root:root /var/lib/aitbc/data - chown root:root /var/lib/aitbc/logs + chown root:root /var/log/aitbc chown root:root /etc/aitbc # Create README files echo "# AITBC Runtime Data Directory" > /var/lib/aitbc/README.md echo "# Keystore for blockchain keys (SECURE)" > /var/lib/aitbc/keystore/README.md echo "# Application databases" > /var/lib/aitbc/data/README.md - echo "# Application logs" > /var/lib/aitbc/logs/README.md + echo "# Application logs" > /var/log/aitbc/README.md echo "# AITBC Configuration Files" > /etc/aitbc/README.md - # Create symlink for standard logging - ln -sf /var/lib/aitbc/logs /var/log/aitbc - success "Runtime directories setup completed" } diff --git a/systemd/aitbc-advanced-ai.service b/systemd/aitbc-advanced-ai.service index 135cd931..ac3a7eff 100644 --- a/systemd/aitbc-advanced-ai.service +++ b/systemd/aitbc-advanced-ai.service @@ -23,7 +23,7 @@ NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/var/lib/aitbc/logs /var/lib/aitbc/data +ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data # Resource limits LimitNOFILE=65536 diff --git a/systemd/aitbc-enterprise-api.service b/systemd/aitbc-enterprise-api.service index b424441d..c97ecb71 100644 --- a/systemd/aitbc-enterprise-api.service +++ b/systemd/aitbc-enterprise-api.service @@ -23,7 +23,7 @@ NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/var/lib/aitbc/logs /var/lib/aitbc/data +ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data # Resource limits LimitNOFILE=65536 diff --git a/systemd/aitbc-multimodal-gpu.service b/systemd/aitbc-multimodal-gpu.service index a9916e6d..a4601130 100644 --- a/systemd/aitbc-multimodal-gpu.service +++ b/systemd/aitbc-multimodal-gpu.service @@ -28,7 +28,7 @@ NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/var/lib/aitbc/logs /var/lib/aitbc/data /dev/nvidia* +ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data /dev/nvidia* LimitNOFILE=65536 # GPU access diff --git a/systemd/aitbc-web-ui.service b/systemd/aitbc-web-ui.service index 2919734d..705f501c 100644 --- a/systemd/aitbc-web-ui.service +++ b/systemd/aitbc-web-ui.service @@ -27,7 +27,7 @@ NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=true -ReadWritePaths=/var/lib/aitbc/logs /var/lib/aitbc/data +ReadWritePaths=/var/log/aitbc /var/lib/aitbc/data LimitNOFILE=65536 # Resource limits