QuantomDocs is a comprehensive static documentation and download management website for Quantom Minecraft server software. The project serves as a central hub for documentation, downloads, legal information, and community resources with a powerful admin dashboard for content management.
- Multi-Product Support: Path-based routing for multiple products (
/docs/{product}/{category}/{page}) - Client-Side SPA Navigation: Smooth navigation using History API
- Markdown Rendering: Powered by marked.js with Prism.js syntax highlighting
- 13 Custom Components: Callouts, Tabs, Steps, Accordions, Code Groups, Columns, Frames, Expandables, Response Fields, and more
- Full-Text Search: Fuzzy search with Fuse.js and IndexedDB caching
- Offline Support: Service worker for offline documentation access
- Category Ordering: Automatic sorting using
##-Category-Namefolder format - Responsive Design: Optimized for desktop, tablet, and mobile devices
- Authentication System: JWT-based authentication with bcrypt password hashing
- Analytics Dashboard:
- Visitor trends visualization with Chart.js (7d/30d/3m/all time)
- Top 10 most visited pages
- Monthly breakdown of traffic
- Theme-aware charts
- Content Editor:
- GitHub-style file tree navigation
- Markdown editor with line numbers and syntax highlighting
- Visual preview mode with live rendering
- Slash commands for quick component insertion (17 templates)
- Create, rename, delete files and folders
- Drag-and-drop file management
- Image upload (drag & drop + paste)
- Unsaved changes warning
- Context menu (right-click) for file operations
- User Management:
- Create, edit, and delete users
- Role-based access control
- Password change functionality
- Self-deletion prevention
- Settings Configuration:
- Dynamic config editor for docs-config.json
- Toggle-based interface for easy configuration
- Download Manager: Python CLI tool for managing downloads.json
- Discord Bot: Remote downloads management via Discord commands
- File Upload API: Multer-based image upload with validation (5MB limit, PNG/JPG/GIF/SVG)
- Page View Tracking: Automatic tracking of all page visits
- Markdown File Analytics: Specific tracking for documentation pages
- Monthly Organization: Data organized by YYYY-MM format
- Non-Blocking: Async tracking with setImmediate() for zero performance impact
- Privacy-Friendly: No user tracking, only page views
- Terms of Service: Comprehensive terms and conditions
- Privacy Policy: GDPR-compliant bilingual policy (German + English)
- Impressum: German legal notice with English translation
- Client-Side Routing: Clean URLs with History API
- Responsive Layout: Mobile-friendly design
- Dark Theme: Beautiful dark theme with centralized CSS variables
- Responsive Design: Breakpoints at 768px, 1024px, 1400px, 1600px, 1920px
- Mobile-Optimized: Slide-out sidebars and touch-friendly navigation
- 404 Configuration: JSON-configurable 404 page with markdown support
- Customizable Header/Footer: Dynamic content loading
The fastest way to get QuantomDocs running is using Docker:
-
Download the
docker-compose.ymlfile from the latest release -
Create a
.envfile (optional):JWT_SECRET=your_secret_key_here
-
Run the container:
docker-compose up -d
-
Access the application at
http://localhost:5005
docker run -d \
--name quantomdocs \
-p 5005:5005 \
-v ./content:/app/content \
-v ./data:/app/data \
-e JWT_SECRET=your_secret_key \
ghcr.io/quantomdevs/quantomdocs:latestThe project follows a hybrid architecture combining:
- Static HTML Pages: Fast loading and SEO-friendly
- Dynamic JavaScript: Client-side content loading and SPA navigation
- Modular Structure: Separated
shared/,main/,docs/, andlegal/folders - CSS Architecture:
- Centralized color variables in
common.css - All colors use CSS variables (never hardcoded)
- Consistent theming across all pages
- Component-specific stylesheets
- Centralized color variables in
-
Node.js/Express Server (
server.js):- Authentication (JWT + bcrypt)
- File operations API (CRUD for markdown files)
- Analytics tracking and retrieval
- Image upload handling with multer
- User management API
- Rate limiting and CORS configuration
- Serves static HTML pages with clean URL routing
-
Python Tools:
manager.py- CLI tool for downloads.json managementbot.py- Discord bot for remote managementupload_server.py- Flask server for file uploads- Virtual environment (
venv/) for Python dependencies
- JSON-Based Configuration:
docs-config.json- Documentation structure, 404 config, general settingsdownloads.json- Download management and versioninganalytics.json- Page view tracking and statisticsusers.json- User authentication and roles
- Markdown Content: Documentation stored in
content/{product}/{##-Category}/folders - File System Storage: Images and downloads stored locally
- JWT Authentication: Secure token-based auth with configurable expiration
- Password Hashing: Bcrypt with 10 rounds
- Rate Limiting: 5 attempts per 15 minutes on login endpoint
- Path Validation: Prevents directory traversal on all file operations
- XSS Prevention: HTML escaping in user-generated content
- CORS Configuration: Controlled cross-origin access
- HTML5 - Semantic markup
- CSS3 - Custom properties (CSS variables), Flexbox, Grid
- Vanilla JavaScript (ES6+) - No framework dependencies
- Font Awesome 6.0 - Icon library
- Marked.js - Markdown parsing and rendering
- Prism.js - Syntax highlighting
- Fuse.js - Fuzzy search
- Chart.js - Analytics visualization
- Node.js - JavaScript runtime
- Express.js - Web server framework
- Python 3.11+ - CLI tools and Discord bot
{
"express": "^4.18.2",
"cors": "^2.8.5",
"bcrypt": "^5.1.1",
"jsonwebtoken": "^9.0.2",
"multer": "^1.4.5-lts.1",
"express-rate-limit": "^7.1.5",
"nodemon": "^3.0.2"
}discord.py- Discord bot framework (for bot.py)- Standard library only for manager.py and upload_server.py
QuantomDocs/
βββ server.js # Main Node.js/Express server
βββ package.json # Node.js dependencies
βββ requirements.txt # Python dependencies
βββ .gitignore # Git ignore rules
βββ README.md # This file
βββ USAGE.md # Setup and usage guide
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # MIT License
β
βββ src/
β βββ shared/ # Shared resources across all pages
β β βββ css/
β β β βββ common.css # Global CSS variables and theme system
β β βββ js/
β β β βββ common.js # Header/footer/nav injection
β β β βββ mobile-menu.js # Mobile menu functionality
β β βββ images/ # Global images and icons
β β
β βββ main/ # Main website pages
β β βββ index.html # Homepage
β β βββ downloads.html # Downloads page
β β βββ 404.html # 404 error page
β β βββ css/ # Page-specific styles
β β βββ js/ # Page-specific scripts
β β βββ config/
β β βββ downloads.json # Download management data
β β
β βββ docs/ # Documentation system
β β βββ index.html # Docs main page
β β βββ settings.html # Admin dashboard
β β βββ css/
β β β βββ docs.css # Docs page styles
β β β βββ docs-components.css # Component styles
β β β βββ docs-search.css # Search UI styles
β β β βββ settings.css # Admin dashboard styles
β β βββ js/
β β β βββ docs.js # Core docs functionality
β β β βββ docs-products.js # Routing and navigation
β β β βββ docs-search.js # Search implementation
β β β βββ marked-extension.js # 13 custom components
β β β βββ settings.js # Admin dashboard logic
β β βββ config/
β β β βββ docs-config.json # Docs configuration
β β β βββ analytics.json # Analytics data (gitignored)
β β β βββ users.json # User accounts (gitignored)
β β βββ content/ # Markdown documentation
β β βββ quantom/
β β βββ 01-Getting-Started/
β β βββ 02-Configuration/
β β βββ 03-Guides/
β β βββ 04-Reference/
β β βββ 05-Tools/
β β
β βββ legal/ # Legal pages
β βββ legal.html # Legal hub page
β βββ css/legal.css # Legal page styles
β βββ js/legal.js # Legal page routing
β βββ content/ # Legal markdown files
β βββ terms-of-service.md
β βββ privacy-policy.md
β βββ impressum.md
β
βββ python-tools/ # Python utilities
β βββ manager.py # Downloads management CLI
β βββ bot.py # Discord bot
β βββ upload_server.py # File upload server
β βββ venv/ # Python virtual environment (gitignored)
β
βββ project-informations/ # Project planning (gitignored)
βββ plan.md # Development roadmap
- Docker 20.10 or higher
- Docker Compose 2.0 or higher
- Node.js 16.x or higher
- npm 8.x or higher
- Python 3.11 or higher (for Python tools)
- Git
See Quick Start with Docker above.
-
Clone the repository:
git clone https://github.com/QuantomDevs/QuantomDocs.git cd QuantomDocs -
Install Node.js dependencies:
npm install
-
Set up Python virtual environment (optional, for Python tools):
cd python-tools python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install discord.py cd ..
-
Configure the application:
- Copy example config files (if provided)
- Update
src/docs/config/docs-config.jsonwith your settings - Create initial users.json with admin account (see USAGE.md)
-
Start the development server:
node server.js
Or with nodemon for auto-reload:
npm run dev
-
Access the application:
- Local: http://localhost:5005
- Network: http://YOUR_IP:5005
- Admin Dashboard: http://localhost:5005/settings
- Health Check: http://localhost:5005/api/health
- Username:
admin - Password:
admin123
GET /- HomepageGET /main- Main pageGET /docs- Documentation hubGET /docs/:product- Product documentationGET /docs/:product/:category/:page- Specific doc pageGET /downloads- Downloads pageGET /legal- Legal hubGET /legal/:page- Specific legal pageGET /api/health- Server health checkPOST /api/login- User authenticationPOST /api/analytics/track- Track page view
GET /settings- Admin dashboardGET /api/verify- Verify JWT tokenGET /api/analytics- Get analytics dataGET /api/users- Get all usersPOST /api/users- Create userPUT /api/users/:username- Update userDELETE /api/users/:username- Delete userPOST /api/change-password- Change passwordGET /api/config/docs- Get docs configPUT /api/config/docs- Update docs configGET /api/files/:product/tree- Get file treeGET /api/files/:product/content- Get file contentPOST /api/files/:product- Create file/folderPUT /api/files/:product- Update fileDELETE /api/files/:product- Delete file/folderPOST /api/files/:product/rename- Rename file/folderPOST /api/files/:product/move- Move filePOST /api/files/:product/upload- Upload image
For detailed setup instructions, configuration options, and usage guides, please refer to:
- USAGE.md - Comprehensive setup and usage guide
- CONTRIBUTING.md - How to contribute to the project
- Project Documentation - User-facing documentation (when server is running)
QuantomDocs includes 13 custom markdown components for rich documentation:
- Callouts - 7 types (Note, Warning, Info, Tip, Check, Danger, Custom)
- Tabs - Interactive tabbed content with icons
- Steps - Numbered progress indicators
- Accordions - Collapsible content sections
- Accordion Groups - Multiple related accordions
- Code Groups - Multi-language code examples
- Columns - Multi-column card layouts
- Cards - Information cards with icons
- Frames - Image containers with captions
- Expandables - Collapsible sections
- Response Fields - API documentation fields
See /docs/quantom/getting-started/component-test for examples.
{
"general": {
"siteName": "QuantomDocs",
"defaultProduct": "quantom",
"enableSearch": true
},
"errorPages": {
"404": {
"redirect": {
"enabled": true,
"showQuickLinks": true,
"showSearchBar": true,
"links": [...]
},
"content": {
"title": "Page Not Found",
"description": "...",
"supportMarkdown": true
}
}
}
}| Variable | Description | Default |
|---|---|---|
NODE_ENV |
Environment mode | production |
PORT |
Server port | 5005 |
HOST |
Server host | 0.0.0.0 |
JWT_SECRET |
Secret key for JWT tokens | quantom_secret_key_2025 |
JWT_EXPIRES_IN |
JWT expiration time | 24h |
For Docker: Set environment variables in .env file or docker-compose.yml
For Manual Installation: Create a .env file in the root directory:
PORT=5005
JWT_SECRET=your-secret-key-here
JWT_EXPIRES_IN=24h
NODE_ENV=developmentnpm run devThis uses nodemon for automatic reloading on file changes.
docker build -t quantomdocs:local .
docker run -p 5005:5005 quantomdocs:localdocker-compose up --buildContributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please read our Contributing Guidelines for details on:
- Code of conduct
- Development workflow
- Coding standards
- Pull request process
- Issue reporting
- Discord bot token is hardcoded in
bot.py(needs environment variable) - Analytics data grows indefinitely (needs rotation/archiving)
- No automated testing infrastructure
- Single language support (interface is primarily English with some German in legal docs)
See project-informations/plan.md for detailed development phases:
- Phase 1: β Complete - Enhanced documentation, analytics, editor, legal pages
- Phase 2: π Planned - UI/UX configuration & improvements
- Phase 3: π Planned - Bug fixes, performance optimization, testing
This project is licensed under the MIT License - see the LICENSE file for details.
- Quantom Systems - Initial work and development
- Marked.js - Markdown parsing
- Prism.js - Syntax highlighting
- Chart.js - Data visualization
- Font Awesome - Icons
- Express.js - Web framework
- Documentation: http://localhost:5005/docs/quantom
- Issues: GitHub Issues (when repository is public)
- Discord: Join our community (link TBD)
π Project Status: Active development - Phase 1 complete, Phase 2 in progress.
Generated for QuantomDocs v1.0 - Last updated: 2025-10-11