open5e-api icon indicating copy to clipboard operation
open5e-api copied to clipboard

How to build and self host?

Open tarasis opened this issue 1 year ago • 1 comments

Per title how to run and self host this?

I cloned the repo Set values in repo's .env I also put same values in

export SECRET_KEY=<blah>
export SERVER_NAME=<blah>

Then tried to run docker run 8920387e86e3 (its id)

but it crashes out that SECRET_KEY isn't set in .env

root@instance-20221204-1407:/srv/open5e-api# export SECRET_KEY=<blah>
root@instance-20221204-1407:/srv/open5e-api# export SERVER_NAME=<blah>
root@instance-20221204-1407:/srv/open5e-api# docker run 8920387e86e3
[2024-01-27 22:26:47 +0000] [1] [INFO] Starting gunicorn 21.2.0
[2024-01-27 22:26:47 +0000] [1] [INFO] Listening at: http://0.0.0.0:8888 (1)
[2024-01-27 22:26:47 +0000] [1] [INFO] Using worker: sync
[2024-01-27 22:26:47 +0000] [8] [INFO] Booting worker with pid: 8
[2024-01-27 22:26:47 +0000] [8] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker
    worker.init_process()
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 134, in init_process
    self.load_wsgi()
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
    self.wsgi = self.app.wsgi()
                ^^^^^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
                    ^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
    return self.load_wsgiapp()
           ^^^^^^^^^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
    return util.import_app(self.app_uri)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/gunicorn/util.py", line 371, in import_app
    mod = importlib.import_module(module)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/opt/services/open5e-api/server/wsgi.py", line 19, in <module>
    application = get_wsgi_application()
                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
    django.setup(set_prefix=False)
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/django/__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
                      ^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.local/share/virtualenvs/open5e-api-GCOA7Kjv/lib/python3.11/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/opt/services/open5e-api/server/settings.py", line 26, in <module>
    assert "SECRET_KEY" in os.environ, "Set SECRET_KEY in your .env file!"
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Set SECRET_KEY in your .env file!
[2024-01-27 22:26:47 +0000] [8] [INFO] Worker exiting (pid: 8)
[2024-01-27 22:26:47 +0000] [1] [ERROR] Worker (pid:8) exited with code 3
[2024-01-27 22:26:47 +0000] [1] [ERROR] Shutting down: Master
[2024-01-27 22:26:47 +0000] [1] [ERROR] Reason: Worker failed to boot.

Where should I be putting the .env file it's looking for? (I've tried sticking it into /root/.env but no go).

Contents of .env file

OPEN5E_DEBUG=True
SECRET_KEY=<blah>
SERVER_NAME=<blah>
CERTFILE=selfsigned.crt
KEYFILE=selfsigned.key

tarasis avatar Jan 27 '24 22:01 tarasis