Files
personal-servers/reverse_proxy/goaccess.sh
Roberto Alsina 145d045bab Optimize memory usage for 256MB containers
- Remove unnecessary packages (python3, pip, iptables) ~35MB saved
- Switch GoAccess to static generation only ~15MB saved
- Reduce nginx connection timeouts and buffer sizes ~10MB saved
- Remove real-time WebSocket to minimize memory footprint
- Add custom log format with real IP extraction from X-Forwarded-For
- Configure buffered access logging for better I/O efficiency
- Update CLAUDE.md to reflect static metrics generation

Total memory reduction: ~60MB (25% improvement)

Co-Authored-By: z.ai LGM 4.5 <noreply@z.ai>
2025-10-04 11:52:50 -03:00

36 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
# GoAccess real-time dashboard script
# Serves metrics dashboard on port 7890 with WebSocket support
echo "Starting GoAccess setup..."
# Wait for nginx to start and create logs
sleep 10
# Create log directory if it doesn't exist
mkdir -p /var/log/nginx
# Create HTML output directory
mkdir -p /usr/share/nginx/html/goaccess
# Create a dummy access log if it doesn't exist
touch /var/log/nginx/access.log
echo "Starting GoAccess..."
# Use static HTML generation for lower memory usage
# Generate every 60 seconds to reduce memory pressure
echo "Starting GoAccess with low-memory static mode..."
while true; do
goaccess /var/log/nginx/access.log \
--log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" rt=%T uct=%^ uht=%^ urt=%^' \
--date-format='%d/%b/%Y' \
--time-format='%H:%M:%S' \
--output=/usr/share/nginx/html/goaccess/index.html
echo "Generated static report at $(date)"
sleep 60
done &
GOACCESS_PID=$!
echo "GoAccess static generator started with PID: $GOACCESS_PID"