A complete, self-hosted IoT system for managing smart devices in your home network. Built with security, reliability, and ease of use in mind.
- 🔐 Secure authentication and authorization
- 📱 Modern, responsive web interface
- 🌙 Dark/Light theme support
- 🔄 Real-time updates via WebSocket
- 📊 Device monitoring and management
- 🤖 Automation support
- 📜 Script management
- 🔌 Multi-protocol support (MQTT, HTTP, etc.)
- 🐳 Docker-based deployment
- 📦 Easy installation
- Docker
- Docker Compose
- 2GB RAM (minimum)
- 10GB disk space
- Network access to your IoT devices
-
Clone the repository:
git clone https://github.com/yourusername/doorlock.git cd doorlock -
Run the installation script:
chmod +x install.sh ./install.sh
-
Access the web interface at http://localhost:3000
Default credentials:
- Email: admin@doorlock.local
- Password: admin123
Important: Change these credentials after first login!
The system consists of several components:
- Frontend: React-based web interface
- Backend: Flask API server
- Database: PostgreSQL for data persistence
- Cache: Redis for session management and caching
- MQTT Broker: Mosquitto for IoT device communication
cd frontend
npm install
npm startcd backend
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
pip install -r requirements.txt
flask runBackend:
FLASK_ENV: production/developmentDATABASE_URL: PostgreSQL connection stringREDIS_URL: Redis connection stringMQTT_BROKER_HOST: MQTT broker hostnameMQTT_BROKER_PORT: MQTT broker port
Frontend:
REACT_APP_API_URL: Backend API URLREACT_APP_SOCKET_URL: WebSocket server URL
- Navigate to the Devices page
- Click "Add Device"
- Select the device type
- Configure device settings
- Test the connection
Supported device types:
- MQTT devices
- HTTP devices
- Custom protocol devices (via plugins)
- Change default credentials immediately
- Use HTTPS in production
- Configure firewall rules
- Enable MQTT authentication in production
- Regularly update system components
-
Database backup:
docker-compose exec db pg_dump -U doorlock > backup.sql
-
Restore from backup:
docker-compose exec -T db psql -U doorlock < backup.sql
-
Check logs:
docker-compose logs -f [service_name]
-
Restart services:
docker-compose restart [service_name]
-
Reset system:
docker-compose down -v ./install.sh
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - see LICENSE file for details
- GitHub Issues: Report a bug
- Documentation: Wiki
- Community: Discussions