Repository files navigation
pip install pipenv
pipenv install django django-environ djangorestframework psycopg2-binary django-cleanup channels channels-redis django-cors-headers djangorestframework-simplejwt drf-spectacular gunicorn daphne boto3 django-storages django-celery-beat
django-admin startproject server
개발, 프러덕션 환경을 분리하기 위해 settings.py를 base.py, development.py, production.py로 분리한다. 디렉토리 depth가 변경되었기 때문에 BASE_DIR 수정해야 한다.
베이스 코드에서는 SECRET_KEY를 랜덤 생성한다. 생성 후 base.env에 고정값으로 등록해야 함(프로젝트 리빌드 시 JWT SIGNING KEY가 변경되면서 token이 유효하지 않는 문제 발생할 수 있음)
third party 라이브러리 설정
STATIC & MEDIA & TEMLATES
static 폴더가 앱 내에 있는 경우 STATICFILE_DIRS 설정해야 함
env 설정
BASE_DIR에 env 폴더를 생성하고 base.env, development.env, production.env를 생성함
logging 설정링크
base.env LOGGING_NAME, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD, EMAIL_SUBJECT_PREFIX, EMAIL_LIST 변경 필요
docker-compose.yml 포트 및 이름 변경
env/dev.env, env/prod.env 환경 변수 설정
nginx.conf 도메인 이름 변경
deploy.yml 수정사항
github settings 에서 HOST, USERNAME, SSH_KEY 설정해야 함
script 에서 ec2 디렉토리 수정해야 함
env/development.env, env/production.env DB 설정값 변경
redis 설정
AWS S3 설정 추가
manage.py 수정 - `development.py로 runserver 실행
asgi.py 수정
websocket을 사용할 때만 구현하면 됨
예시 stream App 생성
Config(Middleware, Error, S3)
Mi : websocket 사용 시 Authorization 할당을 위한 middleware.py 커스텀 -> 사용 시 유저에 맞게 수정 필요
exceptions.py : 정의된 클래스를 사용하여 에러 정의함
exception_handler.py : 에러 핸들러임. base.py 에서 설정 필요
AWS S3 사용 시, production.py 내용 수정 필요함
email_template.html : 사용자 정의 필요
templates/admin/base_site.html : 관리자 페이지 favicon을 적용하기 위해 오버라이딩
You can’t perform that action at this time.