diff --git a/README.md b/README.md index 8b3d9c6..ba7a9f8 100755 --- a/README.md +++ b/README.md @@ -11,7 +11,16 @@ Version Pro du ModuleAir avec CM4, SaraR4 et ecran Matrix LED p2 64x64. - **Base de données SQLite**: Stockage local avec nettoyage automatique # Installation -## General + +## Script + +´´´ +wget http://gitea.aircarto.fr/PaulVua/moduleair_pro_4g/raw/branch/main/installation.sh +chmod +x installation.sh +./installation.sh +´´´ + +## Detailed ``` sudo apt update sudo apt install git gh apache2 sqlite3 php php-sqlite3 libsqlite3-dev python3 python3-pip jq g++ autossh i2c-tools python3-smbus -y diff --git a/installation.sh b/installation.sh index 23b75f1..188644f 100644 --- a/installation.sh +++ b/installation.sh @@ -110,17 +110,20 @@ install_python_packages() { local pip_packages=( "pymodbus" "pyserial" - "sqlite3" "requests" "schedule" "RPi.GPIO" + "gpiozero" "smbus2" "adafruit-circuitpython-bme280" + "sensirion-shdlc-sfa3x" + "crcmod" + "psutil" ) for package in "${pip_packages[@]}"; do print_status "Installing Python package: $package..." - if pip3 install "$package"; then + if pip3 install "$package" --break-system-packages; then print_success "$package installed" else print_warning "Failed to install $package (may already be installed)" @@ -130,23 +133,38 @@ install_python_packages() { print_success "Python packages installation completed" } -# Setup directory structure -setup_directories() { - print_step "Setting up directory structure..." +# Clone repository +clone_repository() { + print_step "Cloning ModuleAir Pro 4G repository..." - # Create main directory if it doesn't exist - if [ ! -d "/var/www/moduleair_pro_4g" ]; then - sudo mkdir -p /var/www/moduleair_pro_4g - print_success "Created /var/www/moduleair_pro_4g directory" - else - print_warning "Directory /var/www/moduleair_pro_4g already exists" + # Remove existing directory if it exists + if [ -d "/var/www/moduleair_pro_4g" ]; then + print_warning "Directory /var/www/moduleair_pro_4g already exists - removing..." + sudo rm -rf /var/www/moduleair_pro_4g fi - # Create subdirectories + # Clone the repository + if sudo git clone http://gitea.aircarto.fr/PaulVua/moduleair_pro_4g.git /var/www/moduleair_pro_4g; then + print_success "Repository cloned successfully" + else + print_error "Failed to clone repository" + exit 1 + fi + + # Set proper permissions + sudo chown -R www-data:www-data /var/www/moduleair_pro_4g + sudo chmod -R 755 /var/www/moduleair_pro_4g + print_success "Repository permissions set" +} + +# Setup directory structure +setup_directories() { + print_step "Setting up additional directories and files..." + + # Create additional directories local dirs=( "sqlite" "logs" - "services" "matrix/input" ) @@ -155,10 +173,32 @@ setup_directories() { print_success "Created directory: $dir" done + # Create required log files + local files=( + "logs/app.log" + "logs/loop.log" + "matrix/input_NPM.txt" + "matrix/input_MHZ16.txt" + "wifi_list.csv" + ) + + for file in "${files[@]}"; do + sudo touch "/var/www/moduleair_pro_4g/$file" + print_success "Created file: $file" + done + + # Copy config template if it exists + if [ -f "/var/www/moduleair_pro_4g/config.json.dist" ]; then + sudo cp /var/www/moduleair_pro_4g/config.json.dist /var/www/moduleair_pro_4g/config.json + print_success "Configuration file created from template" + else + print_warning "config.json.dist not found - skipping config file creation" + fi + # Set proper permissions sudo chown -R www-data:www-data /var/www/moduleair_pro_4g sudo chmod -R 755 /var/www/moduleair_pro_4g - print_success "Directory permissions set" + print_success "Directory permissions updated" } # Configure Apache @@ -411,6 +451,7 @@ main() { update_system install_dependencies install_python_packages + clone_repository setup_directories configure_apache enable_hardware