ajout des recettes et fichiers de configuration du meta

This commit is contained in:
2022-12-14 19:45:04 +01:00
commit 25a3f8922d
47 changed files with 20703 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
#PACKAGE_CLASSES ?= "package_deb"
DISTRO_VERSION = "1.0.0"
DISTRO_NAME = "KineIntercom Distro"
SDK_VENDOR = "-benserv"
SDK_VERSION = "${DISTRO_VERSION}"
MAINTENER = "vincent.benoit@benserv.fr"
# rpi specific
IMAGE_FSTYPES = "tar.bz2 ext4 ext4.xz rpi-sdimg"
SDIMG_ROOTFS_TYPE = "ext4.xz"
DISABLE_OVERSCAN = "1"
BOOT_DELAY = "0"
BOOT_DELAY_MS = "0"
DISABLE_RPI_BOOT_LOGO = "1"
DISABLE_SPLASH = "1"
ENABLE_I2C = "1"
ENABLE_UART = "1"
KERNEL_MODULE_AUTOLOAD:rpi += "i2c-dev i2c-bcm2708 rtc-ds1307"
RPI_EXTRA_CONFIG = ' \n \
# Yocto Extra config \n \
dtoverlay=i2c-rtc,ds3231 \n \
'
# Use systemd
DISTRO_FEATURES += " systemd usbhost ipv4 pam"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL_RUNTIME_login_manager = "shadow-base"
VIRTUAL_RUNTIME_syslog = "rsyslog"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
IMAGE_FEATURES += " package-management ssh-server-openssh"
MACHINE_FEATURES = "rtc"
#KERNEL_MODULE_AUTOLOAD += " i2c-dev"
PREFERRED_VERSION_cargo = "1.64.0"
PREFERRED_VERSION_libstd-rs = "1.64.0"
PREFERRED_VERSION_rust = "1.64.0"
PREFERRED_VERSION_rust-cross = "1.64.0"
PREFERRED_VERSION_rust-llvm = "1.64.0"
PREFERRED_VERSION_rust-native = "1.64.0"
PREFERRED_VERSION_rust-source = "1.64.0"
PREFERRED_VERSION_rust-snapshot = "1.64.0"
INHERIT += "rm_work"
RM_WORK_EXCLUDE += "configurateur-frontend"
# Use extrausers
INHERIT += "extrausers"
EXTRA_USERS_PARAMS += "usermod -p '\$6\$kineintercom\$PL/XDMsCl7L2Gpb.2WcE9ad8RpoLp9t5jIIs2YGqeCii/UQmRHfJTOIQl3Axx/MmpJnwcetOtJsNSxUqHSx411' root;"

14
conf/layer.conf Normal file
View File

@@ -0,0 +1,14 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "kineintercom"
BBFILE_PATTERN_kineintercom := "^${LAYERDIR}/"
BBFILE_PRIORITY_kineintercom = "10"
LAYERDEPENDS_kineintercom = "raspberrypi"
LAYERSERIES_COMPAT_kineintercom = "kirkstone"

View File

@@ -0,0 +1,21 @@
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"
BBPATH = "${TOPDIR}"
BSPPATH = "${TOPDIR}/.."
BBFILES ?= ""
BBLAYERS ?= " \
${BSPPATH}/poky/meta \
${BSPPATH}/poky/meta-poky \
${BSPPATH}/poky/meta-yocto-bsp \
${BSPPATH}/meta-openembedded/meta-oe \
${BSPPATH}/meta-openembedded/meta-python \
${BSPPATH}/meta-openembedded/meta-networking \
${BSPPATH}/meta-openembedded/meta-webserver \
${BSPPATH}/meta-openembedded/meta-filesystems \
${BSPPATH}/meta-rust \
${BSPPATH}/meta-raspberrypi \
${BSPPATH}/meta-kineintercom \
"

View File

@@ -0,0 +1,63 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
HOMEPAGE = "https://git.nas.benserv.fr/vincent/Kine-backend.git"
SUMMARY = "KineIntercom Configurateur Backend"
MAINTAINER = "Vincent BENOIT <vincent.benoit@benserv.fr>"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7dda4e90ded66ab88b86f76169f28663"
LICENSE = "MIT"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI = "git://git.nas.benserv.fr/vincent/Kine-backend.git;protocol=https;branch=master"
SRC_URI[sha256sum] = ""
SRCREV = "27387991e39f4614510af3bf8a69e47f6c54a568"
PV = "1.0.0"
S = "${WORKDIR}/git"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native kine-users"
RDEPENDS:${PN} = " \
${PYTHON_PN}-attrs \
${PYTHON_PN}-click \
${PYTHON_PN}-flask \
${PYTHON_PN}-flask-cors \
${PYTHON_PN}-flask-api \
${PYTHON_PN}-flask-jwt-extended \
${PYTHON_PN}-jsonschema \
${PYTHON_PN}-importlib-metadata \
${PYTHON_PN}-importlib-resources \
${PYTHON_PN}-markupsafe \
${PYTHON_PN}-itsdangerous \
${PYTHON_PN}-jinja2 \
${PYTHON_PN}-psutil \
${PYTHON_PN}-pyjwt \
${PYTHON_PN}-six \
${PYTHON_PN}-waitress \
${PYTHON_PN}-werkzeug \
${PYTHON_PN}-zipp \
${PYTHON_PN}-typing-extensions \
${PYTHON_PN}-pkgutil-resolve-name \
kine-users \
"
inherit setuptools3 systemd
SRC_URI += " file://configurateur_backend.service \
file://run_prod.py \
"
FILES:${PN} += " /opt/configurateur/bin/run_prod.py \
${systemd_unitdir}/system/configurateur_backend.service"
SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_SERVICE:${PN} = "configurateur_backend.service"
do_install:append() {
install -d ${D}/opt/configurateur/bin
install -m 0644 ${WORKDIR}/run_prod.py ${D}/opt/configurateur/bin
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/configurateur_backend.service ${D}${systemd_unitdir}/system/
}

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Démarrage du Backend du Configurateur
StartLimitIntervalSec=300
StartLimitBurst=5
Wants=kineintercom.service
[Service]
Type=simple
User=pi
Group=pi
ExecStart=/usr/bin/python3 /opt/configurateur/bin/run_prod.py
Restart=on-failure
RestartSec=15s
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,13 @@
# -*- encoding: utf-8 -*-
# @author : vincent.benoit@benserv.fr
# @brief : KineIntercom Backend
from ConfBack import app
from ConfBack.config import ProdConfig
from waitress import serve
print("Launch Flask KineIntercom Backend ...")
ret, application = app.create_app(config=ProdConfig)
if ret:
serve(application, host="127.0.0.1", port=6000)

View File

@@ -0,0 +1,32 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
HOMEPAGE = "https://git.nas.benserv.fr/vincent/Kine-frontend.git"
SUMMARY = "KineIntercom Configurateur Frontend"
MAINTAINER = "Vincent BENOIT <vincent.benoit@benserv.fr>"
#LIC_FILES_CHKSUM = "file://LICENSE;md5=7dda4e90ded66ab88b86f76169f28663"
LICENSE = "CLOSED"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI = " \
git://git.nas.benserv.fr/vincent/Kine-frontend.git;protocol=https;branch=master \
"
SRCREV = "cb0aa4b756b312ec7409a056aeb4e3b928fb9cf0"
PV = "1.0.0"
S = "${WORKDIR}/git"
RDEPENDS:${PN} = " \
apache2 \
"
FILES:${PN} = " \
/var/www/app-configurateur \
"
do_install() {
install -d ${D}/var/www/app-configurateur
cp -a ${WORKDIR}/git/prod/app-configurateur/* ${D}/var/www/app-configurateur
chown -R root:root ${D}/var/www/app-configurateur
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,406 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "https://git.nas.benserv.fr/vincent/Kine-backend/src/branch/master/db.json",
"type": "object",
"title": "KineIntercom database",
"description": "This document records the parameters of KineIntercom process",
"required": [
"CODE_PIN",
"DTMF_CODE",
"DTMF_DURATION",
"HORAIRES",
"INFOS",
"NUM_AUTORISE",
"OPERATION",
"PIN_ACTIF",
"TONE_DURATION",
"utilisateur"
],
"properties": {
"CODE_PIN": {
"type": "string",
"title": "Le code pin de la carte SIM",
"examples": [
"1234"
]
},
"DTMF_CODE": {
"type": "string",
"title": "Le code DTMF a envoyer par le module GSM",
"examples": [
"*"
]
},
"DTMF_DURATION": {
"type": "integer",
"title": "La duree du code DTMF a envoyer par le module GSM",
"examples": [
10
]
},
"HORAIRES": {
"type": "object",
"title": "Les horaires d'ouverture et de fermeture du module GSM",
"required": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
],
"properties": {
"Monday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Vendredi",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
},
"Tuesday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Lundi",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
},
"Wednesday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Samedi",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
},
"Thursday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Dimanche",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
},
"Friday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Jeudi",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
},
"Saturday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Mardi",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
},
"Sunday": {
"type": "array",
"title": "Les horaires pour le jour de la semaine: Mercredi",
"items": {
"type": "object",
"title": "A Schema",
"required": [
"name",
"state"
],
"properties": {
"name": {
"type": "string",
"title": "Les tranches horaires par pas de 1/2 heure"
},
"state": {
"type": "integer",
"title": "L'etat d'ouverture (1) ou fermeture(0) du module GSM",
"examples": [
0,
1
]
}
}
}
}
}
},
"INFOS": {
"type": "object",
"title": "Les infos du module GSM",
"required": [
"control",
"manufacturer"
],
"properties": {
"control": {
"type": "object",
"title": "The control Schema",
"required": [
"call_ready",
"operator",
"service_provider",
"signal_dbm",
"signal_qos",
"sim_inserted"
],
"properties": {
"call_ready": {
"type": "boolean",
"default": false,
"title": "The call_ready Schema",
"examples": [
true,
false
]
},
"operator": {
"type": "string",
"default": "",
"title": "The operator Schema",
"examples": [
"SFR"
]
},
"service_provider": {
"type": "string",
"default": "",
"title": "The service_provider Schema",
"examples": [
"La poste mobile"
]
},
"signal_dbm": {
"type": "string",
"default": "",
"title": "The signal_dbm Schema",
"examples": [
"-75"
]
},
"signal_qos": {
"type": "string",
"default": "",
"title": "The signal_qos Schema",
"examples": [
"excellent"
]
},
"sim_inserted": {
"type": "boolean",
"default": false,
"title": "The sim_inserted Schema",
"examples": [
true,
false
]
}
}
},
"manufacturer": {
"type": "object",
"title": "The manufacturer Schema",
"required": [
"hardware_rev",
"identification",
"model",
"serial_number"
],
"properties": {
"hardware_rev": {
"type": "string",
"title": "The hardware_rev Schema",
"examples": [
"1418B02SIM868M32_BT_EAT"
]
},
"identification": {
"type": "string",
"title": "The identification Schema",
"examples": [
"SIMCOM_Ltd"
]
},
"model": {
"type": "string",
"title": "The model Schema",
"examples": [
"SIMCOM_SIM868"
]
},
"serial_number": {
"type": "string",
"title": "The serial_number Schema",
"examples": [
"864866057705260"
]
}
}
}
}
},
"NUM_AUTORISE": {
"type": "string",
"title": "The NUM_AUTORISE Schema",
"examples": [
"670100036"
]
},
"OPERATION": {
"type": "string",
"title": "The OPERATION Schema",
"examples": [
"Horaires"
]
},
"PIN_ACTIF": {
"type": "boolean",
"title": "The PIN_ACTIF Schema",
"examples": [
true,
false
]
},
"TONE_DURATION": {
"type": "integer",
"title": "The TONE_DURATION Schema",
"examples": [
2
]
},
"utilisateur": {
"type": "object",
"title": "L'utilisateur du configurateur",
"required": [
"id",
"password"
],
"properties": {
"id": {
"type": "string",
"title": "The id Schema",
"examples": [
"admin"
]
},
"password": {
"type": "string",
"title": "The password Schema",
"examples": [
"9ac564e9a29c952a3ddeffd8635adb0c252dbd1d58f3efde265e028f7f808aa9"
]
}
}
}
}
}

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Démarrage du processus KineIntercom
StartLimitIntervalSec=300
StartLimitBurst=5
After=getty.target
[Service]
Type=simple
User=pi
Group=pi
ExecStart=/usr/bin/python3 /usr/local/lib/python3.9/dist-packages/kineintercom/intercom.py
Restart=on-failure
RestartSec=15s
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,44 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
HOMEPAGE = "https://git.nas.benserv.fr/vincent/KineIntercom.git"
SUMMARY = "KineIntercom Process"
MAINTAINER = "Vincent BENOIT <vincent.benoit@benserv.fr>"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7dda4e90ded66ab88b86f76169f28663"
LICENSE = "MIT"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI = "git://git.nas.benserv.fr/vincent/KineIntercom.git;protocol=https;branch=master"
SRC_URI[sha256sum] = "573c6bf06324577d4007c9167eeaca7825927c5a396534ae1d86905db53e0386"
SRCREV = "fd79a53348416bf844e412eb6442773661b35aa0"
PV = "1.0.0"
S = "${WORKDIR}/git"
DEPENDS = "python3-setuptools-scm-native kine-users"
RDEPENDS:${PN} = "python3-apscheduler python3-jsonschema python3-pyserial rpi-gpio kine-users"
inherit setuptools3 systemd
SRC_URI += " file://database_origin.json \
file://db.json.schema \
file://kineintercom.service"
FILES:${PN} += " ${datadir}/kineintercom/database_origin.json \
${datadir}/kineintercom/db.json.schema \
${systemd_unitdir}/system/kineintercom.service"
SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_SERVICE:${PN} = "kineintercom.service"
do_install:append() {
install -d ${D}${datadir}/kineintercom
install -m 0644 ${WORKDIR}/database_origin.json ${D}${datadir}/kineintercom/
install -m 0644 ${WORKDIR}/db.json.schema ${D}${datadir}/kineintercom/
install -d ${D}${sysconfdir}/kineintercom
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/kineintercom.service ${D}${systemd_unitdir}/system/
}

View File

@@ -0,0 +1,9 @@
[Unit]
Description=Loads FR keymap if available
ConditionPathExists=/usr/share/keymaps/i386/azerty/fr-latin9.map.gz
[Service]
ExecStart=/bin/sh -c '/usr/bin/loadkeys fr'
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,24 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "KineIntercom Services"
MAINTAINER = "Vincent BENOIT <vincent.benoit@benserv.fr>"
LICENSE = "CLOSED"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI = "file://loadkeysfr.service"
S = "${WORKDIR}"
inherit systemd
SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_SERVICE_${PN} = "loadkeysfr.service"
FILES:${PN} = "${systemd_unitdir}/system/loadkeysfr.service"
do_install:append() {
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/loadkeysfr.service ${D}${systemd_unitdir}/system/
}

View File

@@ -0,0 +1,23 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "KineIntercom Users"
MAINTAINER = "Vincent BENOIT <vincent.benoit@benserv.fr>"
LICENSE = "CLOSED"
DEPENDS_${PN} = "base-files"
S = "${WORKDIR}"
inherit useradd
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM:${PN} = "--system sudo; --system adm; --system crontab;"
# To change the password use something like this : "mkpasswd -m sha-512 p@ssw0rd -s 'seed'"
# mkpasswd from 'whois' debian package
USERADD_PARAM:${PN} = "--home-dir /home/pi --groups 'sudo,adm' --shell /bin/bash --password '\$6\$kineintercom\$GG8czkna4jULxnX/UcaaAekfnn1wJry7M/7O0zO89jDZ7lwE7Thv2UEGgBX4z8A6gIaARFyzESmQaFB3lLKns/' pi;"
# Specify whether to produce an output package even if it is empty
ALLOW_EMPTY:${PN} = "1"

View File

@@ -0,0 +1,9 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://dhcpcd.conf"
do_install:append() {
install -m 0644 ${WORKDIR}/dhcpcd.conf ${D}${sysconfdir}
}

View File

@@ -0,0 +1,42 @@
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.
# Inform the DHCP server of our hostname for DDNS.
hostname
# Use the hardware address of the interface for the Client ID.
clientid
# Persist interface configuration when dhcpcd exits.
persistent
# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit
# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu
# A ServerID is required by RFC2131.
require dhcp_server_identifier
# Generate SLAAC address using the Hardware Address of the interface
#slaac hwaddr
# OR generate Stable Private IPv6 Addresses based from the DUID
slaac private
# static IP configuration:
interface eth0
static ip_address=192.168.10.10/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1
interface wlan0
static ip_address=10.1.1.10/24
static routers=10.1.1.1
static domain_name_servers=10.1.1.1
nohook wpa_supplicant

View File

@@ -0,0 +1,14 @@
interface=wlan0
driver=nl80211
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=Kine_hotspot
wpa_passphrase=kineintercom

View File

@@ -0,0 +1,12 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://hostapd.conf"
inherit systemd
SYSTEMD_AUTO_ENABLE = "enable"
do_install:append() {
install -m 0644 ${WORKDIR}/hostapd.conf ${D}${sysconfdir}/
}

View File

@@ -0,0 +1,13 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://hostname \
file://hosts \
file://fstab"
do_install:append() {
install -m 0644 ${WORKDIR}/hostname ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/fstab ${D}${sysconfdir}
}

View File

@@ -0,0 +1,8 @@
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults,flush 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
devpts /dev/pts devpts mode=0620,ptmxmode=0666,gid=5 0 0
tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
#tmpfs /var/volatile tmpfs defaults 0 0
#/dev/root / auto defaults 1 1

View File

@@ -0,0 +1 @@
kineintercom

View File

@@ -0,0 +1,6 @@
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 kineintercom

View File

@@ -0,0 +1,4 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "KineIntercom Image"
include kineintercom-image.inc

View File

@@ -0,0 +1,40 @@
SUMMARY = "KineIntercom Image"
PV = "1.0.0"
inherit core-image
EXTRA_IMAGE_FEATURES = ""
GLIBC_GENERATE_LOCALES = "en_US.UTF-8 fr_FR.UTF-8"
IMAGE_LINGUAS = "fr-fr"
PROCESS_INSTALL = " \
kine-users \
kine-services \
intercom \
configurateur-backend \
configurateur-frontend \
"
PYTHON_INSTALL = " \
python3-apscheduler \
python3-pyserial \
python3-jsonschema \
rpi-gpio \
"
IMAGE_INSTALL += " \
sudo \
logrotate \
dnsmasq \
hostapd \
dhcpcd \
rsyslog \
iptables \
procps \
kbd-keymaps \
vim \
minicom \
i2c-tools \
${PROCESS_INSTALL} \
"

View File

@@ -0,0 +1,9 @@
[Match]
Name=eth0
[Network]
Address=192.168.10.10/24
Gateway=192.168.10.1
[Link]
ActivationPolicy=always-up

View File

@@ -0,0 +1,16 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += " \
file://eth0.network \
"
FILES:${PN} += " \
${sysconfdir}/systemd/network/eth0.network \
"
do_install:append() {
install -d ${D}${sysconfdir}/systemd/network
install -m 0644 ${WORKDIR}/eth0.network ${D}${sysconfdir}/systemd/network
}

View File

@@ -0,0 +1,17 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f0e423eea5c91e7aa21bdb70184b3e53"
LICENSE = "MIT"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} = " \
python3-six \
python3-pytz \
python3-tzlocal \
"
inherit pypi setuptools3
PYPI_PACKAGE = "APScheduler"
SRC_URI[sha256sum] = "65e6574b6395498d371d045f2a8a7e4f7d50c6ad21ef7313d15b1c7cf20df1e3"

View File

@@ -0,0 +1,15 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7700a874b500cc9168a0334060b17e3d"
LICENSE = "BSD-2-Clause"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} = " \
python3-flask \
"
inherit pypi setuptools3
PYPI_PACKAGE = "Flask-API"
SRC_URI[sha256sum] = "331889500433b0a5e71ae7910a00ee577c8999baba03ca685b3558ee93031cce"

View File

@@ -0,0 +1,16 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=118fecaa576ab51c1520f95e98db61ce"
LICENSE = "MIT"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} = " \
python3-six \
python3-flask \
"
inherit pypi setuptools3
PYPI_PACKAGE = "Flask-Cors"
SRC_URI[sha256sum] = "b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de"

View File

@@ -0,0 +1,16 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=9166295d7c482b9440bbb2b5c0fa43ac"
LICENSE = "MIT"
DEPENDS += "python3-setuptools-scm-native"
RDEPENDS:${PN} = " \
python3-flask \
python3-pyjwt \
"
inherit pypi setuptools3
PYPI_PACKAGE = "Flask-JWT-Extended"
SRC_URI[sha256sum] = "62b521d75494c290a646ae8acc77123721e4364790f1e64af0038d823961fbf0"

View File

@@ -0,0 +1,26 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
SUMMARY = "A microframework based on Werkzeug, Jinja2 and good intentions"
DESCRIPTION = "\
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good \
intentions. And before you ask: Its BSD licensed!"
HOMEPAGE = "https://github.com/mitsuhiko/flask/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
SRC_URI[sha256sum] = "642c450d19c4ad482f96729bd2a8f6d32554aa1e231f4f6b4e7e5264b16cca2b"
PYPI_PACKAGE = "Flask"
inherit pypi setuptools3
CLEANBROKEN = "1"
RDEPENDS:${PN} = " \
${PYTHON_PN}-werkzeug \
${PYTHON_PN}-jinja2 \
${PYTHON_PN}-itsdangerous \
${PYTHON_PN}-click \
${PYTHON_PN}-profile \
"

View File

@@ -0,0 +1,15 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
LICENSE = "Apache-2.0"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
RDEPENDS:${PN} = " \
${PYTHON_PN}-zipp \
"
inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "importlib_metadata"
SRC_URI[sha256sum] = "da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab"

View File

@@ -0,0 +1,15 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
LICENSE = "Apache-2.0"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
RDEPENDS:${PN} = " \
${PYTHON_PN}-zipp \
"
inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "importlib_resources"
SRC_URI[sha256sum] = "c01b1b94210d9849f286b86bb51bcea7cd56dde0600d8db721d7b81330711668"

View File

@@ -0,0 +1,50 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SUMMARY = "An implementation of JSON Schema validation for Python"
HOMEPAGE = "https://github.com/Julian/jsonschema"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8 \
file://json/LICENSE;md5=9d4de43111d33570c8fe49b4cb0e01af"
SRC_URI[sha256sum] = "5bfcf2bca16a087ade17e02b282d34af7ccd749ef76241e7f9bd7c0cb8a9424d"
inherit pypi python_setuptools_build_meta
DEPENDS += "${PYTHON_PN}-vcversioner-native ${PYTHON_PN}-setuptools-scm-native"
#PACKAGECONFIG ??= "format"
#PACKAGECONFIG[format] = ",,,\
# ${PYTHON_PN}-idna \
# ${PYTHON_PN}-jsonpointer \
# ${PYTHON_PN}-webcolors \
# ${PYTHON_PN}-rfc3987 \
# ${PYTHON_PN}-strict-rfc3339 \
#"
#PACKAGECONFIG[nongpl] = ",,,\
# ${PYTHON_PN}-idna \
# ${PYTHON_PN}-jsonpointer \
# ${PYTHON_PN}-webcolors \
# ${PYTHON_PN}-rfc3986-validator \
# ${PYTHON_PN}-rfc3339-validator \
#"
RDEPENDS:${PN} += " \
${PYTHON_PN}-attrs \
${PYTHON_PN}-core \
${PYTHON_PN}-datetime \
${PYTHON_PN}-importlib-metadata \
${PYTHON_PN}-io \
${PYTHON_PN}-json \
${PYTHON_PN}-netclient \
${PYTHON_PN}-numbers \
${PYTHON_PN}-pkgutil \
${PYTHON_PN}-pprint \
${PYTHON_PN}-pyrsistent \
${PYTHON_PN}-shell \
${PYTHON_PN}-six \
${PYTHON_PN}-unittest \
${PYTHON_PN}-setuptools-scm \
${PYTHON_PN}-zipp \
"
#BBCLASSEXTEND = "native nativesdk"

View File

@@ -0,0 +1,12 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=649013219b4c73656698099c4d885d23"
LICENSE = "MIT"
DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
inherit pypi python_setuptools_build_meta
PYPI_PACKAGE = "pkgutil_resolve_name"
SRC_URI[sha256sum] = "357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"

View File

@@ -0,0 +1,50 @@
# see "man logrotate" for details
# system-specific logs may also be configured here.
/var/log/syslog {
# Les logs sont compréssé avant rotation
compress
# compression au tour d'après
delaycompress
# garder 20 archives
rotate 20
# Fréquence de rotation hebdomadaire
daily
# Si la taille est supérieure à 20 Mo, déclencher la rotation
maxsize 20M
# Toutes les archives sont stockées dans /var/log
olddir /var/log
# Si le fichier est manquant, ne pas générer d'erreur et continuer
missingok
# On écrit la date dans le nom du fichier
dateext
dateformat -%Y%m%d_%H%M%S
postrotate
systemctl restart rsyslog > /dev/null
endscript
}
/var/log/debug
/var/log/kern.log
/var/log/daemon.log
/var/log/dpkg.log
/var/log/user.log
/var/log/messages {
# Les logs sont compréssé avant rotation
compress
# compression au tour d'après
delaycompress
# garder 10 archives
rotate 10
# Fréquence de rotation mensuelle
daily
# Si la taille est supérieure à 20 Mo, déclencher la rotation
maxsize 20M
# Toutes les archives sont stockées dans /var/log
olddir /var/log
# Si le fichier est manquant, ne pas générer d'erreur et continuer
missingok
# On écrit la date dans le nom du fichier
dateext
dateformat -%Y%m%d_%H%M%S
}

View File

@@ -0,0 +1,9 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://logrotate.conf"
do_install:append() {
install -m 0644 ${WORKDIR}/logrotate.conf ${D}${sysconfdir}
}

View File

@@ -0,0 +1,67 @@
# This configuration taken from procps v3.3.15
# Commented out kernel/pid_max=10000 line
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See sysctl.conf (5) for information.
# you can have the CD-ROM close when you use it, and open
# when you are done.
#dev.cdrom.autoeject = 1
#dev.cdrom.autoclose = 1
# protection from the SYN flood attack
net/ipv4/tcp_syncookies=1
# see the evil packets in your log files
net/ipv4/conf/all/log_martians=1
# makes you vulnerable or not :-)
net/ipv4/conf/all/accept_redirects=0
net/ipv4/conf/all/accept_source_route=0
net/ipv4/icmp_echo_ignore_broadcasts=1
# needed for routing, including masquerading or NAT
net/ipv4/ip_forward=1
# sets the port range used for outgoing connections
#net.ipv4.ip_local_port_range = 32768 61000
# Broken routers and obsolete firewalls will corrupt the window scaling
# and ECN. Set these values to 0 to disable window scaling and ECN.
# This may, rarely, cause some performance loss when running high-speed
# TCP/IP over huge distances or running TCP/IP over connections with high
# packet loss and modern routers. This sure beats dropped connections.
#net.ipv4.tcp_ecn = 0
# Swapping too much or not enough? Disks spinning up when you'd
# rather they didn't? Tweak these.
#vm.vfs_cache_pressure = 100
#vm.laptop_mode = 0
#vm.swappiness = 60
#kernel.printk_ratelimit_burst = 10
#kernel.printk_ratelimit = 5
#kernel.panic_on_oops = 0
# Reboot 600 seconds after a panic
#kernel.panic = 600
# enable SysRq key (note: console security issues)
#kernel.sysrq = 1
# Change name of core file to start with the command name
# so you get things like: emacs.core mozilla-bin.core X.core
#kernel.core_pattern = %e.core
# NIS/YP domain (not always equal to DNS domain)
#kernel.domainname = example.com
#kernel.hostname = darkstar
# This limits PID values to 4 digits, which allows tools like ps
# to save screen space.
#kernel/pid_max=10000
# Protects against creating or following links under certain conditions
# See https://www.kernel.org/doc/Documentation/sysctl/fs.txt
#fs.protected_hardlinks = 1
#fs.protected_symlinks = 1

View File

@@ -0,0 +1,12 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://ip-forward.conf"
FILES:{PN} += "${sysconfdir}/sysctl.d/ip-forward.conf"
do_install:append() {
install -d ${D}${sysconfdir}/sysctl.d/
install -m 0644 ${WORKDIR}/ip-forward.conf ${D}${sysconfdir}/sysctl.d/
}

View File

@@ -0,0 +1,75 @@
# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#################
#### MODULES ####
#################
module(load="imuxsock") # provides support for local system logging
module(load="imklog") # provides kernel logging support
#module(load="immark") # provides --MARK-- message capability
# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")
# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")
###########################
#### GLOBAL DIRECTIVES ####
###########################
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
###############
#### RULES ####
###############
#
# First some standard log files. Log by facility.
#
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
user.* -/var/log/user.log
#
# Some "catch-all" log files.
#
*.=debug;\
auth,authpriv.none;\
mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail.none -/var/log/messages

View File

@@ -0,0 +1,9 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://rsyslog.conf"
do_install:append() {
install -m 0644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}
}

View File

@@ -0,0 +1,19 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += " \
file://httpd.conf \
file://010-configurateur.conf \
"
FILES:${PN} += " \
${sysconfdir}/apache2/httpd.conf \
${sysconfdir}/apache2/sites-enabled/010-configurateur.conf \
"
do_install:append() {
install -m 0644 ${WORKDIR}/httpd.conf ${D}${sysconfdir}/apache2
install -d ${D}${sysconfdir}/apache2/sites-enabled
install -m 0644 ${WORKDIR}/010-configurateur.conf ${D}${sysconfdir}/apache2/sites-enabled
}

View File

@@ -0,0 +1,28 @@
<VirtualHost *:80>
ServerAdmin vincent.benoit@benserv.fr
DocumentRoot /var/www/app-configurateur
<Directory /var/www/app-configurateur/*>
Order Allow,Deny
Allow from all
AllowOverride none
Require all granted
Header always set Access-Control-Allow-Origin "*"
Header always add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header always add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header always add Access-Control-Expose-Headers "Content-Security-Policy, Location"
Header always add Access-Control-Max-Age "3600"
</Directory>
<Location /api>
ProxyPreserveHost On
ProxyPass http://127.0.0.1:6000/api
ProxyPassReverse http://127.0.0.1:6000/api
</Location>
LogLevel info
ErrorLog /var/log/apache2/error_log
CustomLog /var/log/apache2/access_log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

View File

@@ -0,0 +1,307 @@
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
# will be interpreted as '/logs/access_log'.
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule mpm_worker_module /usr/libexec/apache2/modules/mod_mpm_worker.so
LoadModule authn_file_module /usr/libexec/apache2/modules/mod_authn_file.so
LoadModule authn_core_module /usr/libexec/apache2/modules/mod_authn_core.so
LoadModule authz_host_module /usr/libexec/apache2/modules/mod_authz_host.so
LoadModule authz_groupfile_module /usr/libexec/apache2/modules/mod_authz_groupfile.so
LoadModule authz_user_module /usr/libexec/apache2/modules/mod_authz_user.so
LoadModule authz_core_module /usr/libexec/apache2/modules/mod_authz_core.so
LoadModule access_compat_module /usr/libexec/apache2/modules/mod_access_compat.so
LoadModule auth_basic_module /usr/libexec/apache2/modules/mod_auth_basic.so
LoadModule reqtimeout_module /usr/libexec/apache2/modules/mod_reqtimeout.so
LoadModule filter_module /usr/libexec/apache2/modules/mod_filter.so
LoadModule mime_module /usr/libexec/apache2/modules/mod_mime.so
LoadModule log_config_module /usr/libexec/apache2/modules/mod_log_config.so
LoadModule env_module /usr/libexec/apache2/modules/mod_env.so
LoadModule headers_module /usr/libexec/apache2/modules/mod_headers.so
LoadModule setenvif_module /usr/libexec/apache2/modules/mod_setenvif.so
LoadModule version_module /usr/libexec/apache2/modules/mod_version.so
LoadModule proxy_module /usr/libexec/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/libexec/apache2/modules/mod_proxy_http.so
LoadModule unixd_module /usr/libexec/apache2/modules/mod_unixd.so
LoadModule status_module /usr/libexec/apache2/modules/mod_status.so
LoadModule autoindex_module /usr/libexec/apache2/modules/mod_autoindex.so
LoadModule dir_module /usr/libexec/apache2/modules/mod_dir.so
LoadModule alias_module /usr/libexec/apache2/modules/mod_alias.so
LoadModule rewrite_module /usr/libexec/apache2/modules/mod_rewrite.so
<IfModule unixd_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon
</IfModule>
# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. admin@your-domain.com
#
ServerAdmin vincent.benoit@benserv.fr
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:80
#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
AllowOverride none
Require all denied
</Directory>
#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ".ht*">
Require all denied
</Files>
#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "/var/log/apache2/error_log"
#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel info
<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
CustomLog "/var/log/apache2/access_log" common
#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
#CustomLog "/var/log/apache2/access_log" combined
</IfModule>
<IfModule alias_module>
#
# Redirect: Allows you to tell clients about documents that used to
# exist in your server's namespace, but do not anymore. The client
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://www.example.com/bar
#
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ "/usr/libexec/apache2/modules/cgi-bin/"
</IfModule>
<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
#Scriptsock cgisock
</IfModule>
#
# "/usr/libexec/apache2/modules/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/usr/libexec/apache2/modules/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule headers_module>
#
# Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
# backend servers which have lingering "httpoxy" defects.
# 'Proxy' request header is undefined by the IETF, not listed by IANA
#
RequestHeader unset Proxy early
</IfModule>
# Supplemental configuration
#
# The configuration files in the /etc/apache2/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as
# necessary.
# Server-pool management (MPM specific)
#Include /etc/apache2/extra/httpd-mpm.conf
# Multi-language error messages
#Include /etc/apache2/extra/httpd-multilang-errordoc.conf
# Fancy directory listings
#Include /etc/apache2/extra/httpd-autoindex.conf
# Language settings
#Include /etc/apache2/extra/httpd-languages.conf
# User home directories
#Include /etc/apache2/extra/httpd-userdir.conf
# Real-time info on requests and configuration
#Include /etc/apache2/extra/httpd-info.conf
# Virtual hosts
Include /etc/apache2/extra/httpd-vhosts.conf
# Local access to the Apache HTTP Server Manual
#Include /etc/apache2/extra/httpd-manual.conf
# Distributed authoring and versioning (WebDAV)
#Include /etc/apache2/extra/httpd-dav.conf
# Various default settings
#Include /etc/apache2/extra/httpd-default.conf
# Configure mod_proxy_html to understand HTML4/XHTML1
<IfModule proxy_html_module>
Include /etc/apache2/extra/proxy-html.conf
</IfModule>
# Secure (SSL/TLS) connections
#Include /etc/apache2/extra/httpd-ssl.conf
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
#IncludeOptional /etc/apache2/conf.d/*.conf
#IncludeOptional /etc/apache2/modules.d/*.load
#IncludeOptional /etc/apache2/modules.d/*.conf
IncludeOptional /etc/apache2/sites-enabled/*.conf
PidFile /run/httpd.pid

View File

@@ -0,0 +1,9 @@
# Copyright (C) 2022 Vincent BENOIT <vincent.benoit@benserv.fr>
# Release under the MIT license (see COPYING.MIT for the terms)
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://dnsmasq.conf"
do_install:append() {
install -m 0644 ${WORKDIR}/dnsmasq.conf ${D}${sysconfdir}
}

View File

@@ -0,0 +1,3 @@
interface=wlan0
bind-dynamic
dhcp-range=10.1.1.11,10.1.1.150,255.255.255.0,12h