Core Technologies
The MIE Opensource Proxmox Cluster is built on several key open-source technologies. This page provides links to external documentation for the core components.
Backend Framework
Express.js
Express is a minimal and flexible Node.js web application framework that provides the foundation for our API server.
- Official Documentation: expressjs.com
- Getting Started: Express Guide
- API Reference: Express API
Used For:
- REST API endpoints
- Request routing and middleware
- Session management
- Server-side rendering
Sequelize ORM
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite, and more.
- Official Documentation: sequelize.org
- Models Guide: Sequelize Models
- Migrations: Sequelize Migrations
- Querying: Sequelize Querying
Used For:
- Database abstraction layer
- Schema migrations
- Model definitions
- Query building
Frontend Templating
EJS (Embedded JavaScript)
EJS is a simple templating language that lets you generate HTML markup with plain JavaScript.
- Official Documentation: ejs.co
- Syntax Reference: EJS Tags
- GitHub Repository: github.com/mde/ejs
Used For:
- Server-side rendering of HTML pages
- Dynamic content generation
- User interface templates
- Admin panel views
Infrastructure
Proxmox VE API
Proxmox Virtual Environment provides a RESTful API for managing virtual machines and containers.
- API Documentation: pve.proxmox.com/pve-docs/api-viewer
- API Guide: Proxmox VE API
- Authentication: API Tokens
Used For:
- Container (LXC) creation and management
- Node information retrieval
- Resource allocation
- Cluster status monitoring
LDAP Gateway
LDAPServer is a custom Node.js-based LDAP server that integrates with our database for authentication.
- GitHub Repository: github.com/mieweb/LDAPServer
- SSSD Documentation: sssd.io/docs
Used For:
- Centralized authentication for all containers
- User credential management
- Group membership resolution
- PAM/NSS integration via SSSD
Supporting Libraries
DNSMasq
DNSMasq provides network infrastructure services including DHCP and DNS.
- Official Documentation: thekelleys.org.uk/dnsmasq/doc.html
- Man Page: dnsmasq(8)
Used For:
- DHCP server for container IP assignment
- DNS resolution for internal domain names
- DNS forwarding for external queries
NGINX
NGINX is a high-performance HTTP server and reverse proxy.
- Official Documentation: nginx.org/en/docs
- Reverse Proxy Guide: NGINX Reverse Proxy
- SSL/TLS: NGINX SSL Configuration
Used For:
- HTTP/HTTPS reverse proxy
- TLS termination
- Layer 4 TCP proxying
- Load balancing
Development Tools
Node.js
Node.js is the JavaScript runtime that powers the entire application stack.
- Official Documentation: nodejs.org/docs
- API Reference: Node.js API
- Recommended Version: 18+ LTS
npm
npm is the package manager for Node.js.
- Official Documentation: docs.npmjs.com
- CLI Commands: npm CLI
Related Resources
- System Architecture: Understand how these technologies work together
- Development Workflow: Set up your development environment
- Contributing: Contribute to the project
- GitHub Repository: View the source code
Version Requirements
| Technology | Minimum Version | Recommended |
|---|---|---|
| Node.js | 18.x | 20.x LTS |
| Proxmox VE | 13.0 | Latest stable |
| PostgreSQL | 12.x | 15.x+ |
| MySQL | 8.0 | 8.0+ |
| NGINX | 1.18 | Latest stable |
Additional Documentation
For implementation-specific details, refer to:
- Code comments in the repository
- README files in individual directories
- Migration files for database schema changes
- Environment variable documentation in
.env.example