Skip to content

FlashPod v0.8.0 Released

Choose a tag to compare

@ElderBlade ElderBlade released this 26 Aug 05:52
· 111 commits to main since this release

🎉 FlashPod v0.8.0 - "Container Ready"

Major milestone: FlashPod is now production-ready with full containerization support!

FlashPod v0.8.0 introduces comprehensive containerization, making it incredibly easy for self-hosters to deploy their own flashcard learning platform. This release focuses on deployment simplicity while maintaining all the core functionality users love.

🚢 Container & Deployment

🐳 Docker Support

  • Multi-stage Dockerfile with optimized build process
  • Rootless containers with configurable user/group mapping
  • Production-ready with security hardening and health checks
  • Cross-platform support (AMD64, ARM64)

📦 Podman Integration

  • Podman Quadlet support for systemd integration
  • Automatic service management with systemctl
  • Rootless deployment - no root privileges required
  • Auto-start on boot with proper dependency management

⚡ Self-Hosting Made Simple

# Just three steps to self-host FlashPod:
cp .env.example .env          # Configure your secrets
docker-compose up -d          # Start FlashPod  
# Access at http://localhost:8000

🔧 Configuration & Management

📁 Simplified Data Storage

  • No database URLs needed - just point to a directory
  • Automatic database creation on first run
  • Flexible bind mounts - store data anywhere on your system
  • Easy backups - just copy your data directory

🔐 Enhanced Security

  • Environment-based configuration with strong secret generation
  • JWT token management with configurable expiration
  • Production security with read-only containers and non-root users
  • SELinux compatibility for enhanced container security

📊 Version Management

  • Dynamic version display in dashboard footer
  • API endpoint for version checking (/api/version)
  • Easy version updates with automated update script
  • Health monitoring with /api/health endpoint

📚 Core Features (Stable & Production Ready)

📝 Deck Management

  • Create, edit, and organize flashcard decks
  • Import/Export functionality - CSV, TSV support with preview
  • Drag-and-drop reordering for cards and decks
  • Bulk card import with intelligent parsing

🎯 Study Experience

  • Interactive study mode with multiple flip animations
  • Keyboard navigation - full study experience without mouse
  • Mobile-responsive design with touch-friendly controls
  • Real-time card editing during study sessions

👤 User System

  • Secure authentication with JWT tokens
  • Demo account for easy testing (testuser / password123)
  • User profile management with preferences storage

🔜 Coming in v0.9.0 (In Development)

While v0.8.0 provides a fantastic basic flashcard experience, we're actively working on the advanced learning features:

  • 🧠 SuperMemo-2 Spaced Repetition - Intelligent card scheduling
  • 📈 Progress Analytics - Detailed learning statistics and retention tracking
  • 🔥 Study Streaks - Gamification and motivation features
  • 📊 Performance Insights - Advanced study session analytics

Note: The spaced repetition algorithm infrastructure is already in place - v0.9.0 will activate the intelligent scheduling system.

🛠️ Developer Experience

📖 Comprehensive Documentation

  • Production deployment guide with security best practices
  • Development setup instructions with environment configuration
  • Podman Quadlet guide for systemd integration
  • API documentation for health checks and version info

🔨 Build Tools

  • Automated build scripts supporting both Docker and Podman
  • CSS build pipeline with Tailwind CSS v4 support
  • Version management scripts for easy releases
  • Development environment with hot reloading

📦 Installation Options

Option 1: Docker Compose (Recommended)

git clone https://github.com/your-username/flashpod.git
cd flashpod
cp .env.example .env  # Edit with your settings
docker-compose up -d

Option 2: Podman Quadlet (Systemd Integration)

git clone https://github.com/your-username/flashpod.git
cd flashpod
podman build -f docker/Dockerfile -t localhost/flashpod .
./setup-quadlet.sh  # Automated setup

Option 3: Development Setup

git clone https://github.com/your-username/flashpod.git
cd flashpod
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
npm install && npm run build-css-prod
cd app && python main.py

⚙️ System Requirements

Minimum (Container)

  • Docker 20.10+ or Podman 3.0+
  • 512MB RAM
  • 1GB disk space

Recommended (Production)

  • 1GB+ RAM
  • 5GB+ disk space for data growth
  • Reverse proxy (nginx) for HTTPS
  • Regular backups of data directory

📝 Configuration

Required Environment Variables:

JWT_SECRET=your-secure-jwt-secret-key-here
SECRET_KEY=your-secure-app-secret-key-here
DATA_DIR=/path/to/your/data/directory

Optional Settings:

DEBUG=false
JWT_EXPIRATION_HOURS=24  
USER_ID=1001
GROUP_ID=1001
CORS_ORIGINS=*

🐛 Bug Fixes & Improvements

  • Fixed database path handling for development vs container environments
  • Improved error handling for authentication and data validation
  • Enhanced mobile navigation with proper hamburger menu
  • Optimized build process with multi-stage containers
  • Better development experience with auto-reload and debugging tools

🙏 Acknowledgments

Special thanks to the self-hosting community for feedback and testing that made this container-focused release possible!

🔗 Links

📋 Migration Notes

From v0.7.x or earlier:

  1. Backup your data: Copy your existing data/ directory
  2. Update environment: Use new .env.example as template
  3. Rebuild containers: Run docker-compose build --no-cache
  4. Restart services: Run docker-compose up -d

Database Migration:

No database migrations required - existing SQLite databases are fully compatible.


Next Release: v0.9.0 will focus on implementing the SuperMemo-2 spaced repetition algorithm and advanced progress tracking.