mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2025-12-31 00:09:58 -06:00
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Python startup script for TimeTracker
|
|
This avoids any shell script issues and runs everything in Python
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import time
|
|
import subprocess
|
|
|
|
def main():
|
|
print("=== Starting TimeTracker (Python Mode) ===")
|
|
|
|
# Set environment
|
|
os.environ['FLASK_APP'] = 'app'
|
|
os.chdir('/app')
|
|
|
|
print("Waiting for database to be ready...")
|
|
time.sleep(5) # Simple wait
|
|
|
|
print("Running SQL database initialization (for basic tables)...")
|
|
try:
|
|
subprocess.run([sys.executable, '/app/docker/init-database-sql.py'], check=True)
|
|
print("SQL database initialization completed")
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"SQL database initialization failed: {e}")
|
|
sys.exit(1)
|
|
|
|
print("Running main database initialization...")
|
|
try:
|
|
subprocess.run([sys.executable, '/app/docker/init-database.py'], check=True)
|
|
print("Database initialization completed")
|
|
except subprocess.CalledProcessError as e:
|
|
print(f"Database initialization failed: {e}")
|
|
sys.exit(1)
|
|
|
|
print("Starting application...")
|
|
# Start gunicorn
|
|
os.execv('/usr/local/bin/gunicorn', [
|
|
'gunicorn',
|
|
'--bind', '0.0.0.0:8080',
|
|
'--worker-class', 'eventlet',
|
|
'--workers', '1',
|
|
'--timeout', '120',
|
|
'app:create_app()'
|
|
])
|
|
|
|
if __name__ == '__main__':
|
|
main()
|