AUTOGATE
● Self-hosted ANPR · edge station + central server

Entry control and license plate recognition

autogate recognizes vehicle plates right on site, records arrivals, departures and time at a checkpoint, then reliably delivers events to your server. One dashboard covers every location and post, while a REST API with Swagger supports integrations. Your infrastructure, no cloud subscriptions.

Your server · your data · in-process ONNX ANPR · open REST API
autogate-server · dashboard
autogate dashboard — locations
Built with Go ONNX Runtime YOLO detector PaddleOCR PostgreSQL React OpenAPI / Swagger SQLite outbox
Features

Recognition, visit tracking and integrations

The station sees a plate and records a vehicle at the checkpoint. The server collects events from every location and makes them available to people and connected systems.

License plate recognition (ANPR)

A YOLO plate detector and PaddleOCR run in ONNX Runtime directly inside the station process. It reads vehicle plates and returns the result with confidence and alternatives.

Arrival, departure and time on site

Arrival and departure events form a visit: when the vehicle came, when it left and how long it stayed. A timeout departure is clearly marked for review.

Multiple checkpoints and cameras

One station serves several checkpoints—entry, exit or service bays—with each camera treated as its own post. The server organizes visits by location and checkpoint.

Reliable event delivery

A local SQLite outbox retries delivery and deduplicates by eventId. If the network or server is unavailable, the station queues events and sends them later—without loss or duplicates.

Dashboard: locations → checkpoints → visits

The server dashboard lists locations, then their checkpoints and visits for a date. Plate, checkpoint, arrival, departure, duration and status appear in one clear table.

REST API + Swagger

Other products receive events through REST: filter visits by location, checkpoint, plate and date with pagination. Full interactive documentation is available at /swagger.

One binary and config.json

The station and server are self-contained binaries with built-in React interfaces. Configure a station in one config.json: location, server, checkpoints and cameras.

Standard IP cameras

Works with standard IP cameras over MJPEG/HTTP streams. For demos and tests, the autogate-ip-cam emulator provides video as an MJPEG stream.

Self-hosted and private

The whole stack runs on your infrastructure: stations on site, server and PostgreSQL in your network. Plates and visit records do not leave for the cloud.

Components

Two components, one workflow

The station recognizes vehicles on site; the server collects events from every location and provides analytics and an API.

On site

autogate-station

A service-centre or checkpoint station connects to cameras, recognizes plates in real time and records vehicle presence. One binary includes the built-in control-window web interface.

  • In-process ANPR on ONNX Runtime (build with -tags onnx)
  • Presence detection by movement or by plate visibility
  • Arrival/departure events with a frame image and confidence
  • SQLite outbox: guaranteed delivery to the server
At headquarters

autogate-server

The central server receives events from every station, stores them in PostgreSQL, shows a dashboard and provides a REST API. One binary includes the React dashboard and Swagger UI.

  • Idempotent event ingestion with an access key
  • Join arrivals and departures into visits with duration
  • Dashboard: locations → checkpoints → visits by date
  • REST API + Swagger at /swagger for integrations
Take a look inside

See it in action

Real autogate screens: the server dashboard, checkpoint visits, the station control window and API documentation. Data is from the live demo environment.

Dashboard

Every location on one screen

The server lists locations such as service centres and checkpoints, showing post count, visits today and last activity. Open a location to see its checkpoints and visits.

autogate-server / locations
autogate dashboard — location list
Visits

Who arrived, where and for how long

Inside a location, visits are grouped by checkpoint for a selected date: plate, entry/exit post, arrival, departure, time on site and status. Filter by post or date and view summary metrics.

autogate-server / location / visits
Visits by checkpoint in autogate
Station

On-site control window

The station web interface shows checkpoint camera status in real time: stream status, FPS, processed frames and current vehicle presence. You can see recognition happening live.

autogate-station · control window
autogate station control window
API

Open REST API with Swagger

The /swagger page documents every method: event ingestion and paginated visit queries by location, checkpoint, plate and date. Other products can retrieve all event data through the API.

autogate-server/server/swagger
Swagger UI autogate-server
Recognition engine

From frame to event

The station takes a camera frame, finds the plate with a detector, reads characters with OCR and decides whether a vehicle is at the checkpoint. It appears—arrival; it disappears—departure. The event enters the outbox and is reliably delivered to the server.

  • YOLO plate detector + PaddleOCR in ONNX Runtime
  • Presence by motion or visible plate (for stationary vehicles)
  • Plate width and confidence thresholds with frame quality checks
  • Idempotent event delivery: at least once, no duplicates
# station processes a frame from the “Entry” checkpoint
frame post-1 → 1280×720, 30 fps
detect plate → 1 item · w=88px · conf 0.94
ocr characters → H743HE31 · conf 0.89

→ presence(vehicle at checkpoint) # appeared
→ event(vehicle_arrived) # to outbox
→ deliver(POST /api/v1/vision/events)
✓ visit created on server
How it works

From camera to analytics

Checkpoint cameras

IP cameras at entry, exit and service bays provide the video stream.

Station (ANPR)

Recognizes the plate, records arrival/departure and puts events into the outbox.

Server + PostgreSQL

Receives events, joins visits and stores them in the database.

Dashboard + API

A location-and-checkpoint dashboard plus a REST API with Swagger for integrations.

1

Install the station on site

One binary and a config.json: set the server address, location and camera checkpoints. The station connects to cameras and starts recognizing plates.

2

Deploy the central server

Run the autogate-server binary with PostgreSQL. Stations send events to it over REST with an access key; the server collects them from every location.

3

Review visits and integrate

Open the dashboard for locations, checkpoints and visits by date. Other systems retrieve events through the REST API with Swagger by location, checkpoint, plate and date.

Automate entry control

Deploy autogate on your own infrastructure: stations on site plus a server and dashboard in your network, with plate recognition, visit tracking and an open API.