feat: Add comprehensive Docker support (fixes #71)#72
Open
cj4c0b1 wants to merge 7 commits intoCryptoGnome:mainfrom
Open
feat: Add comprehensive Docker support (fixes #71)#72cj4c0b1 wants to merge 7 commits intoCryptoGnome:mainfrom
cj4c0b1 wants to merge 7 commits intoCryptoGnome:mainfrom
Conversation
- Changed PNL percentage calculation to use margin instead of notional value - Updated both server-side (API) and client-side (PositionTable) calculations - Now matches aster.dex ROE calculation: (unrealizedPnl / margin) * 100 - Fixes issue CryptoGnome#66
…h existing orders
- Add OPTIMIZER_SELECTED_SYMBOLS environment variable support - Pass selected symbols from optimizer job to optimize-config.js - Improve logging and progress reporting during optimization
- Add production-ready Dockerfile with multi-stage builds - Add docker-compose.yml for easy deployment - Add docker-compose.dev.yml for development mode - Add .dockerignore for optimized builds - Add docker-entrypoint.sh for container initialization - Add health check API endpoint at /api/health - Add comprehensive Docker documentation (docs/DOCKER.md) - Add Makefile with convenient Docker commands - Add docker-start.sh interactive setup script - Add GitHub Actions workflow for Docker builds - Add .env.example template - Update README.md with Docker installation instructions Features: - Multi-stage build for optimal image size - Non-root user for security - Volume mounts for data persistence - Health checks for monitoring - Development and production modes - Automatic configuration setup - Easy backup and restore commands
- Remove 'version' attribute from docker-compose.yml - Remove 'version' attribute from docker-compose.dev.yml - Add DOCKER_SETUP_SUMMARY.md with comprehensive overview Docker Compose v2 no longer requires the version attribute and shows warnings when present.
- Fix postinstall script by copying scripts directory before npm install - Add leverage variable to positionManager TP check - Fix unused notionalValue variable in positions API - Replace logWithTrace with logWithTimestamp - Remove config.user.json volume mount to prevent directory creation - Update entrypoint to create config.user.json from defaults - Successfully tested: container runs healthy with dashboard accessible Docker container now starts successfully and passes health checks. Dashboard accessible at http://localhost:3000 WebSocket available at ws://localhost:8080
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🐳 Docker Implementation
Fixes #71
This PR adds complete Docker support for the Aster Lick Hunter Node project, making deployment significantly easier and more reliable.
📦 What's New
Core Docker Files
Developer Tools
Documentation
CI/CD
API Endpoints
✨ Features
Security
Reliability
Developer Experience
make up./docker-start.shmake backup🚀 Quick Start
Using Makefile (Recommended)
Using Docker Compose
Using Interactive Script
🔧 Configuration
Environment Variables
NEXTAUTH_SECRET- Session encryption secret (required)NEXT_PUBLIC_WS_HOST- WebSocket host (default: localhost)DASHBOARD_PORT- Dashboard port (default: 3000)WEBSOCKET_PORT- WebSocket port (default: 8080)Volume Mounts
./data:/app/data- Database and application data./.env.local:/app/.env.local- Environment variables🐛 Bug Fixes
This PR also includes fixes for:
📊 Testing
✅ Container Status: Healthy and running
✅ Dashboard: http://localhost:3000 (accessible)
✅ Health API: http://localhost:3000/api/health (passing)
✅ WebSocket: ws://localhost:8080 (operational)
✅ Bot: Running in paper mode with simulated liquidations
Performance Metrics:
📚 Documentation
See docs/DOCKER.md for:
🎯 Benefits
For Users
For Developers
📝 Breaking Changes
None - This is purely additive. Existing installation methods continue to work.
🔗 Related Issues
Closes #71