Commit be76b99
Replace complex modular architecture with simplified single-file implementation
## Major Architecture Changes
- **Single-file implementation**: Consolidated entire codebase into cmd/navigator/main.go (~1700 lines)
- **Minimal dependencies**: Only go-htpasswd and yaml.v3, removed complex internal packages
- **Simplified build**: Single Go file compilation with Makefile support
## New Features
- **Managed processes**: External process management (Redis, Sidekiq, etc.) with auto-restart
- **Dynamic port allocation**: Finds available ports instead of sequential assignment
- **PID file management**: Automatic cleanup of stale PID files before starting processes
- **Graceful shutdown**: Proper SIGINT/SIGTERM handling with complete process cleanup
- **Enhanced static serving**: nginx-style try_files behavior with multiple file extensions
## Configuration Changes
- **YAML-first approach**: Modern YAML configuration with template variable support
- **nginx compatibility**: Deprecated but still supported for backward compatibility
- **Removed Rails generator references**: Users create and maintain their own YAML configs
## Process Management Improvements
- **On-demand Rails apps**: Start when requested, stop after configurable idle timeout
- **External process lifecycle**: Start/stop Redis, Sidekiq, and other services with Navigator
- **Process monitoring**: Auto-restart crashed processes when configured
- **Environment inheritance**: Rails apps inherit parent process environment variables
## Performance Optimizations
- **Direct static file serving**: Bypasses Rails for assets with configurable caching
- **try_files implementation**: Serves public content (studios, regions, docs) without Rails overhead
- **Content-Type detection**: Automatic MIME type setting for various file extensions
- **Public route optimization**: Zero Rails overhead for non-authenticated static content
## GitHub Actions Updates
- **Updated CI workflow**: Tests new single-file build with proper YAML configuration
- **Enhanced release workflow**: Multi-platform binaries with version injection and proper release notes
- **Maintained compatibility**: Same release process with improved binary generation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 9b8aa00 commit be76b99
30 files changed
Lines changed: 2573 additions & 5292 deletions
File tree
- .github/workflows
- config
- internal
- cli
- config
- logger
- manager
- proxy
- server
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
46 | | - | |
47 | | - | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
48 | 75 | | |
49 | | - | |
50 | | - | |
| 76 | + | |
| 77 | + | |
51 | 78 | | |
52 | 79 | | |
53 | 80 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | | - | |
| 141 | + | |
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
| |||
0 commit comments