Put your wardrobe in rows. Snap. Organize. Wear.
Features • Quick Start • Deployment • Architecture • Contributing
Self-hosted wardrobe management with AI-powered outfit recommendations. Take photos of your clothes, let AI tag them, and get daily outfit suggestions based on weather and occasion.
- Photo-based wardrobe - Upload photos, AI extracts clothing details automatically
- Smart recommendations - Outfits matched to weather, occasion, and your preferences
- Scheduled notifications - Daily outfit suggestions via ntfy/Mattermost/email
- Family support - Manage wardrobes for household members
- Wear tracking - History, ratings, and outfit feedback
- Analytics - See what you wear, what you don't, color distribution
- Fully self-hosted - Your data stays on your hardware
- Works with any AI - OpenAI, Ollama, LocalAI, or any OpenAI-compatible API
| Wardrobe Grid | AI Analysis |
|---|---|
![]() |
![]() |
| Suggestions | History Calendar |
|---|---|
![]() |
![]() |
| Analytics | Pairing |
|---|---|
![]() |
![]() |
- Docker and Docker Compose
- An AI service (OpenAI API key, or local Ollama/LocalAI instance)
# Clone the repository
git clone https://github.com/yourusername/wardrowbe.git
cd wardrowbe
# Copy and configure environment
cp .env.example .env
# Edit .env with your settings
# Start everything
docker compose up -d
# Run database migrations
docker compose exec backend alembic upgrade headAccess the app at http://localhost:3000
For hot reloading during development:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d- Install Ollama
- Pull models:
ollama pull llava # Vision model for clothing analysis ollama pull llama3 # Text model for recommendations
- Configure in
.env:AI_BASE_URL=http://host.docker.internal:11434/v1 AI_VISION_MODEL=llava AI_TEXT_MODEL=llama3
AI_BASE_URL=https://api.openai.com/v1
AI_API_KEY=sk-your-api-key
AI_VISION_MODEL=gpt-4o
AI_TEXT_MODEL=gpt-4oAI_BASE_URL=http://localai:8080/v1
AI_VISION_MODEL=gpt-4-vision-preview
AI_TEXT_MODEL=gpt-3.5-turbo┌─────────────────────────────────────────────────────────────┐
│ Frontend │
│ (Next.js + React Query) │
└─────────────────────────┬───────────────────────────────────┘
│
┌─────────────────────────▼───────────────────────────────────┐
│ Backend │
│ (FastAPI + SQLAlchemy) │
└──────────┬──────────────┬──────────────────┬────────────────┘
│ │ │
┌──────▼──────┐ ┌─────▼─────┐ ┌──────▼──────┐
│ PostgreSQL │ │ Redis │ │ AI Service │
│ (Database) │ │ (Job Queue)│ │ (OpenAI/etc)│
└─────────────┘ └─────┬─────┘ └─────────────┘
│
┌──────────▼──────────┐
│ Background Worker │
│ (arq - AI Jobs) │
└─────────────────────┘
| Layer | Technology |
|---|---|
| Frontend | Next.js 14, TypeScript, TanStack Query, Tailwind CSS, shadcn/ui |
| Backend | FastAPI, SQLAlchemy (async), Pydantic, Python 3.11+ |
| Database | PostgreSQL 15 |
| Cache/Queue | Redis 7 |
| Background Jobs | arq |
| Authentication | NextAuth.js (supports OIDC, dev credentials) |
| AI | Any OpenAI-compatible API |
See docker-compose.prod.yml for production configuration.
docker compose -f docker-compose.prod.yml up -d
docker compose exec backend alembic upgrade headSee the k8s/ directory for Kubernetes manifests including:
- PostgreSQL and Redis with persistent storage
- Backend API and worker deployments
- Next.js frontend
- Ingress with TLS
- Network policies
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Yes |
SECRET_KEY |
Backend secret for JWT | Yes |
NEXTAUTH_SECRET |
NextAuth session encryption | Yes |
AI_BASE_URL |
AI service URL | Yes |
AI_API_KEY |
AI API key (if required) | Depends |
See .env.example for all options.
- Development Mode (default): Simple email/name login
- OIDC Mode: Authentik, Keycloak, Auth0, or any OIDC provider
- ntfy.sh: Free push notifications
- Mattermost: Team messaging webhook
- Email: SMTP-based
Uses Open-Meteo - free, no API key needed.
cd backend
pip install -r requirements.txt
# Run tests
pytest
# Run with hot reload
uvicorn app.main:app --reloadcd frontend
npm install
# Run dev server
npm run dev
# Run tests
npm test
# Build
npm run buildAvailable when running:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Docker & Docker Compose
- ~4GB RAM (with local Ollama models)
- Storage for clothing photos
Works great on a Raspberry Pi 5!





