euler314 commited on
Commit
fd92017
·
verified ·
1 Parent(s): e614414

Rename app.py to app.py\

Browse files
Files changed (1) hide show
  1. app.py → app.py// +47 -10
app.py → app.py// RENAMED
@@ -171,7 +171,25 @@ def create_drive_folder(drive_service, name):
171
  def setup_dependencies():
172
  """Install required system dependencies"""
173
  try:
174
- # Install system dependencies
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
175
  subprocess.run(['apt-get', 'update', '-y'], check=True)
176
  packages = [
177
  'libnss3', 'libnss3-tools', 'libnspr4', 'libatk1.0-0',
@@ -181,12 +199,9 @@ def setup_dependencies():
181
  ]
182
  subprocess.run(['apt-get', 'install', '-y', '--no-install-recommends'] + packages, check=True)
183
 
184
- # Install Python packages
185
- subprocess.run(['pip', 'install', 'playwright', 'pyppeteer', 'splash', 'celery[redis]', 'mitmproxy'], check=True)
186
-
187
- # Install browsers
188
- subprocess.run(['python3', '-m', 'playwright', 'install', 'chromium'], check=True)
189
- subprocess.run(['python3', '-m', 'pyppeteer', 'install'], check=True)
190
 
191
  st.success("Dependencies installed successfully!")
192
  return True
@@ -201,10 +216,32 @@ def check_services():
201
  """Check if required services are running"""
202
  try:
203
  # Check Redis for Celery
204
- redis_running = subprocess.run(['redis-cli', 'ping'], capture_output=True, text=True).stdout.strip() == 'PONG'
 
 
 
 
 
 
 
205
  if not redis_running:
206
- # Try to start Redis
207
- subprocess.run(['service', 'redis-server', 'start'], check=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
 
209
  # Create directories for intercepted data
210
  os.makedirs(NETWORK_INTERCEPTOR_CONFIG['intercept_folder'], exist_ok=True)
 
171
  def setup_dependencies():
172
  """Install required system dependencies"""
173
  try:
174
+ # Check if browsers are already installed instead of installing them
175
+ if os.path.exists(os.path.join(os.environ.get('PLAYWRIGHT_BROWSERS_PATH', ''), 'chromium-1045')):
176
+ logger.info("Playwright browsers already installed, skipping installation")
177
+ installed = True
178
+ else:
179
+ # Only try to install browsers if they don't exist already
180
+ try:
181
+ subprocess.run(['python3', '-m', 'playwright', 'install', 'chromium'],
182
+ check=True, env=os.environ)
183
+ installed = True
184
+ except subprocess.CalledProcessError as e:
185
+ logger.warning(f"Could not install browsers: {e}")
186
+ installed = False
187
+
188
+ # Skip system dependency installation in container environment
189
+ if os.path.exists('/.dockerenv'):
190
+ return installed
191
+
192
+ # System packages installation
193
  subprocess.run(['apt-get', 'update', '-y'], check=True)
194
  packages = [
195
  'libnss3', 'libnss3-tools', 'libnspr4', 'libatk1.0-0',
 
199
  ]
200
  subprocess.run(['apt-get', 'install', '-y', '--no-install-recommends'] + packages, check=True)
201
 
202
+ # Install Python packages - only if not in Docker
203
+ if not os.path.exists('/.dockerenv'):
204
+ subprocess.run(['pip', 'install', 'playwright', 'pyppeteer', 'splash', 'celery[redis]', 'mitmproxy'], check=True)
 
 
 
205
 
206
  st.success("Dependencies installed successfully!")
207
  return True
 
216
  """Check if required services are running"""
217
  try:
218
  # Check Redis for Celery
219
+ redis_running = False
220
+ try:
221
+ redis_running = subprocess.run(['redis-cli', 'ping'],
222
+ capture_output=True,
223
+ text=True).stdout.strip() == 'PONG'
224
+ except Exception:
225
+ pass
226
+
227
  if not redis_running:
228
+ # Try to start Redis as a non-root user
229
+ try:
230
+ if os.path.exists('/etc/redis/redis.conf'):
231
+ # Custom Redis config for non-root
232
+ subprocess.run(['redis-server', '/etc/redis/redis.conf'],
233
+ check=False,
234
+ stdout=subprocess.DEVNULL,
235
+ stderr=subprocess.DEVNULL)
236
+ else:
237
+ # Fallback to basic Redis without custom config
238
+ subprocess.run(['redis-server', '--daemonize', 'yes'],
239
+ check=False,
240
+ stdout=subprocess.DEVNULL,
241
+ stderr=subprocess.DEVNULL)
242
+ except Exception as e:
243
+ logger.warning(f"Could not start Redis: {e}")
244
+ st.warning("Redis service could not be started. Celery tasks will not work properly.")
245
 
246
  # Create directories for intercepted data
247
  os.makedirs(NETWORK_INTERCEPTOR_CONFIG['intercept_folder'], exist_ok=True)