Skip to content

Installation

abbas0444 edited this page Sep 9, 2026 · 1 revision

Installation

What you need first

  • Frappe, ERPNext and HRMS version 15 or 16. HRMS is required: the app writes Employee Checkin, which is an HRMS record.
  • Each device reachable from your server on its TCP port — 4370 unless you have changed it.
  • Background workers running. In development that is bench start; in production, supervisor. Without them the scheduled sync never fires.

The Python package pyzk is installed for you with the app.

On Frappe Cloud

  1. Open your bench, go to Apps, and press Add App.
  2. Choose Add from GitHub and paste https://github.com/abbas0444/nexus_zkt_integration.
  3. Pick the branch that matches your version: version-16 or version-15.
  4. Deploy the bench, then install the app on your site from Site → Apps.

On your own bench

cd $PATH_TO_YOUR_BENCH
bench get-app https://github.com/abbas0444/nexus_zkt_integration --branch version-16
bench --site your-site install-app nexus_zkt_integration

Use --branch version-15 if you are on version 15.

You should see this when it finishes:

Nexus ZKT Integration is installed.
  1. Open Nexus ZKT Settings and add your device: a name and its IP address.
  2. On each Employee, fill in Attendance Device ID with that person's user
     ID on the device. Only Active employees are read.
  3. Press Sync Attendance Now.

Nothing else is created. There is deliberately no example device — a placeholder pointing at an address nobody owns would be read by the hourly job and write a failure to your log every hour until somebody noticed.

Updating

cd $PATH_TO_YOUR_BENCH/apps/nexus_zkt_integration && git pull
cd $PATH_TO_YOUR_BENCH
bench --site your-site migrate
bench --site your-site clear-cache
bench restart          # production only

On Frappe Cloud, press Update on the app in your bench and deploy.

Removing it

bench --site your-site uninstall-app nexus_zkt_integration

This removes the app's three DocTypes and their tables. Your Employee Checkin records are not touched — they belong to HRMS, not to this app.

Next

→ Setting up your devices

Clone this wiki locally