Multi-band HeadyVersion platform for all jam bands
Find a file
fullsizemalt 6d3b30ed6f
Some checks failed
Deploy Fediversion / deploy (push) Failing after 1s
feat: add VideoGallery component to band pages
- VideoGallery component with modal playback
- YouTube thumbnail extraction
- Responsive grid layout
- Added to band home pages
- Import script for video entities
2025-12-30 19:32:35 -08:00
.agent/workflows feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
.forgejo/workflows feat: Groups refinement and band theming 2025-12-28 16:57:41 -08:00
.gemini/commands feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
.specify feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
backend feat: add VideoGallery component to band pages 2025-12-30 19:32:35 -08:00
docs feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
email feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
frontend feat: add VideoGallery component to band pages 2025-12-30 19:32:35 -08:00
.gitignore feat: Cross-band milestone - Festivals, Playlists, Musicians, Venue Timeline 2025-12-28 23:34:05 -08:00
DEPLOY.md feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
docker-compose.yml fix: Use fediversion.runfoo.run only (no .xyz domain yet) 2025-12-28 14:46:41 -08:00
LOCAL_DEV.md feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
README.md docs: Add Tailscale SSH push instructions to README 2025-12-28 14:56:06 -08:00
traefik-routes.yml feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
verify.sh feat: User Personalization, Playlists, Recommendations, and DSO Importer 2025-12-29 16:28:43 -08:00
VPS_HANDOFF.md feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00
youtube.md feat: Initialize Fediversion multi-band platform 2025-12-28 12:39:28 -08:00

Fediversion

The ultimate HeadyVersion platform for ALL jam bands.

Fediversion is a unified setlist tracking, rating, and community platform supporting multiple jam bands from a single account.

Supported Bands

Band Data Source Status
🦆 Goose El Goose API Active
🐟 Phish Phish.net API v5 🔄 Ready
💀 Grateful Dead Grateful Stats API 🔄 Ready
Dead & Company Setlist.fm 🔄 Ready
🎸 Billy Strings Setlist.fm 🔄 Ready

Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 18+
  • PostgreSQL (optional, SQLite works for dev)

1. Backend (Port 8000)

cd backend
pip install -r requirements.txt

# Set API keys for data import (optional)
export PHISHNET_API_KEY="your-key"
export SETLISTFM_API_KEY="your-key"

# Run migrations
alembic upgrade head

# Start server
uvicorn main:app --reload --port 8000

2. Frontend (Port 3000)

cd frontend
npm install
npm run dev

3. Import Band Data

cd backend

# Import Goose (existing)
python import_elgoose.py

# Import Phish
python -m importers.phish

# Import Grateful Dead
python -m importers.grateful_dead

# Import Dead & Company
python -m importers.setlistfm deadco

# Import Billy Strings
python -m importers.setlistfm bmfs

API Keys

Service Get Key At Required For
Phish.net https://phish.net/api Phish data
Setlist.fm https://api.setlist.fm D&C, Billy Strings
Grateful Stats https://gratefulstats.com Grateful Dead

Git Repository

Repo: https://git.runfoo.run/runfoo-org/fediversion

Push via Tailscale

SSH port 2222 blocked externally. Use Tailscale IP for nexus-vector:

# Set remote to Tailscale IP (nexus-vector = 100.95.3.92)
git remote set-url origin ssh://git@100.95.3.92:2222/runfoo-org/fediversion.git

# Push
git push origin main
git push origin testing  # Triggers CI/CD deploy to fediversion.runfoo.run

CI/CD Branches

Branch Server URL
testing nexus-vector fediversion.runfoo.run
production tangible-aacorn (when domain ready)

Architecture

fediversion/
├── backend/
│   ├── importers/           # Band-specific data importers
│   │   ├── base.py          # Abstract base class
│   │   ├── phish.py         # Phish.net API
│   │   ├── grateful_dead.py # Grateful Stats API
│   │   └── setlistfm.py     # D&C, Billy Strings
│   ├── routers/             # API endpoints
│   ├── models.py            # SQLModel database models
│   └── main.py              # FastAPI app
├── frontend/
│   ├── app/                 # Next.js 14 app router
│   └── components/          # React components
└── docker-compose.yml

Core Concept: Verticals

Fediversion uses the "Vertical" model to support multiple bands:

class Vertical(SQLModel):
    name: str       # "Phish"
    slug: str       # "phish"
    description: str

class Show(SQLModel):
    vertical_id: int  # Links to band
    # ...

Routes support both single-band (/shows) and multi-band (/phish/shows) patterns.

Based On

Fediversion is forked from elmeg-demo (elmeg.xyz), the Goose setlist platform.

License

MIT