Merge pull request #173 from apache:fix-django-dockerfile

Fix the Django Dockerfile
tree: fabcf6d13310ab05bcbd9bb109304f95cf022d6a
  1. airavata_custos_portal/
  2. public/
  3. src/
  4. .dockerignore
  5. .env
  6. .gitignore
  7. .nvmrc
  8. 1
  9. babel.config.js
  10. docker-compose.yml
  11. Dockerfile
  12. entrypoint.sh
  13. LICENSE
  14. manage.py
  15. nginx.conf
  16. package.json
  17. README.md
  18. requirements.txt
  19. setup.cfg
  20. setup.py
  21. vue.config.js
  22. yarn-error.log
  23. yarn.lock
README.md

Airavata Custos Portal

How to use

Airavat custos portal is available as a python package to install and customise for tenants needs. The forllowing instructions are for setting up a customised portal using all the features available in the airavata custos portal.

  1. Install
pip install airavata-custos-portal
  1. Create a Django app
django-admin startproject my_first_custos_app .
cd my_first_custos_app
django-admin startapp apps
cd apps
django-admin startapp frontend
  1. Include the custos portal api and frontend in the urls.
# my_first_custos_app/apps/frontend/urls.py 

from django.contrib import admin
from django.urls import path
from django.conf.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path("api/", include("airavata_custos_portal.apps.api.urls")),
    path("", include("airavata_custos_portal.apps.frontend.urls")),
]
  1. Also, include the custom UI app in the urls.
# my_first_custos_app/apps/frontend/urls.py 

from django.contrib import admin
from django.urls import path
from django.conf.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path("api/", include("airavata_custos_portal.apps.api.urls")),
    path("", include("airavata_custos_portal.apps.frontend.urls")),
    path("custom-ui/", include("my_first_custos_app.my_custom_ui.urls")),
]

Development

The application consists of a Vue.js frontend and a Django based backend. The instructions below are for setting up the local setup for development.

Change the configurations

Change the environment variables on .env

Run Vue.js app

yarn install
yarn serve

Lints and fixes files

yarn lint

Running the Django server locally

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd airavata_custos_portal/
./manage.py migrate
./manage.py runserver

And then point to http://localhost:8000

How to publish

  1. Build the static files
yarn build
  1. Build the python package
python -m pip install --upgrade build
python -m build
  1. Publish the python package to pypi.org. Optionally can push to test.pypi.org. See https://packaging.python.org/tutorials/packaging-projects/ for more info.
python -m pip install --upgrade twine
python -m twine upload dist/*