A modern, secure Streamlit dashboard for visualizing and managing device deployment metadata for the TABMON project.
- 🗺️ Map Visualization: Interactive maps with real-time device monitoring and status tracking
- 🎵 Audio Analysis: Advanced audio file browsing, playback, and analysis tools
- 📋 Site Metadata: Comprehensive site information and metadata management
- HTTP Basic Authentication for secure data access
- Environment-based credential management
- Docker secrets integration for production deployments
- Service layer separation for data handling
- Component-based UI architecture
- Efficient data processing with DuckDB
- Responsive design with custom CSS styling
The dashboard leverages:
rcloneto serve data from S3 storageduckdbfor optimized querying of.parquetfiles- Docker Compose for multi-service orchestration
- Reverse proxy with authentication for secure access
┌─────────────────┐ ┌──────────────┐ ┌─────────────┐
│ Dashboard │────│ Reverse Proxy│────│ rclone │
│ (Streamlit) │ │ (nginx) │ │ (S3 data) │
└─────────────────┘ └──────────────┘ └─────────────┘
- Docker and Docker Compose
- Access credentials for the S3 bucket
- Create environment file:
cp .env.example .env- Configure credentials in
.env:
AUTH_USERNAME=guest
AUTH_PASSWORD=your_password_here- Start the dashboard:
docker compose up- Access the dashboard:
- Open your browser to
http://localhost:8085 - Login with the credentials from your
.envfile
- Open your browser to
AUTH_USERNAME: HTTP Basic Auth usernameAUTH_PASSWORD: HTTP Basic Auth password
The dashboard connects to remote S3 storage via rclone. Configure your data paths in the docker-compose.yml file or create a stack.env for production deployments.
- View device locations on interactive maps
- Monitor device status and connectivity
- Filter by country, region, and deployment status
- Browse audio recordings by device and time
- Play audio files with secure authentication
- Export recording lists and metadata
- View audio statistics and recording frequency
- Manage site information and device metadata
- View deployment details and configurations
- Access device images and documentation
Run component tests:
python test_components.pyFor production deployment using Portainer or similar container orchestration:
- Use Docker secrets for credentials:
secrets:
htpasswd:
file: ./htpasswd- Configure environment variables appropriately
- Ensure proper network security and access controls
See DEPLOYMENT.md for detailed deployment instructions.
- Never commit credentials to version control
- Use
.envfiles for local development only - Use Docker secrets or proper secret management for production
- The reverse proxy provides an additional security layer
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and test thoroughly
- Commit with clear, descriptive messages
- Push and create a pull request
- ✨ Modernized audio dashboard with enhanced playback and analysis features
- 🔐 Implemented secure authentication system with environment-based credentials
- 🎨 Updated UI with modern styling and responsive design
- 🏗️ Refactored to service-based architecture for better maintainability
- 🧹 Cleaned up codebase and removed legacy files
The dashboard has been developed by:
- Benjamin Cretois - Lead Developer
- Francesco Frassinelli - Contributor
For technical support or questions, please open an issue on the repository.