section

Nexus Docs Environment

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

  1. Navigate to https://docs.corlera.com/home/chris/uploads/
  2. Authenticate with username/password
  3. Drag files or use upload button
  4. Files appear immediately; extraction queued in background

File Sharing

  1. Navigate to any file
  2. Right-click β†’ "Create share"
  3. Set password and expiry (optional)
  4. Share link: https://docs.corlera.com/shr/XXXXX
  5. 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

  1. Multi-user support: Currently configured for single user (chris)
  2. AI voice commands: "Upload this file to my documents"
  3. Automatic categorization: AI-powered folder suggestions
  4. 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

ID: bf6f61e6
Path: Nexus 3.0 Complete Environment Reference > Nexus Docs Environment
Updated: 2026-01-07T12:25:02