Merging dev into main
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import os
|
||||
import subprocess
|
||||
import signal
|
||||
import time
|
||||
import sys
|
||||
import psutil
|
||||
import platform
|
||||
|
||||
APP_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../app.py"))
|
||||
|
||||
DEBUG = True
|
||||
|
||||
def log(msg):
|
||||
if DEBUG:
|
||||
print(msg)
|
||||
|
||||
def start_dev():
|
||||
env = os.environ.copy()
|
||||
env["PRODUCTION"] = "false"
|
||||
|
||||
if platform.system() == "Windows":
|
||||
return subprocess.Popen(
|
||||
["python", APP_PATH],
|
||||
env=env,
|
||||
stdout=sys.stdout,
|
||||
stderr=sys.stderr
|
||||
)
|
||||
else:
|
||||
return subprocess.Popen(
|
||||
["python3", APP_PATH],
|
||||
env=env,
|
||||
preexec_fn=os.setsid,
|
||||
stdout=sys.stdout,
|
||||
stderr=sys.stderr
|
||||
)
|
||||
|
||||
def stop_by_port(port=5000):
|
||||
for proc in psutil.process_iter(["pid", "name"]):
|
||||
try:
|
||||
for conn in proc.net_connections(kind="inet"):
|
||||
if conn.laddr.port == port:
|
||||
log(f"[*] Killing process {proc.pid} using port {port}")
|
||||
if platform.system() == "Windows":
|
||||
proc.terminate()
|
||||
try:
|
||||
proc.wait(timeout=5)
|
||||
except psutil.TimeoutExpired:
|
||||
proc.kill()
|
||||
else:
|
||||
os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
|
||||
return
|
||||
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
||||
continue
|
||||
log(f"[!] No process found using port {port}")
|
||||
|
||||
def main():
|
||||
log("[*] Restarting PacCrypt in DEVELOPMENT mode...")
|
||||
stop_by_port()
|
||||
time.sleep(2)
|
||||
proc = start_dev()
|
||||
if proc:
|
||||
log(f"[*] Started development server with PID {proc.pid}")
|
||||
try:
|
||||
proc.wait()
|
||||
except KeyboardInterrupt:
|
||||
log("[*] Interrupted, stopping server...")
|
||||
stop_by_port()
|
||||
else:
|
||||
log("[!] Failed to start development server")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,66 @@
|
||||
import os
|
||||
import subprocess
|
||||
import signal
|
||||
import time
|
||||
import sys
|
||||
import psutil
|
||||
import platform
|
||||
|
||||
APP_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../app.py"))
|
||||
|
||||
def start_prod():
|
||||
env = os.environ.copy()
|
||||
env["PRODUCTION"] = "true"
|
||||
|
||||
if platform.system() == "Windows":
|
||||
return subprocess.Popen(
|
||||
["python", APP_PATH],
|
||||
env=env,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL
|
||||
)
|
||||
else:
|
||||
return subprocess.Popen(
|
||||
["python3", APP_PATH],
|
||||
env=env,
|
||||
preexec_fn=os.setsid,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL
|
||||
)
|
||||
|
||||
def stop_by_port(port=5000):
|
||||
for proc in psutil.process_iter(["pid", "name"]):
|
||||
try:
|
||||
for conn in proc.net_connections(kind="inet"):
|
||||
if conn.laddr.port == port:
|
||||
print(f"[*] Killing process {proc.pid} using port {port}")
|
||||
if platform.system() == "Windows":
|
||||
proc.terminate()
|
||||
try:
|
||||
proc.wait(timeout=5)
|
||||
except psutil.TimeoutExpired:
|
||||
proc.kill()
|
||||
else:
|
||||
os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
|
||||
return
|
||||
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
||||
continue
|
||||
print(f"[!] No process found using port {port}")
|
||||
|
||||
def main():
|
||||
print("[*] Restarting PacCrypt in PRODUCTION mode with Waitress...")
|
||||
stop_by_port()
|
||||
time.sleep(2)
|
||||
proc = start_prod()
|
||||
if proc:
|
||||
print(f"[*] Started production server with PID {proc.pid}")
|
||||
try:
|
||||
proc.wait()
|
||||
except KeyboardInterrupt:
|
||||
print("[*] Interrupted, stopping server...")
|
||||
stop_by_port()
|
||||
else:
|
||||
print("[!] Failed to start production server")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,40 @@
|
||||
import os
|
||||
import subprocess
|
||||
import time
|
||||
import sys
|
||||
import platform
|
||||
|
||||
APP_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../app.py"))
|
||||
|
||||
DEBUG = True
|
||||
|
||||
def log(msg):
|
||||
if DEBUG:
|
||||
print(msg)
|
||||
|
||||
def start_dev():
|
||||
env = os.environ.copy()
|
||||
env["PRODUCTION"] = "false"
|
||||
|
||||
if platform.system() == "Windows":
|
||||
return subprocess.Popen(
|
||||
["python", APP_PATH],
|
||||
env=env,
|
||||
stdout=sys.stdout,
|
||||
stderr=sys.stderr
|
||||
)
|
||||
else:
|
||||
return subprocess.Popen(
|
||||
["python3", APP_PATH],
|
||||
env=env,
|
||||
preexec_fn=os.setsid,
|
||||
stdout=sys.stdout,
|
||||
stderr=sys.stderr
|
||||
)
|
||||
|
||||
def main():
|
||||
log("[*] Starting PacCrypt in DEVELOPMENT mode...")
|
||||
start_dev()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,34 @@
|
||||
import os
|
||||
import subprocess
|
||||
import time
|
||||
import sys
|
||||
import platform
|
||||
|
||||
APP_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../app.py"))
|
||||
|
||||
def start_prod():
|
||||
env = os.environ.copy()
|
||||
env["PRODUCTION"] = "true"
|
||||
|
||||
if platform.system() == "Windows":
|
||||
return subprocess.Popen(
|
||||
["python", APP_PATH],
|
||||
env=env,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL
|
||||
)
|
||||
else:
|
||||
return subprocess.Popen(
|
||||
["python3", APP_PATH],
|
||||
env=env,
|
||||
preexec_fn=os.setsid,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL
|
||||
)
|
||||
|
||||
def main():
|
||||
print("[*] Starting PacCrypt in PRODUCTION mode with Waitress...")
|
||||
start_prod()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,35 @@
|
||||
import psutil
|
||||
import os
|
||||
import signal
|
||||
import platform
|
||||
|
||||
DEBUG = True
|
||||
|
||||
def log(msg):
|
||||
if DEBUG:
|
||||
print(msg)
|
||||
|
||||
def stop_by_port(port=5000):
|
||||
for proc in psutil.process_iter(["pid", "name"]):
|
||||
try:
|
||||
for conn in proc.net_connections(kind="inet"):
|
||||
if conn.laddr.port == port:
|
||||
log(f"[*] Killing process {proc.pid} using port {port}")
|
||||
if platform.system() == "Windows":
|
||||
proc.terminate()
|
||||
try:
|
||||
proc.wait(timeout=5)
|
||||
except psutil.TimeoutExpired:
|
||||
proc.kill()
|
||||
else:
|
||||
os.killpg(os.getpgid(proc.pid), signal.SIGTERM)
|
||||
return
|
||||
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
|
||||
continue
|
||||
log(f"[!] No process found using port {port}")
|
||||
|
||||
def main():
|
||||
stop_by_port()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,26 @@
|
||||
### **requirements.txt**
|
||||
|
||||
# Core Flask stack
|
||||
flask
|
||||
flask-cors
|
||||
waitress
|
||||
werkzeug
|
||||
|
||||
# Encryption engines
|
||||
cryptography
|
||||
pycryptodome
|
||||
pqcrypto
|
||||
|
||||
# Utility
|
||||
psutil
|
||||
|
||||
# Security and rate limiting
|
||||
flask-limiter
|
||||
clamd
|
||||
ipaddress
|
||||
|
||||
# TOTP for 2FA
|
||||
pyotp
|
||||
qrcode
|
||||
|
||||
# Run pip install -r application_data/requirements.txt
|
||||
Reference in New Issue
Block a user