A Django application for managing eQSL card confirmations via email. This application allows you to:
- Manage QSL card designs and templates
- Track QSO (contact) records with ADIF-compatible fields
- Send eQSL cards via email with generated images
- Integrate with QRZ.com for QSO data synchronization
- Track sent eQSLs and their status
- Upload and manage QSL card template images
- Customize card appearance (colors, fonts, signatures)
- Support for multiple card designs
- Store QSO records with full ADIF field support
- Import QSOs from QRZ.com logbook
- Track QSL status (sent/received) for various platforms
- Search and filter QSOs by various criteria
- Generate personalized QSL card images
- Send eQSL cards via email
- Track sending status and delivery
- Support for multiple email templates and languages
- Sync QSOs from QRZ.com logbook
- Lookup callsign information
- Manage QRZ API credentials securely
- Python 3.12+
- PostgreSQL (for production) or SQLite (for development)
- Redis (for background tasks)
- Clone the repository:
git clone <repository-url>
cd qslweb- Install dependencies:
uv sync- Create environment file:
cp env.example .env
# Edit .env with your settings- Run migrations:
make migrate- Create superuser:
make createsuperuser- Start development server:
make server- Build and run with Docker Compose:
make compose-up- Or build container manually:
make container-build-prod
make container-runCreate a .env file with the following variables:
# Django settings
SECRET_KEY=your-secret-key
DEBUG=False
ALLOWED_HOSTS=your-domain.com
# Database
DATABASE_URL=postgres://user:password@localhost:5432/qslweb
# Redis
REDIS_URL=redis://localhost:6379/0
# QRZ API credentials
QRZ_API_KEY=your-qrz-api-key
QRZ_USERNAME=your-qrz-username
QRZ_PASSWORD=your-qrz-password
# SMTP settings for sending eQSL emails
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_FROM_EMAIL=your-email@gmail.com- Log in to QRZ.com
- Go to Logbook → Settings → API Key
- Generate an API key
- Add your QRZ credentials to the admin panel or environment variables
Access the admin interface at /admin/ to:
- Manage QSL card designs
- Configure QRZ credentials
- Set up email templates
- View sync logs
- Go to QSL Cards section
- Upload your QSL card template image
- Configure colors, fonts, and signature text
- Set as active for use in eQSL generation
- Add QSOs manually or sync from QRZ
- Ensure QSOs have email addresses for eQSL sending
- Use filters to find QSOs that need eQSLs
- Go to eQSL section
- Select QSOs that need eQSLs
- Choose QSL card design and email template
- Send individual eQSLs or batch send
make test
make test-coveragemake lint
make lint-fixmake migrations
make migrateThe application integrates with QRZ.com using their Logbook API:
- QSO Sync: Import QSOs from your QRZ logbook
- Callsign Lookup: Get detailed information about callsigns
- Email Lookup: Automatically find email addresses for QSOs
Configure your SMTP settings to send eQSL emails. Popular providers:
- Gmail: Use App Passwords for authentication
- Outlook: Use OAuth2 or App Passwords
- Custom SMTP: Configure with your provider's settings
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review the admin interface help text