second commit
This commit is contained in:
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "System Packages Installation: # $0" 1>&2
|
||||
echo
|
||||
|
||||
sudo apt update
|
||||
#sudo apt upgrade
|
||||
|
||||
sudo apt install build-essential openssl git
|
||||
sudo apt install python3-dev python3-pip python3-venv redis supervisor
|
||||
sudo apt install default-libmysqlclient-dev libpq-dev
|
||||
sudo apt install i2c-tools python3-smbus
|
||||
|
||||
|
||||
|
||||
|
||||
Executable
+81
@@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
echo "Mkcert Installation: # $0" 1>&2
|
||||
echo
|
||||
|
||||
sudo apt-get -y install ca-certificates libnss3-tools
|
||||
ROOT="$(pwd)"
|
||||
|
||||
get_primary_ip() {
|
||||
# Test eth0 first
|
||||
if ip -4 addr show dev eth0 >/dev/null 2>&1; then
|
||||
ip -4 -o addr show dev eth0 | awk '{print $4}' | cut -d/ -f1 | head -n1
|
||||
else
|
||||
ip -4 -o addr show scope global | awk '{print $4 " " $2}' | grep -v lo | head -n1 | cut -d/ -f1
|
||||
fi
|
||||
}
|
||||
|
||||
IP="$(get_primary_ip)"
|
||||
CERTS="${ROOT}/certs"
|
||||
|
||||
DOMAIN_SERVER="relay.local"
|
||||
MKCERT_VERSION="v1.4.4"
|
||||
LOCAL_DOMAINS="127.0.0.1 localhost $IP ${DOMAIN_SERVER}"
|
||||
|
||||
# --- mkcert installation ---
|
||||
echo "==== mkcert installation ===="
|
||||
# Déduire URL binaire selon architecture
|
||||
ARCH="$(uname -m)"
|
||||
case "$ARCH" in
|
||||
aarch64|arm64) ARCH_TAG="linux-arm64" ;;
|
||||
armv7l|armv7) ARCH_TAG="linux-arm" ;;
|
||||
x86_64) ARCH_TAG="linux-amd64" ;;
|
||||
*) ARCH_TAG="linux-amd64" ;;
|
||||
esac
|
||||
|
||||
MKCERT_BINARY_NAME="mkcert-${MKCERT_VERSION}-${ARCH_TAG}"
|
||||
|
||||
#https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-arm64
|
||||
MKCERT_URL="https://github.com/FiloSottile/mkcert/releases/download/${MKCERT_VERSION}/${MKCERT_BINARY_NAME}"
|
||||
echo "Téléchargement: $MKCERT_URL"
|
||||
wget "$MKCERT_URL"
|
||||
sudo mv "$MKCERT_BINARY_NAME" /usr/local/bin/mkcert
|
||||
chmod +x /usr/local/bin/mkcert
|
||||
|
||||
# Installer racine mkcert si nécessaire
|
||||
if ! mkcert -CAROOT >/dev/null 2>&1; then
|
||||
mkcert -install || true
|
||||
fi
|
||||
|
||||
echo "==== Génération des certificats pour: $LOCAL_DOMAINS ===="
|
||||
mkdir -p "$CERTS"
|
||||
pushd "$CERTS" >/dev/null
|
||||
# mkcert supporte listes d'arguments ; on passe en tant que mots
|
||||
# Note: si trop long, mkcert créera wildcard/local CA selon besoin
|
||||
mkcert -cert-file "${DOMAIN_SERVER}.pem" -key-file "${DOMAIN_SERVER}-key.pem" $LOCAL_DOMAINS
|
||||
popd >/dev/null
|
||||
|
||||
echo "==== Copier certificat racine local pour navigateur ===="
|
||||
LOCAL_CERTS_PATH="$HOME/.local/share/mkcert/rootCA.pem"
|
||||
|
||||
if [ -f "$LOCAL_CERTS_PATH" ]; then
|
||||
cp "$LOCAL_CERTS_PATH" "$CERTS/${DOMAIN_SERVER}-root-cert.pem"
|
||||
echo "Certificat copié: $CERTS/${DOMAIN_SERVER}-root-cert.pem"
|
||||
else
|
||||
echo "Root CA mkcert introuvable à $LOCAL_CERTS_PATH"
|
||||
fi
|
||||
|
||||
echo "==== Mise à jour /etc/hosts ===="
|
||||
# On ajoute une ligne unique contenant IP puis tous les domaines
|
||||
HOSTS_LINE="$IP $DOMAIN_SERVER"
|
||||
if ! grep -qE "^${IP}[[:space:]]+${DOMAIN_SERVER}(\s|$)" /etc/hosts; then
|
||||
printf "%s\n" "$HOSTS_LINE" | sudo tee -a /etc/hosts >/dev/null
|
||||
echo "/etc/hosts mis à jour"
|
||||
else
|
||||
echo "/etc/hosts contient déjà une entrée pour $IP"
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 123 KiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 236 KiB |
@@ -0,0 +1,29 @@
|
||||
[group:relay]
|
||||
programs = dashboard, workers
|
||||
|
||||
[program:dashboard]
|
||||
process_name=%(program_name)s
|
||||
priority=900
|
||||
directory=/home/rpi4/workspace/django-relay-controller/relaycontroller
|
||||
command=/home/rpi4/workspace/django-relay-controller/relaycontroller/runserver.sh
|
||||
user=rpi4
|
||||
group=rpi4
|
||||
stopasgroup=true
|
||||
killasgroup=true
|
||||
stopsignal=SIGINT
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
[program:workers]
|
||||
process_name=%(program_name)s
|
||||
priority=999
|
||||
directory=/home/rpi4/workspace/django-relay-controller/relaycontroller
|
||||
command=/home/rpi4/workspace/django-relay-controller/relaycontroller/workers.sh start
|
||||
user=rpi4
|
||||
group=rpi4
|
||||
stopasgroup=true
|
||||
killasgroup=true
|
||||
stopsignal=SIGINT
|
||||
autostart=true
|
||||
autorestart=true
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
django
|
||||
pillow
|
||||
django-timezone-field
|
||||
django-celery-beat
|
||||
django-resized
|
||||
django-celery-results
|
||||
channels[daphne]
|
||||
channels-redis
|
||||
twisted[tls,http2]
|
||||
celery[redis]
|
||||
PyYaml
|
||||
python-decouple
|
||||
python-dateutil
|
||||
psutil
|
||||
paho-mqtt
|
||||
requests
|
||||
mysqlclient
|
||||
psycopg2
|
||||
smbus2
|
||||
RPI.GPIO
|
||||
OPI.GPIO
|
||||
pi74HC595
|
||||
RPLCD
|
||||
@@ -0,0 +1,4 @@
|
||||
[inet_http_server]
|
||||
port=*:9001
|
||||
username=root
|
||||
password=toor
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
Reference in New Issue
Block a user