Raspberry Pi based door controller software
Go to file
Arti Zirk 2f4005a7ba
All checks were successful
ci/woodpecker/push/build/1 Pipeline was successful
ci/woodpecker/push/build/2 Pipeline was successful
ci/woodpecker/push/manifest Pipeline was successful
Add system architecture
2024-08-29 13:05:38 +03:00
.woodpecker Cleanup CI 2024-08-15 23:18:12 +03:00
godoor_server Add note about not using godoor_server in prod 2024-08-29 12:50:40 +03:00
hash Checkpoint 5 2023-07-30 12:38:47 +02:00
.env Define a door name in example .env file 2023-08-06 21:59:45 +03:00
.gitignore Checkpoint 5 2023-07-30 12:38:47 +02:00
Dockerfile Use mirror.gcr.io 2024-08-15 22:54:09 +03:00
go.mod update deps 2023-08-17 20:11:06 +03:00
go.sum update deps 2023-08-17 20:11:06 +03:00
godoor.go Implement #5: SIGUSR1 2023-08-25 06:03:55 +00:00
LICENSE Init 2022-04-02 21:14:21 +03:00
Makefile Do not error on git describe if tags are missing 2023-08-11 14:35:57 +03:00
README.md Add system architecture 2024-08-29 13:05:38 +03:00
wiegand_mock.go Checkpoint 4 2023-07-30 01:03:52 +03:00
wiegand.go Enable Wiegand data internal pull-ups 2023-08-11 22:09:22 +03:00

GoDoor

Go rewrite of kdoorpi. Uses libgpiod native Go library to access the general purpose pins in cross platform way.

Developing

Either build directly on Raspberry Pi or build locally and copy the binary

GOOS=linux GOARCH=arm64 go build
scp godoor rpi4b:

Deployment

The CI system should automatically build docker image and push it to Harbor

Refer to Ansible playbook on how to deploy on all door controllers

Usage

For end users door can be opened by:

  • Web interface
    • Push button
    • Enrolling keyfob and swiping keyfob at door cardreader
  • Issuing /open-...-door command in #members channel

For emergency cases:

  • Log into door controller via SSH and issue killall -sUSR1 godoor

Door system architecture

                               ┌──────────────┐     
┌──────────────────┐           │ Card Reader  │  ...
│ Slack /open-door │           └───────┬──────┘     
└─────────────────┬┘                   │            
                  │            ┌──────────────┐     
┌──────────────┐  │       ┌────│ RPI/w godoor │  ...
│ Web Open door│  │       │    └──────────────┘     
└─────────┬────┘  │       │Swipe   ▲                
          │       │       │Event   │ Open event     
          ▼       ▼       ▼        │ Card list      
    ┌───────────────┐    ┌─────────┴─────┐          
    │ inventory-app │    │ doorboy-proxy │          
    │ doorboy.py    │    └───────────────┘          
    └───────────────┘          ▲                    
              │                │                    
              │                │                    
              │                ▼                    
              │           ┌───────────┐             
              └──────────►│  MongoDB  │             
                          └───────────┘             

https://asciiflow.com/ diagram