selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
pidoors logo

Self-host pidoors

v0.4.11

Open-source access control system for Raspberry Pi

BetaOpen Source
Updated13 hours ago
LanguagePHP
Setup difficultyAdvanced
MobileResponsive
Stars
26
CPU
Raspberry Pi 3B+ or newer
RAM
4GB RAM recommended for server
Storage
16GB+ microSD card for server, 8GB+ for door controller
Ports
80 (HTTP (redirects to HTTPS)), 443 (HTTPS web interface and API)
Install with Docker Compose
Dashboard overview with statistics and chartsDoors management page showing door controllersCards management page for access credentialsAccess logs with filtering and exportSchedules configuration with time windowsAccess groups managementReports and analyticsUpdates page for one-click upgradesDoor settings and configurationCard editing interface

What is pidoors?

PiDoors is a complete access control system that runs on Raspberry Pi hardware. It consists of a central server (React SPA + PHP API + MariaDB) and door controllers (Python daemons) that manage Wiegand card readers, electric locks, and gate motors. The system supports multi-format Wiegand (26-48 bit), scheduled unlock, gate mode with open/stop/close relays, master cards, access groups, holiday calendars, and 24-hour offline operation with local caching. Installation is automated via a shell script that sets up Nginx, PHP-FPM, MariaDB with TLS, and the React frontend. The web UI provides real-time dashboard, card management, access logs, audit trails, and one-click updates. Security features include TLS database encryption, bcrypt passwords, CSRF protection, and rate limiting.

Should you self-host pidoors?

pidoors scores 36/100 on selfhost.directory (how scoring works) and ranks #69 of 78 in Security. It has 26 GitHub stars.

It shipped 19 stable releases in the past year. The latest, v0.4.11, came out on 12 September 2026. New versions land roughly every 1 days.

Setup is advanced: plan for several services and some ongoing maintenance. It is written mostly in PHP.

Its closest alternative on selfhost.directory is pentagi (83/100, 32 648 stars). It scores higher overall, so compare the two before you pick. See pidoors vs pentagi side by side.

Features

  • 24-hour offline operation
  • Access groups and permissions
  • Audit Logging
  • Automated Backups
  • CSV bulk import/export
  • Email notifications
  • Gate Mode
  • LCD Display Support
  • Master cards
  • Multi-format Wiegand support
  • One-click updates
  • React SPA dashboard
  • Reader LED feedback
  • Scheduled unlock
  • TLS database encryption

pidoors README

How to install pidoors

Install pidoors with Docker Compose

Docker and Docker Compose
Environment variables
DB_PASS, DB_ROOT_PASS, ADMIN_EMAIL, ADMIN_PASS

docker compose up --build -d

Development/test environment with server and mock door containers

How to configure pidoors

  • d024Wiegand DATA0 GPIO pin

    Wiegand DATA0 GPIO pin

  • d123Wiegand DATA1 GPIO pin

    Wiegand DATA1 GPIO pin

  • enrollment_tokenController enrollment secret for certificate signing

    Controller enrollment secret for certificate signing

  • latch_gpio18Lock relay GPIO pin

    Lock relay GPIO pin

  • reader_typewiegandType of card reader (wiegand, osdp, nfc_pn532, nfc_mfrc522)

    Type of card reader (wiegand, osdp, nfc_pn532, nfc_mfrc522)

    values: wiegand, osdp, nfc_pn532, nfc_mfrc522

  • session_timeout3600Session timeout in seconds

    Session timeout in seconds

  • sqladdr127.0.0.1Database server address

    Database server address

  • sqldbusersUsers database name

    Users database name

  • sqldb2accessAccess database name

    Access database name

  • sqlpassDatabase password

    Database password

  • sqluserpidoorsDatabase username

    Database username

  • urlhttp://localhostBase URL of the installation

    Base URL of the installation

pidoors releases & version history

More in IoT

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…