A self-hosted fantasy football dashboard with real-time scoring, play-by-play updates, historical stats, and Yahoo Fantasy integration.
FantasyPulse - Feel every satisfying point in real-time.
- Real-time Scoring - Live updates during NFL games via WebSocket
- Play-by-Play Tracking - See every scoring play matched to your fantasy players
- All League Matchups - View every matchup in your league, not just yours
- Historical Data - Track your league's history across multiple seasons
- Owner Statistics - Comprehensive stats and head-to-head records
- Responsive Design - Works on desktop, tablet, and mobile
- Dark Mode - Easy on the eyes for those late Sunday night games
No need to clone the repo! Just download the docker-compose file and run:
# Download the docker-compose file
curl -O https://raw.githubusercontent.com/dnielso5/fantasypulse/main/docker-compose.hub.yml
# Rename it
mv docker-compose.hub.yml docker-compose.yml
# Run it
docker-compose up -dThen open http://localhost:8888/setup/ to configure your Yahoo credentials.
If you want to customize the code or contribute:
# Clone the repository
git clone https://github.com/dnielso5/fantasypulse.git
cd fantasypulse
# Build and run
docker-compose up -d --buildAfter starting the container, complete the setup wizard:
- Open http://localhost:8888/setup/
- Enter your Yahoo API credentials (see below)
- Enter your League ID
- Click "Test Connection"
- Done! Visit http://localhost:8888
- Go to Yahoo Developer Portal
- Click "Create an App"
- Fill in the form:
- Application Name: FantasyPulse (or any name)
- Application Type: Web Application
- Redirect URI:
https://localhost - API Permissions: Check "Fantasy Sports"
- Click "Create App"
After creating the app, you'll see:
- Client ID (Consumer Key) - Copy this
- Client Secret (Consumer Secret) - Copy this
Your League ID is in your Yahoo Fantasy URL:
https://football.fantasysports.yahoo.com/f1/XXXXXX
^^^^^^
This is your League ID
fantasypulse/
βββ api/ # PHP API endpoints
βββ assets/ # CSS, JavaScript
βββ classes/ # PHP classes
βββ config/ # Configuration files
βββ data/ # League data (auto-populated)
βββ docker/ # Docker configuration
βββ pages/ # Dashboard pages
βββ setup/ # First-run setup wizard
βββ yfpy/ # Yahoo Fantasy Python library
βββ docker-compose.yml # Local build version
βββ docker-compose.hub.yml # Pre-built image version
βββ Dockerfile # Container build instructions
βββ scheduler.py # Background data fetcher
βββ websocket-server.js # Real-time updates server
| Variable | Description | Default |
|---|---|---|
WEB_PORT |
Web interface port | 8888 |
WEBSOCKET_PORT |
WebSocket port | 8080 |
TZ |
Timezone | America/Los_Angeles |
To use different ports, create a .env file:
WEB_PORT=9000
WEBSOCKET_PORT=9001
TZ=America/New_Yorkdocker-compose pull
docker-compose up -dgit pull
docker-compose up -d --builddocker-compose logs -f- Verify Yahoo credentials at
/setup/ - Check if it's currently game time (data fetches during games)
- View logs:
docker-compose logs fantasypulse
docker-compose exec fantasypulse chown -R www-data:www-data /var/www/html/datadocker-compose down -v
docker-compose up -dIf you have historical league data from previous seasons:
- Place JSON files in
data/YEAR/week_X/folders - Follow naming convention:
weekXmatchupsYEAR.json - See
data/DATA_STRUCTURE.mdfor format details
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - feel free to use this for your own fantasy leagues!
FantasyPulse - Made with β€οΈ for fantasy football enthusiasts