@@ -6,14 +6,23 @@ A comprehensive web-based solution for backing up GitHub repositories with sched
66
77## Features  
88
9- -  ** Web UI with Authentication** : Secure login system with user management
10- -  ** Repository Management** : Add, edit, and delete GitHub repositories for backup
9+ -  ** Web UI with Authentication** : Secure login system with automatic admin user creation
10+ -  ** Password Reset System** : Forgot password functionality with server-logged reset codes
11+ -  ** Repository Management** : Add, edit, delete, and manually trigger backups for GitHub repositories
1112-  ** Multiple Backup Formats** : Support for folder structure, ZIP, and TAR.GZ archives
12- -  ** Flexible Scheduling** : Manual, hourly, daily, weekly, and monthly backup schedules
13- -  ** Retention Policies** : Configurable backup retention with automatic cleanup
13+ -  ** Flexible Scheduling** : 
14+   -  Manual backup triggering
15+   -  Predefined schedules: Hourly, Daily (2 AM), Weekly (Sunday 2 AM), Monthly (1st, 2 AM)
16+   -  Custom schedules: Every X days/weeks/months at specified time
17+ -  ** Retention Policies** : Configurable backup retention (1-50 versions) with automatic cleanup
1418-  ** Private Repository Support** : Works with GitHub Personal Access Tokens
15- -  ** Job Monitoring** : Track backup job status and view error logs
16- -  ** Docker Ready** : Fully containerized with health checks
19+ -  ** Dashboard Overview** : Statistics cards showing repository count, active repos, completed and failed jobs
20+ -  ** Job Monitoring** : 
21+   -  Real-time backup job status tracking (running, completed, failed)
22+   -  Detailed backup job history with timestamps
23+   -  Recent jobs display on dashboard
24+ -  ** User Settings** : Change username and password functionality
25+ -  ** Docker Ready** : Fully containerized with health checks and proper user permissions
1726
1827## Quick Start  
1928
@@ -38,7 +47,10 @@ docker-compose up -d
3847
39484 .  Access the web interface at ` http://localhost:8080 ` 
4049
41- 5 .  Create your admin account (first user becomes admin automatically)
50+ 5 .  Login with default credentials (created automatically):
51+    -  ** Username** : ` admin ` 
52+    -  ** Password** : ` changeme ` 
53+    -  ⚠️ ** Important** : Change the default password immediately after first login via Settings
4254
4355### Using Pre-built Docker Image  
4456
@@ -60,7 +72,9 @@ docker run -d \
6072|  Variable |  Description |  Default | 
6173| ----------| -------------| ---------| 
6274|  ` SECRET_KEY `  |  Flask secret key for sessions |  ` dev-secret-key-change-in-production `  | 
63- |  ` LOG_LEVEL `  |  Logging level |  ` INFO `  | 
75+ |  ` DATABASE_URL `  |  SQLite database file path |  ` sqlite:////app/data/github_backup.db `  | 
76+ |  ` PUID `  |  User ID for file permissions |  ` 1000 `  | 
77+ |  ` PGID `  |  Group ID for file permissions |  ` 1000 `  | 
6478
6579### GitHub Token Setup  
6680
@@ -78,15 +92,52 @@ For private repositories, you'll need a GitHub Personal Access Token:
7892
7993## Scheduling Options  
8094
81- -  ** Manual** : Backup only when triggered manually
95+ -  ** Manual** : Backup only when triggered manually via the web interface 
8296-  ** Hourly** : Every hour at minute 0
8397-  ** Daily** : Every day at 2:00 AM
84- -  ** Weekly** : Every Sunday at 2:00 AM
98+ -  ** Weekly** : Every Sunday at 2:00 AM   
8599-  ** Monthly** : 1st of every month at 2:00 AM
100+ -  ** Custom** : Every X days/weeks/months at a specified time
101+   -  Days: 1-365 day intervals
102+   -  Weeks: 1-52 week intervals  
103+   -  Months: 1-12 month intervals
104+   -  Custom time selection (24-hour format)
105+ 
106+ ## Web Interface  
107+ 
108+ The application provides a modern, responsive web interface with:
109+ 
110+ ### Dashboard  
111+ -  Repository statistics (total, active, completed backups, failed jobs)
112+ -  Recent repositories overview with status indicators
113+ -  Recent backup jobs with real-time status
114+ -  Quick access to add new repositories
115+ 
116+ ### Repository Management  
117+ -  Add repositories with GitHub URL
118+ -  Configure backup format (Folder, ZIP, TAR.GZ)
119+ -  Set up scheduling (predefined or custom intervals)
120+ -  Configure retention policies (1-50 backup versions)
121+ -  Edit repository settings
122+ -  Manual backup triggering
123+ -  Repository activation/deactivation
124+ 
125+ ### Backup Jobs  
126+ -  Real-time job status monitoring
127+ -  Complete backup history with timestamps
128+ -  Job status indicators (running, completed, failed)
129+ -  Auto-refresh for running jobs
130+ 
131+ ### User Management  
132+ -  Secure login system
133+ -  Password reset functionality (codes logged to server)
134+ -  User settings (change username/password)
135+ -  Automatic admin user creation on first run
86136
87137## API Endpoints  
88138
89- -  ` GET /health `  - Health check endpoint
139+ -  ` GET /health `  - Health check endpoint for monitoring
140+ -  ` GET /favicon.ico `  - Application favicon
90141-  Web interface available at ` / `  (requires authentication)
91142
92143## Development  
@@ -116,11 +167,13 @@ docker build -t github-backup .
116167
117168## Security Considerations  
118169
119- -  Change the default ` SECRET_KEY `  in production
120- -  Use strong passwords for user accounts
121- -  GitHub tokens are stored encrypted in the database
122- -  The application runs as non-root user in Docker
123- -  Regular security updates are recommended
170+ -  ** Change default credentials** : The application creates a default admin user (` admin ` /` changeme ` ) - change this immediately
171+ -  ** Change the SECRET_KEY** : Use a strong, unique secret key in production
172+ -  ** Use strong passwords** : Enforce strong passwords for all user accounts
173+ -  ** GitHub tokens** : Personal Access Tokens are stored in the database for private repository access
174+ -  ** Container security** : The application runs as non-root user in Docker with configurable PUID/PGID
175+ -  ** Regular updates** : Keep the application and dependencies updated for security patches
176+ -  ** Password reset** : Reset codes are logged to server logs for manual distribution
124177
125178## Backup Storage  
126179
@@ -139,10 +192,13 @@ Backups are organized as follows:
139192
140193## Monitoring  
141194
142- -  View backup job status in the web interface
143- -  Check container health: ` docker healthcheck github-backup ` 
144- -  Monitor logs: ` docker logs github-backup ` 
145- -  Logs are also available in ` /app/logs/ `  directory
195+ -  ** Web Interface** : Real-time backup job status and repository management
196+ -  ** Dashboard** : Visual overview of repository count, active repos, and job statistics  
197+ -  ** Job History** : Complete backup job history with timestamps and status
198+ -  ** Container Health** : ` docker healthcheck github-backup ` 
199+ -  ** Application Logs** : ` docker logs github-backup ` 
200+ -  ** Persistent Logs** : Available in ` /app/logs/ `  directory inside container
201+ -  ** Health Endpoint** : ` GET /health `  returns JSON status for external monitoring
146202
147203## Contributing  
148204
0 commit comments