k1nd0ne/VolWeb

CSRF_TRUSTED_ORIGINS Not Found During Configure

t0toto opened this issue · 2 comments

Hello,
When I was configuring the python environment, I encountered the following error

> python3 manage.py migrate
Traceback (most recent call last):
  File "/home/toto/desktop/VolWeb-2.0.0/manage.py", line 22, in <module>
    main()
  File "/home/toto/desktop/VolWeb-2.0.0/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/toto/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/home/toto/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 382, in execute
    settings.INSTALLED_APPS
  File "/home/toto/.local/lib/python3.10/site-packages/django/conf/__init__.py", line 102, in __getattr__
    self._setup(name)
  File "/home/toto/.local/lib/python3.10/site-packages/django/conf/__init__.py", line 89, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/toto/.local/lib/python3.10/site-packages/django/conf/__init__.py", line 217, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/toto/desktop/VolWeb-2.0.0/VolWeb/settings.py", line 27, in <module>
    CSRF_TRUSTED_ORIGINS = os.getenv("CSRF_TRUSTED_ORIGINS").split(" ")
AttributeError: 'NoneType' object has no attribute 'split'

Ubuntu was unable to obtain the CSRF_TRUSTED_ORIGINS

> echo $CSRF_TRUSTED_ORIGINS                    


My .env file has the following contents

#############VOLWEB PLATFORM INFORMATION#############
# Change with the fqdn or IP of your volweb instance

CSRF_TRUSTED_ORIGINS=https://192.168.145.129 # Change me
DJANGO_SECRET=toto # Change me

WEBSOCKET_URL=wss://192.168.145.129 # Change me

AWS_ENDPOINT_URL=https://192.168.145.129:9000 # Change me
AWS_ENDPOINT_HOST=192.168.145.129:9000 # Change me
AWS_REGION="" # Don't change me if you are using MinIO and not AWS

AWS_ACCESS_KEY_ID=user # Change me with the MINIO/AWS ACL
AWS_SECRET_ACCESS_KEY=password # Change me with the MINIO/AWS ACL

######################################################

#################VOLWEB DATABASE######################
POSTGRES_USER=volweb # Change me
POSTGRES_PASSWORD=volweb # Change me
POSTGRES_DB=volweb

DATABASE=postgres
DATABASE_HOST=volweb-postgresdb
DATABASE_PORT=5432
######################################################

BROKER_HOST=volweb-redis
BROKER_PORT=6379

I don't understand how docker configuration is added to python's venv variables.
Maybe I need to export CSRF_TRUSTED_ORIGINS?

I would really appreciate you helping me with this problem
I run the "VolWeb-2.0" version.
Thank you

Hello @t0toto, thank you for your interest in this project.

From what I understand you are trying to setup VolWeb for testing. When doing this your system needs to be aware of all of the env variable of docker/.env (this is because your are running the webserver and celery worker locally).

If you are testing VolWeb locally and not in production consider not using https in your configuration.

Learn more here: https://github.com/k1nd0ne/VolWeb/wiki/VolWeb-Documentation#-tutorial---deploying-volweb-on-a-local-computer-or-contributing

I am recommanding exporting them or even better edit your virtual environnement activate script to enable them every time:

Here is an example:

cd VolWeb
vim ./venv/bin/activate
export CSRF_TRUSTED_ORIGINS=https://192.168.145.129 # Change me
export  DJANGO_SECRET=toto # Change me

export  WEBSOCKET_URL=wss://192.168.145.129 # Change me

export  AWS_ENDPOINT_URL=https://192.168.145.129:9000 # Change me
export  AWS_ENDPOINT_HOST=192.168.145.129:9000 # Change me
export  AWS_REGION="" # Don't change me if you are using MinIO and not AWS

export  AWS_ACCESS_KEY_ID=user # Change me with the MINIO/AWS ACL
export  AWS_SECRET_ACCESS_KEY=password # Change me with the MINIO/AWS ACL

export  POSTGRES_USER=volweb # Change me
export  POSTGRES_PASSWORD=volweb # Change me
export  POSTGRES_DB=volweb

export  DATABASE=postgres
export  DATABASE_HOST=volweb-postgresdb
export  DATABASE_PORT=5432

export  BROKER_HOST=volweb-redis
export  BROKER_PORT=6379

Do you think this should be added in the documentation ?

Best regards.
Félix.