Kitasan Doorlock, By. Ragil Amirzaky, Andrean S., Gideon M. C. S., for Universitas Tanjungpura/INF
50K+
Deskripsi singkat
subs.php (MQTT → MySQL) via supervisord.Tags
1.0 — rilis stabil awallatest — alias untuk build terbaruPorts
80 (Apache). Default mapping yang direkomendasikan: host 8080:80.Environment variables (lengkap, with defaults)
KITASAN_APP_UNAME : username akses web UI — default default_user (Dockerfile) / admin (index.php fallback)KITASAN_APP_PW : password akses web UI — default default_pass (Dockerfile) / admin1234 (index.php fallback)MQTT_BROKER : alamat broker MQTT — default mqtt.tenzly.codesMQTT_PORT : port broker MQTT — default 13792 (project) / 1379 (Dockerfile default variable)MQTT_USER : username MQTT — default KitasanMQTT_PASS : password MQTT — default Kitasan1234MQTT_TOPIC : topik MQTT yang disubscribe — default Kitasan/PHPDB_HOST : hostname MySQL — default mysql-db (connecttoDB.php)DB_PORT : port MySQL — default 3306DB_NAME : nama database — default appdbDB_USER : DB user — default appuserDB_PASSWORD : DB password — default empty stringCatatan: beberapa komponen (ESP-Connector vendor library) juga membaca .env via vlucas/phpdotenv.
Volumes
mqtt.pem) ke path container /shared/cert/mqtt.pem (read-only) — ini dipakai oleh MQTT client (subs.php) untuk TLS.connecttoDB.php, aplikasi juga mencari:
/shared/cert/ca.pem/shared/cert/client-cert.pem/shared/cert/client-key.pem
Dalam skenario default (MySQL berjalan sebagai container terpisah di jaringan yang sama), Anda boleh tidak memasang file-file DB SSL tersebut; jika DB Anda mengharuskan SSL, mount folder berisi file-file itu ke /shared/cert.Build args & langkah build (penjelasan menyeluruh)
UID (default -NONE-) — user id untuk pemilik file di image (disesuaikan ke www-data/host jika perlu)GID (default -NONE-) — group id yang sama tujuanphp:8.3-apache.mysqli, pdo, pdo_mysql (garansi koneksi MySQL melalui PDO).rewrite, headers.supervisor diinstall untuk menjalankan dua process: apache2-foreground dan php /var/www/html/public/WEB/ESP-Connector/subs.php.src/public/WEB/ESP-Connector/vendor). Jika Anda ingin membangun dari sumber tanpa vendor, jalankan composer install di folder src/public/WEB/ESP-Connector sebelum build, atau tambahkan langkah composer install ke Dockerfile.Contoh build
docker build --build-arg UID=33 --build-arg GID=33 -t /tenzly/kitasan-doorlock:1.0 -f Dockerfile.php .
Contoh docker run (minimal, hanya mount mqtt.pem)
docker run -d \
--name kitasan-doorlock \
-p 8080:80 \
-v /path/on/host/mqtt.pem:/shared/cert/mqtt.pem:ro \
--env-file .env \
/tenzly/kitasan-doorlock:1.0
Contoh .env (lihat file .env.example di repo)
Docker Compose contoh (ketika DB dikelola terpisah dan Anda hanya perlu mount mqtt.pem):
version: '3.8'
services:
kitasan-php:
image: /tenzly/kitasan-doorlock:1.0
container_name: kitasan-doorlock
ports:
- "8080:80"
env_file:
- .env
volumes:
- ./src:/var/www/html:ro
- ./share-folder/cert/mqtt.pem:/shared/cert/mqtt.pem:ro
restart: unless-stopped
networks:
- app-network
networks:
app-network:
driver: bridge
Jika Anda menjalankan MySQL sebagai service terpisah di docker-compose, Anda bisa gunakan docker-compose.yml yang ada di repo (file root) — file tersebut saat ini memasang seluruh ./share-folder ke /shared agar DB dapat memakai sertifikat TLS (jika diperlukan).
Security & best practices
.env dengan placeholder di repo, dan simpan rahasia di secret manager / environment variable pada CI/CD.UID/GID saat build agar file yang dibuat oleh container bisa ditangani oleh user host dengan benar.Cek Status dengan:
docker compose ps # semua harus "Up"
docker logs -f Kitasan-Doorlock
Maintainer
Content type
Image
Digest
sha256:5e0814e14…
Size
180.9 MB
Last updated
9 months ago
docker pull tenzly/kitasan-doorlock