System Requirements
Relevant source files
The following files were used as context for generating this wiki page:
This page details the environmental, hardware, and software requirements necessary to deploy and run the Nextcloud CAD Viewer application. The application is a native Nextcloud integration that leverages the @mlightcad/cad-viewer library to enable browser-based rendering of DWG and DXF files.
The requirements are partitioned into server-side specifications (PHP and Nextcloud environment), client-side browser capabilities, and development toolchains. Meeting these requirements ensures optimal performance for 3D rendering and large file handling.
Sources: README.md:1-15, appinfo/info.xml:5-15, wiki/Requirements.md:7-15
Server-Side Requirements
Core Environment
The backend is built using the Nextcloud App Framework and requires a specific version of Nextcloud and PHP. The application is specifically optimized for Nextcloud 33.
| Component | Minimum Requirement | Recommended |
|---|---|---|
| Nextcloud Version | 33 | Latest stable Nextcloud 33 |
| PHP Version | 8.2 | 8.5+ |
| PHP Memory Limit | 512MB | 1GB+ (for large files) |
| Max Execution Time | 120s | 300s |
Sources: appinfo/info.xml:45-48, wiki/Requirements.md:20-35, composer.json:15, wiki/Installation-Guide.md:21-25
PHP Extensions
The following extensions are mandatory for file processing, MIME detection, and secure communication:
gdorimagick: For image processing tasks.fileinfo: Used for accurate MIME type detection of CAD files.mbstring: Required for multi-byte string handling.zip,libxml,dom: For archive and XML handling.curlandopenssl: For network requests and secure layers.
Sources: wiki/Requirements.md:37-50, wiki/Installation-Guide.md:33-40
Database and Web Server
The application supports standard Nextcloud database backends. Production environments should avoid SQLite for CAD file metadata handling due to performance constraints.
- Databases: MySQL 8.0+, MariaDB 10.5+, PostgreSQL 13+, or SQLite 3.35+.
- Web Servers: Apache 2.4+ (requires
mod_headers,mod_rewrite) or Nginx 1.20+.
Sources: wiki/Requirements.md:52-70, wiki/Installation-Guide.md:43-48
Client-Side Requirements
Browser Compatibility
The CAD Viewer relies on modern WebGL technology to render drawings directly in the browser without server-side conversion.
The diagram above illustrates the browser-side dependencies required for the viewer to function effectively. Sources: wiki/Requirements.md:110-120
| Browser | Minimum Version |
|---|---|
| Google Chrome | 90+ |
| Mozilla Firefox | 88+ |
| Apple Safari | 14+ |
| Microsoft Edge | 90+ |
Sources: wiki/Requirements.md:100-108, wiki/Installation-Guide.md:28-32
Hardware Acceleration
Because the viewer uses WebGL 2.0 for 3D and 2D CAD rendering, hardware acceleration must be enabled in the browser settings. Users with dedicated GPUs will experience significantly smoother pan and zoom operations, especially with complex vector drawings.
Sources: wiki/Requirements.md:128-142
File Format and Network Specifications
Supported CAD Formats
The system identifies and processes specific CAD MIME types.
| Format | Extensions | Supported Versions |
|---|---|---|
| AutoCAD DWG | .dwg | R14, 2000, 2004, 2007, 2010, 2013, 2018 |
| AutoCAD DXF | .dxf | R12, R13, R14, 2000+ |
Sources: wiki/Requirements.md:148-165, README.md:65-70, tests/unit/cadLoader.spec.ts:5-18
Network and Bandwidth
Bandwidth requirements scale with the size of the CAD files being viewed.
Sources: wiki/Requirements.md:195-210
Development and Build Requirements
To contribute to or build the application from source, the following toolchain is required.
- Node.js: Version 24+ (or
^20 || ^22as specified in package.json). - Package Manager: NPM 10+ or PNPM 10+.
- Build Tools: Webpack 5.89+ for asset compilation.
- Language: TypeScript 5.4+ and Vue 3.5+.
Sources: package.json:8-12, AGENTS.md:10-15, README.md:25-30
Frontend Dependency Context
The application relies on several high-level libraries for the UI and CAD engine.
{
"dependencies": {
"@mlightcad/cad-viewer": "1.5.0",
"element-plus": "2.13.6",
"vue": "3.5.34",
"axios": "^1.16.1"
}
}
Sources: package.json:23-37
Conclusion
The Nextcloud CAD Viewer is a resource-intensive application on the client side due to its use of WebGL for rendering. While server-side requirements are standard for modern Nextcloud apps (PHP 8.2+, NC 33), the quality of the user experience is highly dependent on the client's browser version and hardware acceleration capabilities. Administrators should ensure that PHP memory limits and upload sizes are adjusted to accommodate the specific CAD file sizes used within their organization.
Sources: wiki/Requirements.md:250-260