3 Commits

Author SHA1 Message Date
0fc95d0eb1 feat: Start on packaging for windows
All checks were successful
Build Docker / Build Image (push) Successful in 44s
2025-02-05 13:03:57 +11:00
65eedff61c Merge branch 'dev' for v1.3
All checks were successful
Build Docker / Build Image (push) Successful in 45s
2025-02-05 12:04:48 +11:00
461e2cdbe9 Merge branch 'dev'
All checks were successful
Build Docker / Build Image (push) Successful in 38s
2025-02-04 15:35:41 +11:00
5 changed files with 92 additions and 44 deletions

2
.gitignore vendored
View File

@@ -14,5 +14,5 @@ plugins/signatures.json
user_data/ user_data/
customPlugins/ customPlugins/
cache/ cache/
build/
dist/ dist/
build/

View File

@@ -1613,4 +1613,4 @@ if __name__ == '__main__':
if "--debug" in sys.argv: if "--debug" in sys.argv:
app.run(debug=True,host='0.0.0.0') app.run(debug=True,host='0.0.0.0')
else: else:
app.run(host='0.0.0.0') app.run(host='0.0.0.0',threaded=True)

63
main.spec Normal file
View File

@@ -0,0 +1,63 @@
# -*- mode: python ; coding: utf-8 -*-
import compileall
from PyInstaller.utils.hooks import collect_data_files
import os
compileall.compile_dir('.', force=True)
datas = [
('templates', 'templates'),
('assets', 'assets'),
('themes', 'themes'),
('plugins', 'plugins')
]
hiddenimports = [
'plugins.automations',
'plugins.batching',
'plugins.customPlugins',
'plugins.renewal',
'plugins.varo'
]
# Copy the plugins folder to the dist folder
os.system(f'cp -r plugins dist/')
a = Analysis(
['main.py'],
pathex=[],
binaries=[],
datas=datas,
hiddenimports=hiddenimports,
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='FireWallet',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
onefile=False,
)

View File

@@ -9,4 +9,3 @@ requests-doh
Flask-QRcode Flask-QRcode
PySocks PySocks
python-git-info python-git-info
waitress

View File

@@ -1,15 +1,11 @@
import os from flask import Flask
import sys
import platform
from main import app from main import app
from waitress import serve import main
from gunicorn.app.base import BaseApplication
import os
threads = 4 class GunicornApp(BaseApplication):
def gunicornServer():
from gunicorn.app.base import BaseApplication
class GunicornApp(BaseApplication):
def __init__(self, app, options=None): def __init__(self, app, options=None):
self.options = options or {} self.options = options or {}
self.application = app self.application = app
@@ -22,31 +18,21 @@ def gunicornServer():
def load(self): def load(self):
return self.application return self.application
if __name__ == '__main__':
workers = 1
threads = 2
if workers is None:
workers = 1
if threads is None:
threads = 2
workers = int(workers)
threads = int(threads)
options = { options = {
'bind': '0.0.0.0:5000', 'bind': '0.0.0.0:5000',
'workers': 2, 'workers': workers,
'threads': threads, 'threads': threads,
} }
gunicorn_app = GunicornApp(app, options) gunicorn_app = GunicornApp(app, options)
print(f'Starting server with Gunicorn on {platform.system()} with {threads} threads...', flush=True) print('Starting server with ' + str(workers) + ' workers and ' + str(threads) + ' threads', flush=True)
gunicorn_app.run() gunicorn_app.run()
if __name__ == '__main__':
# Check if --gunicorn is in the command line arguments
if "--gunicorn" in sys.argv:
gunicornServer()
sys.exit()
print(f'Starting server with Waitress on {platform.system()} with {threads} threads...', flush=True)
print(f'Press Ctrl+C to stop the server', flush=True)
print(f'Serving on http://0.0.0.0:5000/', flush=True)
serve(app, host="0.0.0.0", port=5000, threads=threads)