A professional, white-label caller ID monitoring tool built with FastAPI and modern web technologies.
- Modern, responsive UI built with Tailwind CSS
- Real-time phone number monitoring using callerapi.com
- Easy API key configuration
- Professional phone number management
- Enterprise-ready architecture following SOLID principles
- White-label ready for customization
- FastAPI - Modern, fast web framework for building APIs
- SQLAlchemy - SQL toolkit and ORM
- Tailwind CSS - Utility-first CSS framework
- Jinja2 - Template engine
- SQLite - Database (can be easily switched to PostgreSQL for production)
- Clone the repository:
git clone <repository-url>
cd caller-id-monitor- Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create a
.envfile in the root directory:
cp .env.example .env- Get your API key from https://callerapi.com/dashboard and add it to the
.envfile:
CALLER_API_KEY=your_api_key_here
- Run the application:
uvicorn app.main:app --reload- Open your browser and navigate to
http://localhost:8000
caller_id_monitor/
├── app/
│ ├── api/ # API endpoints
│ ├── core/ # Core configuration
│ ├── db/ # Database configuration
│ ├── models/ # SQLAlchemy models
│ ├── schemas/ # Pydantic schemas
│ ├── services/ # Business logic
│ └── templates/ # HTML templates
├── static/ # Static files
├── tests/ # Test suite
├── .env.example # Environment variables example
└── requirements.txt # Python dependencies
Once the application is running, you can access:
- Interactive API documentation:
http://localhost:8000/docs - Alternative API documentation:
http://localhost:8000/redoc
To run the development server with auto-reload:
uvicorn app.main:app --reloadFor production deployment:
- Use a production-grade database (e.g., PostgreSQL)
- Set up proper environment variables
- Use a production ASGI server (e.g., Gunicorn with Uvicorn workers)
- Set up proper security measures (HTTPS, rate limiting, etc.)
- Configure proper logging
Example production command:
gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorkerThe application is designed to be easily white-labeled:
- Customize the branding in
app/templates/base.html - Modify the color scheme in the Tailwind configuration
- Add your logo and custom styles
- Update text and messaging throughout the templates
For support, please contact https://callerapi.com/contact