Skip to content

dynamicdev-official/watchdocs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WatchDocs logo

πŸ‘‹ WatchDocs β€” Engineer Workspace

Automation β€’ Preview β€’ Notes β€’ Diagram
Site Survey Tooling for Network & CCTV


πŸ“Š Overview

πŸ‘©β€πŸš€Vision

An engineer-first workspace that unifies automation, documentation, site-survey, and architecture diagramming in one lightweight container.

WatchDocs is a single-surface productivity canvas built for the day-to-day work of network, CCTV, and IT-infrastructure engineers. Automate routine checks, sketch topologies, annotate floor plans, and ship living documentation without juggling five separate tools.

πŸ“½οΈFeature Pillars

  • Automation Playground - Visual node editor with typed input / process / output nodes, variables, and simulated runs
  • Preview - Split-pane Markdown and HTML live preview
  • Fast-Note - Rich text notes tuned for field surveys
  • Playground Diagram - Network and CCTV topology with floor-plan overlay, styled cables, and flow animations

πŸ“Έ Screenshots & Views

View Screenshot Purpose Highlights
Automation Playground
(Dark & Light Mode)

Build repeatable workflows with input, process, and output nodes Drag-and-drop canvas, per-type inspector, variables, simulated runs
Preview
(Markdown & HTML)

Render live Markdown or HTML next to the source Split-pane, font size control, export and share
Fast-Note Capture on-site notes in a mobile-friendly rich editor Font family and size, alignment, save-to-device, share
Playground Diagram Map network and CCTV devices over a real floor plan SVG brand icons, styled connections, annotations, flow animations

πŸ«€ Tech Stack

Frontend & UI

Runtime & Delivery


ℹ️Deployment Profile

Attribute Value
Public URL https://watchdocs.dynamicdev.asia
Port mapping 3355:3355 (host : container)
Container name watchdocs
Image tag watchdocs:1.0.0
Docker network dynamicdev-net (shared, external)
Restart policy unless-stopped
Runs as non-root user nextjs (UID 1001)
Healthcheck HTTP GET / on 127.0.0.1:3355 every 30s

πŸ–οΈQuick Start

1. Clone the repository

git clone https://github.com/dynamicdev-official/watchdocs.git
cd watchdocs

2. Ensure the shared network exists

The compose stack expects dynamicdev-net to already be present on the Docker host. Create it once - every service in the ecosystem (Postgres, Traefik, Syscare, WatchDocs) attaches to the same network so containers can reach each other by name.

docker network create dynamicdev-net || true

3. Provide environment variables

cp .env.example .env
# edit DATABASE_URL, NEXT_PUBLIC_APP_URL, etc.

4. Build and start

docker compose up -d --build

5. Verify

docker compose ps
docker compose logs -f watchdocs
curl -I http://127.0.0.1:3355/

Open https://watchdocs.dynamicdev.asia once the reverse proxy has picked up the Traefik labels, or http://<host>:3355 for direct access during bring-up.


πŸŽ‹ Project Structure

watchdocs/
β”œβ”€β”€ app/                      # Next.js App Router (pages, layouts, globals)
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ui/                   # shadcn/ui primitives
β”‚   └── watchdocs/            # Feature components (4 views)
β”‚       β”œβ”€β”€ navbar.tsx
β”‚       β”œβ”€β”€ status-bar.tsx
β”‚       β”œβ”€β”€ automation-playground.tsx
β”‚       β”œβ”€β”€ preview-view.tsx
β”‚       β”œβ”€β”€ fast-note.tsx
β”‚       β”œβ”€β”€ playground-diagram.tsx
β”‚       └── diagram-icons.tsx
β”œβ”€β”€ lib/                      # Shared utilities
β”œβ”€β”€ public/                   # Static assets
β”œβ”€β”€ Dockerfile                # Multi-stage production image
β”œβ”€β”€ docker-compose.yml        # Stack definition (dynamicdev-net)
β”œβ”€β”€ DEPLOYMENT.md             # Detailed self-host guide with Postgres
└── README.md                 # This file

πŸ‘¨β€πŸ’»Operational Commands

Action Command
Build image only docker compose build
Start in background docker compose up -d
Stop and remove docker compose down
Rebuild from clean state docker compose up -d --build --force-recreate
Follow logs docker compose logs -f watchdocs
Inspect running container docker exec -it watchdocs sh
Check health docker inspect --format '{{.State.Health.Status}}' watchdocs
Prune stale images docker image prune -f

πŸ“Š Architecture

graph LR
    A[Client Browser] -->|HTTPS| B[Traefik / Edge Proxy]
    B -->|watchdocs.dynamicdev.asia :443| C[WatchDocs Container :3355]
    C -->|Read / Write| D[(PostgreSQL)]
    C -->|Shared LAN| E[Other Services on dynamicdev-net]
    style B fill:#24A1C1,color:#fff
    style C fill:#B03A2E,color:#fff
    style D fill:#4169E1,color:#fff
Loading

All services share the external dynamicdev-net Docker network so that internal hostnames like postgres, traefik, and watchdocs resolve without exposing extra ports.


πŸ›’οΈ Database

WatchDocs can run in demo mode (in-memory, no DB) for quick evaluation. For multi-user and persistent workspaces, pair it with a Postgres container on the same network. Full schema, migration SQL, and connection wiring are documented in DEPLOYMENT.md.

Table Purpose
app_users Account records (replace Supabase Auth)
notes Fast-Note documents
preview_docs Preview view Markdown / HTML snippets
automations Saved automation graphs
automation_runs Historical simulation / execution logs
diagrams Playground Diagram devices, connections, regions

πŸ” Security & Hardening

  • Runs as non-root user inside the container (UID 1001)
  • Reverse-proxy termination for TLS - do not expose 3355 to the public internet
  • Bind-mount nothing into the container by default
  • .env secrets stay on the host, never baked into the image
  • Logging capped at 10 MB per file, 5 rotations, to avoid disk pressure
  • Recommended companion services on the same network: Traefik (TLS), Watchtower (auto-update), Uptime Kuma (monitoring)

🚣 Roadmap

Milestone Status
v1.0 - Four-view workspace Released
v1.1 - Real workflow executor Planned
v1.2 - Multi-user realtime (Yjs) Research
v1.3 - MCP-driven device probes Discovery
v2.0 - Offline PWA for field engineers Proposed

πŸ‘¨β€πŸ’» Contributing

Pull requests are welcome for bug fixes, performance improvements, and new diagram icons. For larger changes, open an issue first so we can align on scope and direction.

# Install dependencies
pnpm install

# Start the dev server on http://localhost:3000
pnpm dev

# Produce a production build locally
pnpm build && pnpm start

πŸ–₯️ Support & Contact

Technical Support

For bugs, deployment questions, and service inquiries

Partnership

Integration, custom deployment, and collaboration

Follow

Stay updated with the rest of the ecosystem


πŸ” License

Released under the MIT License. See LICENSE for details.


Copyright Β© 2026 dynamicdev_ official - All Rights Reserved

Engineered in Bangkok, Thailand

About

πŸ“ WatchDocs is a single-surface productivity canvas built for the day-to-day work of network, CCTV, and IT-infrastructure engineers. Automate routine checks, sketch topologies, annotate floor plans, and ship living documentation without juggling five separate tools.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages