Point Cloud Viewer app for Nextcloud with support for LAS, LAZ, and E57 point cloud formats using Potree.
- Docker and Docker Compose
- Go 1.21+
- Node.js 20+
- PHP 8.0+
- Make
# Clone or create project directory
git clone https://github.com/yourusername/files_pointcloudviewer.git
cd files_pointcloudviewer
# Build ExApp
make build-exapp
# Start development environment
make dev
# Access Nextcloud
open http://localhost:8080
user: admin
password: adminfiles_pointcloudviewer/
├── appinfo/ # App metadata
├── lib/ # PHP backend (Nextcloud app)
├── src/ # Frontend (Vue.js)
├── ex_app/ # Go ExApp (conversion service)
└── docker/ # Docker Compose setup
-
Nextcloud App (PHP): Handles Nextcloud integration
- MIME type registration (LAS, LAZ, E57)
- Event listeners (file operations, cache invalidation)
- Cache management
- Admin settings
- Vue.js 2 frontend
-
ExApp (Go): Handles point cloud conversion
- PotreeConverter integration
- REST API for conversion and metadata
-
- Job queue management
-
Docker Environment: Testing infrastructure
- ✅ Project structure created
- ✅ PHP backend components (services, controllers, listeners, migrations)
- ✅ Go ExApp (config, converter, API)
- ✅ Docker Compose configuration
- ✅ Webpack config
- ✅ Playwright tests
- ✅ README
-
Initialize PHP dependencies:
cd files_pointcloudviewer composer install -
Build frontend assets:
npm install npm run build
-
Build ExApp:
make build-exapp
-
Start Docker environment:
make dev
-
Enable app in Nextcloud:
- Upload app to
/var/www/html/apps-extra/ - Run
occ app:enable files_pointcloudviewer - Configure ExApp URL in admin settings
- Upload app to
- ✅ MIME type registration for LAS, LAZ, E57
- ✅ Vue.js 2 viewer with Potree integration
- ✅ File operation listeners
- ✅ Cache management system
- ✅ Admin settings panel
- ✅ Go ExApp with PotreeConverter
- ✅ Docker testing environment
- ✅ Playwright integration tests
- ✅ Cache retention policies
- ✅ Auto-convert on upload option
- ✅ Clear cache on update option
- Nextcloud 31+
- Nextcloud AppAPI (for ExApp support)
- Nextcloud Viewer (for viewer integration)
- Vue.js 2.7 (Nextcloud standard)
- Gin/Gonic (Go HTTP framework)
AGPL-3.0-or-later