Skip to content

Deployment — pre-Colombia & on-site

The Jetson is configured in California, then physically transported to Pereira. Most configuration must happen before flight — once it’s in Colombia, the only remote tool is Tailscale. If Tailscale itself isn’t configured, recovery requires a physical visit to the plant.

Pre-Colombia checklist (California, before flight)

Section titled “Pre-Colombia checklist (California, before flight)”
  1. Install: curl -fsSL https://tailscale.com/install.sh | sh
  2. sudo tailscale up
  3. Authenticate via browser (use the shared project Tailscale account, not Sophia’s personal)
  4. In the Tailscale admin console: set the Jetson’s machine to “never expire” key
  5. systemctl enable tailscaled (auto-start on boot)
  6. Verify from a different Tailscale-connected device: ping <jetson-tailscale-ip> should succeed

Tailscale must be installed, authenticated, and configured to auto-start on the Jetson BEFORE leaving Colombia. If this is skipped, remote access requires a physical visit to the plant to fix it.

— v1.9 plan, section A4

  1. Install Python 3.11, Ultralytics YOLOv8, Flask/FastAPI, pandas, openpyxl, SQLite3
  2. Install OpenCV built with GStreamer support (pip install opencv-python does NOT include GStreamer — build from source or use the JetPack-provided OpenCV)
  3. Install GStreamer + gstreamer1.0-plugins-bad + gstreamer1.0-libav system packages
  4. Test the decode pipeline against a sample RTSP feed (any local Amcrest or generic ONVIF camera works)
  5. Verify YOLOv8 + TensorRT inference at 3–5 fps on ~640×480 downscaled frames (per ADR-004)
  6. Initialize SQLite with the schema from backend/README.md
  7. Seed standard_times from Ref22 Slim - Angela.xlsx
  8. Create a systemd unit for the app: systemctl enable lbzf-monitor
  1. Install the 4TB NVMe in the Jetson’s M.2 2280 slot
  2. Format as ext4, mount at /data
  3. Verify write throughput is sufficient for 6 concurrent H.264 sub-streams (a sustained ~10 MB/s should be fine for sub-stream data)
  1. Connect all 6 cameras to the 8-port PoE switch
  2. Connect the switch to the Jetson via Cat6
  3. Run the full pipeline end-to-end for at least 1 hour with all cameras streaming
  4. Confirm Tailscale dashboard access from a phone on a different network (cellular, not the lab Wi-Fi)
  1. Physical placement — cameras mounted per the floor plan (see the-factory.md)
  2. Cabling — Cat6 from each module’s 8-port PoE switch back to the main switch in the computer room
  3. Power — power up Jetson; verify Tailscale auto-connects (should already be configured)
  4. Network reconfigure — update camera IPs in the app config to match the plant’s subnet
  5. End-to-end test — run pipeline; verify all 6 cameras detected by YOLOv8 and emitting cycle events
  6. Training hand-off — train the local technical contact on the basic restart procedure (start/stop the lbzf-monitor systemd unit, where logs are, how to reach Sophia)
  7. First Excel export — generate one, hand to plant management, confirm format matches INDICADORES ABRIL.xlsx

Remote ops from California (post-deployment)

Section titled “Remote ops from California (post-deployment)”
  • SSH: ssh sophia@<jetson-tailscale-ip>
  • Dashboard: http://<jetson-tailscale-ip>:5000
  • Logs: journalctl -u lbzf-monitor -f
  • Restart app: systemctl restart lbzf-monitor
  • Restart Tailscale (only if absolutely needed): systemctl restart tailscaled

Physical visit. There is no alternative once the device is in Colombia and Tailscale is the only inbound channel. This is why section A is gated as critical.