2024-10-12 14:46:41 +02:00
|
|
|
import subprocess
|
|
|
|
import time
|
|
|
|
|
|
|
|
FILEBROWSER_PORT = 8181
|
|
|
|
filebrowser_process = None
|
|
|
|
|
|
|
|
def configure_filebrowser():
|
|
|
|
try:
|
|
|
|
subprocess.run('filebrowser config init', shell=True, check=True)
|
2024-10-21 11:03:33 +02:00
|
|
|
subprocess.run('filebrowser config set --auth.method=noauth', shell=True, check=True)
|
2024-10-12 14:46:41 +02:00
|
|
|
subprocess.run('filebrowser config set --baseurl /fileapp', shell=True, check=True)
|
|
|
|
subprocess.run('filebrowser config set --root /workspace', shell=True, check=True)
|
|
|
|
subprocess.run('filebrowser users add admin admin', shell=True, check=True)
|
|
|
|
print("File Browser configured successfully.")
|
|
|
|
return True
|
|
|
|
except subprocess.CalledProcessError as e:
|
|
|
|
print(f"Error configuring File Browser: {e}")
|
|
|
|
return False
|
|
|
|
|
|
|
|
def start_filebrowser():
|
|
|
|
global filebrowser_process
|
|
|
|
if filebrowser_process is None or filebrowser_process.poll() is not None:
|
|
|
|
filebrowser_process = subprocess.Popen(['filebrowser', '-r', '/workspace', '-a', '0.0.0.0', '-p', str(FILEBROWSER_PORT), '--baseurl', '/fileapp'])
|
|
|
|
time.sleep(2) # Give it a moment to start
|
|
|
|
return filebrowser_process.poll() is None
|
|
|
|
return False
|
|
|
|
|
|
|
|
def stop_filebrowser():
|
|
|
|
global filebrowser_process
|
|
|
|
if filebrowser_process and filebrowser_process.poll() is None:
|
|
|
|
filebrowser_process.terminate()
|
|
|
|
filebrowser_process.wait(timeout=10)
|
|
|
|
filebrowser_process = None
|
|
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
|
|
def get_filebrowser_status():
|
|
|
|
return 'running' if filebrowser_process and filebrowser_process.poll() is None else 'stopped'
|