Desktop kiosk browser and administration backend developed for controlled access to approved municipal web services.
The project is split into two layers:
- Frontend: Electron-based kiosk application
- Backend: PHP + MySQL administration/API layer
silivribel-kiosk/
├── frontend/
│ ├── index.html
│ ├── assets/
│ ├── package.json
│ └── package-lock.json
└── backend/
├── admin.php
├── api.php
├── db.php
├── config.example.php
└── silivri_kiosk.sql
The desktop client uses Electron and is configured for Windows and Linux packaging.
Available scripts:
npm start
npm run build:win
npm run build:linuxBuild targets include:
- Windows NSIS installer
- Linux AppImage
The backend provides a management interface and JSON API for the kiosk client.
| Action | Purpose |
|---|---|
?action=urls |
Returns active, approved service URLs in configured display order |
?action=log |
Records a kiosk URL access event |
?action=settings |
Returns renderer-safe kiosk settings |
The API uses prepared database statements, restricts supported HTTP behavior, applies basic security headers and limits CORS to configured origins.
The included SQL schema supports core kiosk data such as:
- allowed service URLs
- display ordering and service metadata
- access logs
- kiosk settings
- Import
backend/silivri_kiosk.sqlinto MySQL/MariaDB. - Copy
backend/config.example.phpto your local configuration file and provide environment-specific database values. - Serve the backend through PHP.
- Install frontend dependencies:
cd frontend
npm install
npm start- Configure the kiosk frontend/backend endpoint and approved origins for your deployment environment.
- Keep environment-specific credentials out of source control.
- Review the CORS allowlist before deployment.
- Expose only required backend routes.
- Use HTTPS for production traffic.
- Apply least-privilege database permissions.
- Treat access logs as operational data and protect them accordingly.
The system is intended to provide a controlled kiosk experience for accessing approved municipal services while keeping service configuration and usage records centrally manageable.
The repository currently contains licensing metadata in more than one location. Review the root LICENSE and application package metadata before reuse or redistribution and ensure they reflect the intended ownership and licensing policy.
Developed in the context of T.C. Silivri Belediyesi Bilgi İşlem Müdürlüğü operations.