This is an out-of-the-box open-source IoT platform specifically designed for Firebeetle and Xiao ESP32S3. The platform utilizes Docker for CI/CD automated builds, uses Sqlite3 as the default database management system, and provides Nginx port forwarding settings.
Designed for Firebeetle and Xiao ESP32S3 hardware
CI/CD automation using Docker
Sqlite3 database management (with option to rebuild for MongoDB)
Nginx port forwarding configuration
Cloud server integration support
SMTP server support
Arduino-compatible hardware code upload
To start the project, follow these steps:
Build Docker Images: Use the following command to build the Docker images:
docker compose up --build
Start Docker Containers:
If the Dockerfile
has not been updated, you can start the containers using the script:
./docker-start.sh
The src
directory is the core of our frontend project. It contains the following key subdirectories:
globals.css
By default, this project uses Sqlite3 as the database management system. If you wish to use MongoDB, you can rebuild it following these steps:
docker-compose.yml
file.In the backend/.env
file, you can add cloud server information and SMTP server account information:
# SMTP server configuration
EMAIL_HOST_USER = ""
EMAIL_HOST_PASSWORD = ""
Please ensure to keep this sensitive information confidential and do not commit it to public code repositories.
Before uploading hardware code using Arduino, be sure to add WiFi SSID and password in the macro definitions. For example:
#define SSID "Your SSID"
#define PW "Password"
This ensures that your IoT device can correctly connect to the specified WiFi network.
This project includes Nginx configuration for port forwarding. You can find the relevant settings in the nginx/nginx.conf
file. You can modify port mappings or add other server blocks as needed.
globals.css
, be cautious as changes can affect the entire project.components
folder to maintain UI coherence.libs
folder for easy access and management.We welcome community contributions! If you want to contribute to this open-source IoT platform, please follow these steps:
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)see the LICENSE file for details.
Happy coding!