mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2026-05-17 01:49:35 -05:00
1ddea89d40
Admin restore runs in a background thread; the finally block must not use current_app.logger outside an application context. Use the captured Flask app instance for safe_file_remove logging instead. While restore_backup runs (extract through Alembic upgrade), set a per-app _database_restore_in_progress flag and expose is_database_restore_in_progress(). The client portal blueprint registers a global app_context_processor; get_current_client() now skips database access during restore and catches SQLAlchemy errors with session rollback so error pages and login can still render when the schema is briefly torn on PostgreSQL. Documentation: add docs/admin/BACKUP_AND_RESTORE.md, link it from the admin index and import/export docs, cross-reference from DATABASE_RECOVERY.md, and extend IMPORT_EXPORT_GUIDE.md with concurrent-restore guidance.
1.7 KiB
1.7 KiB
Administrator Documentation
Complete guides for TimeTracker administrators.
📖 Quick Links
Configuration
- Docker Compose Setup - Docker deployment guide
- Docker Public Setup - Production deployment
- Docker Startup Troubleshooting - Fix startup issues
- Email Configuration - Email setup
- OIDC Setup - OIDC/SSO authentication setup
Deployment
- Version Management - Managing versions
- Release Process - Release workflow
- Official Builds - Official build information
Security
- See security/ for security documentation
Monitoring
- See monitoring/ for monitoring and analytics setup
Backup and disaster recovery
- Backup and full archive restore — ZIP backups,
pg_restore/ SQLite restore, behaviour during restore, and operational notes for Docker
🔧 Common Tasks
- Initial Setup: Start with Docker Compose Setup
- Configure Email: See Email Configuration
- Set Up OIDC/SSO: Follow OIDC Setup
- Monitor System: Check monitoring/ documentation
📚 Related Documentation
- Main Documentation Index - Complete documentation overview
- User Guides - User-facing guides