{"id":29820390,"url":"https://github.com/soloist-v/nginx-manager","last_synced_at":"2025-08-26T11:33:26.062Z","repository":{"id":305610454,"uuid":"1023323400","full_name":"soloist-v/nginx-manager","owner":"soloist-v","description":"Nginx Manager","archived":false,"fork":false,"pushed_at":"2025-07-21T03:32:05.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-28T23:02:09.374Z","etag":null,"topics":["manager","nginx","nginx-manager"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soloist-v.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-21T01:49:55.000Z","updated_at":"2025-07-21T03:32:08.000Z","dependencies_parsed_at":"2025-07-21T05:42:19.158Z","dependency_job_id":null,"html_url":"https://github.com/soloist-v/nginx-manager","commit_stats":null,"previous_names":["soloist-v/nginx-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/soloist-v/nginx-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloist-v%2Fnginx-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloist-v%2Fnginx-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloist-v%2Fnginx-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloist-v%2Fnginx-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soloist-v","download_url":"https://codeload.github.com/soloist-v/nginx-manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soloist-v%2Fnginx-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272214419,"owners_count":24893201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["manager","nginx","nginx-manager"],"created_at":"2025-07-28T23:00:43.245Z","updated_at":"2025-08-26T11:33:26.046Z","avatar_url":"https://github.com/soloist-v.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nginx Manager\n\nA modern web-based Nginx service management tool built with Go backend and Vue.js frontend, designed for efficient Nginx configuration and monitoring on Windows systems.\n\n## 🚀 Features\n\n### Core Functionality\n- **Service Management**: Start, stop, restart, and reload Nginx service with real-time status monitoring\n- **Configuration Editor**: Advanced online editor with Monaco Editor providing syntax highlighting, auto-completion, and real-time validation\n- **Backup System**: Automatic configuration backups with version control, restore capabilities, and download functionality\n- **Real-time Monitoring**: WebSocket-powered live status updates with automatic reconnection\n- **Log Management**: Real-time viewing of Nginx access and error logs with filtering capabilities\n- **Security**: Optional basic authentication for web interface protection\n- **System Monitoring**: Real-time system performance metrics using gopsutil\n\n### User Interface\n- **Modern UI**: Built with Vuetify 3 for a professional Material Design experience\n- **Responsive Design**: Works seamlessly on desktop and mobile devices\n- **Real-time Updates**: Live status indicators and automatic data refresh\n- **Intuitive Navigation**: Clean, organized interface with easy access to all features\n\n## 🛠 Technology Stack\n\n### Backend (Go)\n- **Framework**: Gin Web Framework for high-performance HTTP routing\n- **WebSocket**: Gorilla WebSocket for real-time communication\n- **Configuration**: Viper for flexible configuration management\n- **Logging**: Logrus for structured logging\n- **System Monitoring**: gopsutil for system metrics\n- **CORS**: Built-in CORS middleware for cross-origin requests\n\n### Frontend (Vue.js)\n- **Framework**: Vue 3 with Composition API\n- **UI Library**: Vuetify 3 for Material Design components\n- **State Management**: Pinia for reactive state management\n- **Routing**: Vue Router for SPA navigation\n- **Code Editor**: Monaco Editor (VS Code's editor) with Nginx syntax support\n- **HTTP Client**: Axios for API communication\n- **Build Tool**: Vite for fast development and optimized builds\n\n## 📁 Project Structure\n\n```\nnginx_manager/\n├── main.go                    # Application entry point\n├── go.mod                     # Go module dependencies\n├── go.sum                     # Go module checksums\n├── configs/\n│   ├── config.yaml           # Application configuration\n│   └── nginx_template.conf   # Nginx configuration template\n├── internal/                  # Internal Go packages\n│   ├── config/               # Configuration management\n│   │   └── config.go\n│   ├── handler/              # HTTP request handlers\n│   │   ├── nginx.go          # Nginx service operations\n│   │   ├── config.go         # Configuration file management\n│   │   └── websocket.go      # WebSocket connections\n│   ├── middleware/           # HTTP middleware\n│   │   └── cors.go           # CORS handling\n│   └── nginx/                # Nginx-specific utilities\n│       ├── config.go         # Nginx configuration operations\n│       └── service.go        # Nginx service management\n├── frontend/                  # Vue.js frontend application\n│   ├── src/\n│   │   ├── api/              # API client functions\n│   │   │   └── nginx.js\n│   │   ├── stores/           # Pinia state stores\n│   │   │   └── nginx.js\n│   │   ├── views/            # Page components\n│   │   │   ├── Dashboard.vue      # Main dashboard\n│   │   │   ├── ConfigEditor.vue   # Configuration editor\n│   │   │   ├── BackupManager.vue  # Backup management\n│   │   │   └── LogViewer.vue      # Log viewing\n│   │   ├── router/           # Vue Router configuration\n│   │   │   └── index.js\n│   │   ├── plugins/          # Vue plugins\n│   │   │   └── vuetify.js\n│   │   ├── css/              # Custom stylesheets\n│   │   │   └── css2.css\n│   │   ├── App.vue           # Root component\n│   │   └── main.js           # Application entry point\n│   ├── index.html            # HTML template\n│   ├── package.json          # Node.js dependencies\n│   └── vite.config.js        # Vite configuration\n├── backups/                   # Automatic backup storage\n├── logs/                      # Application logs\n├── static/                    # Built frontend assets (production)\n├── web/                       # Alternative static assets\n└── README.md                  # This file\n```\n\n## 🚀 Quick Start\n\n### Prerequisites\n- **Go**: 1.23.0 or higher\n- **Node.js**: 18.0 or higher\n- **Nginx**: Installed on Windows system\n- **Git**: For cloning the repository\n\n### 1. Clone and Setup\n\n```bash\ngit clone \u003crepository-url\u003e\ncd nginx_manager\n```\n\n### 2. Configure the Application\n\nEdit `configs/config.yaml` to match your Nginx installation:\n\n```yaml\nserver:\n  host: \"127.0.0.1\"\n  port: 8080\n  debug: true\n\nnginx:\n  executable_path: \"C:/nginx/nginx.exe\"        # Your nginx.exe path\n  config_path: \"C:/nginx/conf/nginx.conf\"     # Your nginx.conf path\n  log_path: \"C:/nginx/logs\"                   # Your logs directory\n  pid_file: \"C:/nginx/logs/nginx.pid\"         # Your PID file path\n\nsecurity:\n  enable_auth: false                           # Set to true for authentication\n  username: \"admin\"                           # Authentication username\n  password: \"password\"                        # Authentication password\n\nbackup:\n  enable: true\n  backup_dir: \"./backups\"\n  max_backups: 10\n```\n\n### 3. Start the Backend\n\n```bash\n# Install Go dependencies\ngo mod tidy\n\n# Run the server\ngo run main.go\n```\n\nThe server will start at `http://localhost:8080`\n\n### 4. Frontend Development (Optional)\n\nFor development with hot reload:\n\n```bash\ncd frontend\nnpm install\nnpm run dev\n```\n\nFrontend dev server will start at `http://localhost:5173`\n\n### 5. Production Build\n\n```bash\n# Build frontend\ncd frontend\nnpm install\nnpm run build\n\n# Build backend (includes frontend assets)\ncd ..\ngo build -o nginx-manager.exe main.go\n\n# Run production binary\n./nginx-manager.exe\n```\n\n## 📡 API Reference\n\n### Nginx Service Management\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| `GET` | `/api/nginx/status` | Get current Nginx service status |\n| `POST` | `/api/nginx/start` | Start Nginx service |\n| `POST` | `/api/nginx/stop` | Stop Nginx service |\n| `POST` | `/api/nginx/restart` | Restart Nginx service |\n| `POST` | `/api/nginx/reload` | Reload Nginx configuration |\n\n### Configuration Management\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| `GET` | `/api/config` | Get current configuration content |\n| `PUT` | `/api/config` | Save configuration file |\n| `POST` | `/api/config/validate` | Validate configuration syntax |\n| `GET` | `/api/config/template` | Get configuration template |\n\n### Backup Management\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| `GET` | `/api/backup` | Get list of available backups |\n| `GET` | `/api/backup/download/:id` | Download specific backup file |\n| `POST` | `/api/backup/restore/:id` | Restore configuration from backup |\n| `DELETE` | `/api/backup/:id` | Delete specific backup |\n\n### WebSocket\n| Endpoint | Description |\n|----------|-------------|\n| `WS /ws/status` | Real-time status updates with auto-reconnection |\n\n## 🎯 Feature Details\n\n### Dashboard\n- **Real-time Status**: Live display of Nginx service status\n- **Process Information**: PID, version, and uptime details\n- **Quick Actions**: One-click service control buttons\n- **System Metrics**: CPU, memory, and disk usage\n- **Connection Status**: WebSocket connection indicator\n\n### Configuration Editor\n- **Advanced Editor**: Monaco Editor with Nginx syntax highlighting\n- **Real-time Validation**: Instant syntax checking\n- **Auto-completion**: Intelligent code suggestions\n- **Auto-backup**: Automatic backup before saving changes\n- **Template Support**: Pre-built configuration templates\n\n### Backup Manager\n- **Automatic Backups**: Timestamped backups on configuration changes\n- **Version Control**: Browse and compare backup versions\n- **One-click Restore**: Instant rollback to any previous version\n- **Download Support**: Export backup files\n- **Cleanup**: Automatic removal of old backups\n\n### Log Viewer\n- **Real-time Logs**: Live access and error log viewing\n- **Filtering**: Search and filter log entries\n- **Auto-refresh**: Automatic log updates\n- **Export**: Download log files\n\n## 🔧 Configuration Options\n\n### Server Configuration\n- `host`: Server binding address (default: \"127.0.0.1\")\n- `port`: Server port (default: 8080)\n- `debug`: Enable debug mode (default: true)\n\n### Nginx Configuration\n- `executable_path`: Path to nginx.exe\n- `config_path`: Path to nginx.conf\n- `log_path`: Directory containing Nginx logs\n- `pid_file`: Path to Nginx PID file\n\n### Security Configuration\n- `enable_auth`: Enable basic authentication\n- `username`: Authentication username\n- `password`: Authentication password\n\n### Backup Configuration\n- `enable`: Enable automatic backups\n- `backup_dir`: Backup storage directory\n- `max_backups`: Maximum number of backups to keep\n\n## 🛡️ Security Features\n\n- **Basic Authentication**: Optional username/password protection\n- **CORS Protection**: Configurable cross-origin request handling\n- **Input Validation**: Comprehensive validation of all inputs\n- **Error Handling**: Secure error responses without sensitive information\n- **File Permissions**: Proper file access controls\n\n## 📊 Monitoring \u0026 Logging\n\n### Real-time Monitoring\n- **Service Status**: Continuous monitoring of Nginx process\n- **System Metrics**: CPU, memory, and disk usage tracking\n- **WebSocket Updates**: Real-time status broadcasting\n- **Connection Health**: Automatic reconnection on failures\n\n### Logging\n- **Structured Logging**: JSON-formatted logs with Logrus\n- **Multiple Levels**: Debug, Info, Warning, Error levels\n- **File Rotation**: Automatic log file management\n- **Performance Tracking**: Request timing and performance metrics\n\n## 🚨 Troubleshooting\n\n### Common Issues\n\n1. **Permission Denied**\n   - Ensure the application has permissions to access Nginx files\n   - Run as administrator if required\n\n2. **Nginx Not Found**\n   - Verify the `executable_path` in config.yaml\n   - Ensure Nginx is properly installed\n\n3. **Port Already in Use**\n   - Change the port in config.yaml\n   - Check for other services using port 8080\n\n4. **WebSocket Connection Failed**\n   - Check firewall settings\n   - Verify CORS configuration\n\n### Debug Mode\nEnable debug mode in `config.yaml`:\n```yaml\nserver:\n  debug: true\n```\n\nThis will provide detailed logging and error information.\n\n## 📦 Dependencies\n\n### Backend Dependencies\n- `github.com/gin-gonic/gin` - Web framework\n- `github.com/gorilla/websocket` - WebSocket support\n- `github.com/spf13/viper` - Configuration management\n- `github.com/sirupsen/logrus` - Structured logging\n- `github.com/gin-contrib/cors` - CORS middleware\n- `github.com/shirou/gopsutil/v3` - System monitoring\n\n### Frontend Dependencies\n- `vue@^3.4.0` - Vue.js framework\n- `vuetify@^3.4.0` - Material Design UI\n- `pinia@^2.1.7` - State management\n- `vue-router@^4.2.5` - Routing\n- `axios@^1.6.2` - HTTP client\n- `monaco-editor@^0.44.0` - Code editor\n\n## 🤝 Contributing\n\nWe welcome contributions! Please feel free to submit issues and pull requests.\n\n### Development Setup\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests if applicable\n5. Submit a pull request\n\n### Code Style\n- Follow Go formatting standards (`gofmt`)\n- Use meaningful commit messages\n- Add comments for complex logic\n- Follow Vue.js style guide for frontend code\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [Gin](https://github.com/gin-gonic/gin) - Fast HTTP web framework\n- [Vuetify](https://vuetifyjs.com/) - Material Design component framework\n- [Monaco Editor](https://microsoft.github.io/monaco-editor/) - Code editor\n- [Vue.js](https://vuejs.org/) - Progressive JavaScript framework\n\n---\n\n**Nginx Manager** - Simplifying Nginx management on Windows systems. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoloist-v%2Fnginx-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoloist-v%2Fnginx-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoloist-v%2Fnginx-manager/lists"}