Nexus Docs (CopyParty) - KB Documentation
Server: docs
Type: File CDN / Document Sharing
Version: CopyParty (Python) with Nexus configuration v1.3.0
Category: Document Pipeline Cluster
1. Overview
Nexus Docs is the file storage and sharing system for Nexus, providing: - Web-based file access via browser - Password-protected file sharing - User home directories - Document auto-extraction to Corpus - Integration with AI assistants for file retrieval
Public URL: https://docs.corlera.com
Port: 6653 (Document Pipeline cluster)
Storage Root: /data/cdn/ (mapped as /w in CopyParty)
2. Architecture
Core Components
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β docs.corlera.com β
β (DigitalOcean Proxy) β
β 143.198.133.215 β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β HTTPS
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tailscale: 100.73.67.78:6653 β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β CopyParty (Docker: nexus-cdn) β β
β β β β
β β Config: /data/cdn/system/config/copyparty.conf β β
β β Hooks: /data/cdn/system/hooks/ β β
β ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ β
β β /data/cdn/ β β
β β βββ users/ β β
β β β βββ chris/ β β
β β β βββ documents/ β β
β β β βββ images/ β β
β β β βββ uploads/ β Auto-extraction hook β β
β β β βββ markdown/ β β
β β β βββ public/ β β
β β β βββ shared/ β β
β β βββ shared/ β β
β β βββ system/ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
URL Structure
| URL Path | Filesystem Path | Description |
|---|---|---|
/home/chris/ |
/data/cdn/users/chris/ |
User home directory |
/home/chris/documents/ |
/data/cdn/users/chris/documents/ |
User documents |
/home/chris/uploads/ |
/data/cdn/users/chris/uploads/ |
Upload staging (auto-extract) |
/shared/ |
/data/cdn/shared/ |
Global shared resources |
/public/ |
/data/cdn/shared/public/ |
Public files |
Reverse Proxy Configuration
DigitalOcean Droplet: 143.198.133.215
Nginx Config: /etc/nginx/sites-available/docs.corlera.com
server {
listen 443 ssl;
server_name docs.corlera.com;
location / {
proxy_pass http://100.73.67.78:6653; # Tailscale β Nexus
# ... SSL and proxy headers
}
}
3. Configuration
Main Config: /data/cdn/system/config/copyparty.conf
Key Settings: - Port: 6653 (Document Pipeline cluster) - Authentication: Username + password required - Workers: 4 threads - Sharing: Password-protected links enabled (24h revival) - File indexing: Enabled (e2dsa, e2ts)
Volume Permissions:
- /home/chris/*: Full read/write for chris
- /public/*: World-readable, chris can write
- /shared/*: Authenticated read, chris can write
4. Auto-Extraction Hook System
Purpose
When files are uploaded to /home/chris/uploads/, they're automatically sent to the PDF-Converter MCP for content extraction into Corpus.
Configuration in copyparty.conf
[/home/chris/uploads]
/w/users/chris/uploads
accs:
rwmd: chris
flags:
e2d, nodupe, shr_who: auth
xau: j,f,/w/system/hooks/extract-to-corpus.sh
Flags:
- xau: Execute after upload (post-upload hook)
- j: Pass JSON metadata to hook
- f: Pass as first argument
Hook Script: /data/cdn/system/hooks/extract-to-corpus.sh
Location: /data/cdn/system/hooks/extract-to-corpus.sh
Version: 1.0.0
Flow: 1. CopyParty triggers hook after file upload 2. Hook receives JSON with file metadata 3. Validates file is a document (pdf, doc, docx, txt, md, etc.) 4. Calls PDF-Converter MCP on port 6652 5. PDF-Converter extracts content β sends to Corpus
Supported Extensions: - Documents: pdf, doc, docx, txt, md, html, rtf, odt - Spreadsheets: xls, xlsx, csv - Presentations: ppt, pptx
Log File: /data/cdn/system/hooks/extract.log
5. User Experience
File Upload
- Navigate to
https://docs.corlera.com/home/chris/uploads/ - Authenticate with username/password
- Drag files or use upload button
- Files appear immediately; extraction queued in background
File Sharing
- Navigate to any file
- Right-click β "Create share"
- Set password and expiry (optional)
- Share link:
https://docs.corlera.com/shr/XXXXX - Recipients enter password to access
Directory Navigation
- Web interface shows file tree
- File preview for images, PDFs, text
- Download individual files or folders as ZIP
6. Integration Points
AI File Access (find_user_file)
AI assistants can locate user files via the auto MCP server:
# Find a user's file
auto.find_user_file(username='chris', filename='report.pdf')
# Returns: /data/cdn/users/chris/documents/report.pdf
Document Pipeline Integration
βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ
β Nexus Docs ββββββΆβ PDF-Converter ββββββΆβ Corpus β
β Port 6653 β β Port 6652 β β Port 6650 β
β (CopyParty) β β (Extraction) β β (Storage) β
βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ
β β
β β
User uploads file AI queries documents
Redis Integration
None - CopyParty uses filesystem and SQLite for metadata.
7. Docker Deployment
Container: nexus-cdn
docker run -d \
--name nexus-cdn \
-p 6653:6653 \
-v /data/cdn:/w \
-v /data/cdn/system/config/copyparty.conf:/cfg/copyparty.conf \
copyparty/copyparty:latest \
-c /cfg/copyparty.conf
Volumes:
- /data/cdn:/w - Main storage
- /data/cdn/system/config/copyparty.conf:/cfg/copyparty.conf - Configuration
8. Port Assignment
| Service | Port | Role |
|---|---|---|
| Corpus MCP | 6650/6651 | Document storage/search |
| PDF-Converter | 6652 | Content extraction |
| Nexus Docs | 6653 | File CDN/sharing |
Part of the Document Pipeline Cluster (6650-6659).
9. Future Enhancements
- Multi-user support: Currently configured for single user (chris)
- AI voice commands: "Upload this file to my documents"
- Automatic categorization: AI-powered folder suggestions
- Version history: Track file changes over time
10. Key Files
| File | Purpose |
|---|---|
/data/cdn/system/config/copyparty.conf |
Main configuration |
/data/cdn/system/hooks/extract-to-corpus.sh |
Auto-extraction hook |
/data/cdn/system/indexes/ |
File index database |
/data/cdn/users/ |
User home directories |
/data/cdn/shared/ |
Global shared files |
Documentation prepared by Agent McFly (a_isma) | KB node updated by Rocky (o_jugt) | 2026-01-07