- Backend: A RESTful API server that handles all transcription functionality
- Frontend: A React web interface that communicates with the backend API
- Agent: An AI-powered content generation service for creating social media posts and blog content
- docker and docker-compose or equivalent.
- Python
- UV - An extremely fast Python package and project manager
- nodejs
scribby/
├── backend/ # Transcription API (FastAPI)
│ ├── api.py # FastAPI server implementation
│ ├── transcriber.py # Transcription functionality
│ ├── requirements.txt # Backend dependencies
│ └── Dockerfile.backend # Backend container definition
├── backend-agent/ # Content generation API (FastAPI)
│ ├── agent.py # Agent API implementation
│ ├── requirements.txt # Agent dependencies
│ └── Dockerfile.agent # Agent container definition
├── agent-frontend/ # React frontend
│ ├── src/ # React source code
│ ├── package.json # Frontend dependencies
│ └── Dockerfile.agent.frontend # Frontend container definition
├── outputs/ # Shared directory for transcription outputs
├── docker-compose.yml # Development deployment
├── docker-compose.production.yml # Production deployment with published images
└── .github/workflows/ # GitHub Actions for CI/CD
- Transcribe audio files (MP3, MP4, WAV, etc.)
- Transcribe YouTube videos by URL
- Transcribe microphone recordings
- Large file handling with automatic chunking
- Background processing for long-running tasks
- Turn transcribed content into promotional content
- AI-powered social media post generation
- Blog post creation
- Multi-platform content optimization (LinkedIn, Twitter, Instagram, etc.)
- Content revision and editing
- Document assistance
# deploy
git clone https://github.com/JockDaRock/scribby
cd scribby
docker-compose -f docker-compose.production.yml up# build and deploy
git clone https://github.com/JockDaRock/scribby
cd scribby
docker-compose up --buildgit clone https://github.com/JockDaRock/scribby
cd scribbyDuplicate this terminal 3 times.
# Terminal 1
cd backend
uv venv --python 3.13
source .venv/bin/activate
uv pip install -r requirements.txt
python -m uvicorn api:app --host 0.0.0.0 --port 8000# Terminal 2
cd backend-agent
uv venv --python 3.13
source .venv/bin/activate
uv pip install -r requirements.txt
python -m uvicorn agent:app --host 0.0.0.0 --port 8001# Terminal 1
cd agent-frontend
npm install
npm startOnce started, the application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Agent API: http://localhost:8001
- API Documentation: http://localhost:8000/docs (Backend), http://localhost:8001/docs (Agent)
Configure your API keys through the frontend settings page:
- Transcription API Key: For Whisper/OpenAI transcription
- LLM API Key: For content generation (OpenAI/custom LLM)
BASE_URL: Whisper API endpoint (default:https://api.openai.com/v1)DEBUG: Enable detailed logging (default:true)
TRANSCRIPTION_API_URL: Internal transcription service URLLLM_API_URL: LLM API endpoint (default:https://api.openai.com/v1)DEBUG: Enable debug logging (default:true)
REACT_APP_TRANSCRIPTION_API_URL: Backend API URLREACT_APP_AGENT_API_URL: Agent API URL
this can be changed in the frontend web app, under settings, if these are not set
The application can be deployed on:
- Docker Swarm
- Kubernetes
- Cloud platforms (AWS, GCP, Azure)
- VPS servers
The backend provides RESTful APIs for transcription and content generation:
GET /models: Get available transcription modelsGET /languages: Get available languagesPOST /transcribe/file: Transcribe an audio filePOST /transcribe/youtube: Transcribe a YouTube videoGET /status/{job_id}: Check transcription job statusGET /download/{job_id}: Download transcription result
POST /generate: Generate content from transcriptionGET /status/{job_id}: Check generation job statusGET /platforms: Get available social media platformsPOST /revise: Revise existing contentPOST /document-assist: AI document assistance
For complete API documentation, visit the Swagger docs at /docs when the services are running.
The project includes automated GitHub Actions workflows that:
- Build Docker images for all services
- Push images to GitHub Container Registry
- Run tests and security scans
- Support multi-platform builds (AMD64, ARM64)
- Fork the repository
- Create a feature branch
- Make your changes
- Test
- Submit a pull request
Local Development Commands - WIP Not working - looking at making a script to make development and builds a bit easier
# Start development environment
./docker.sh start
# View logs
./docker.sh logs
# Rebuild services
./docker.sh build
# Clean up
./docker.sh clean
# Use production images
./docker.sh start --prod- Port conflicts: Ensure ports 3000, 8000, and 8001 are available
- API key errors: Configure API keys in the frontend settings
- Docker issues: Try
./docker.sh cleanand restart - Build failures: Check the GitHub Actions logs
Enable debug logging by setting DEBUG=true in environment variables.
- Check the GitHub Issues
- Review service logs:
./docker.sh logs - Consult the API documentation at
/docs
This project is licensed under the MIT License - see the LICENSE file for details.