Skip to content

ELT-Global/eSSL-attlog

Repository files navigation

🪪 eSSL Attendance Server

An unofficial server for receiving and storing attendance logs and user data from eSSL/ZkTeco biometric devices. Based on reverse-engineered implementations of the ADMS protocol ie. the push APIs and PyZk library.

This server saves data into JSON files and provides REST API endpoints to access and manage the data.

🚀 Getting Started

🐍 via Python

Ensure you are in a Python 3.8+ environment. Ideally, a virtual environment.

  1. Clone the repository:
git clone https://github.com/ELT-Global/eSSL-attlog.git
cd eSSL-attlog
  1. Install the required dependencies:
pip install -r requirements.txt
  1. Run the server:
uvicorn main:app --host 0.0.0.0 --port 8000

# Or with auto-reload for development:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

🐬 via Docker

  1. Build the Docker image:
docker build -t essl-attlog-server .
  1. Run the Docker container:
docker run -d -p 8000:8000 --name essl-attlog-server essl-attlog-server

☁️ via Coolify

This repository is pre-configured for seamless deployment on Coolify:

  1. Create a new resource in your Coolify instance
  2. Select "Public Repository" and enter: https://github.com/ELT-Global/eSSL-attlog.git
  3. Configure the deployment:
    • Build Pack: Nixpacks (auto-detected)
    • Port: 8000 (auto-configured)
    • Health Check: /health (pre-configured)
  4. Optional - Persistent Data: Add a volume mount in Coolify:
    • Source: /data
    • Destination: /app/data
    • This ensures your attendance data persists across deployments
  5. Deploy! 🚀

The application will automatically:

  • Install Python dependencies
  • Initialize data files
  • Start the FastAPI server
  • Be accessible via your Coolify domain

Note: No additional configuration needed - everything is pre-configured via nixpacks.toml and Procfile.

📖 API Documentation

Since FastAPI is used, interactive API documentation is automagically generated. Once the server is running, you can access the following routes to view the OpenAPI/Redoc documentation:

About

An attendance logger built on top of PyZk and reverse-engineered eSSL push APIs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages