|
1 |
| -env |
| 1 | +# 최하하 웹사이트 |
| 2 | + |
| 3 | +### django로 만든 게시판 웹사이트 |
| 4 | + |
| 5 | +** [바로가기](choihaha.com) ** |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +### 개요 |
| 10 | +- 글을 작성하고 댓글을 달 수 있는 게시판 웹사이트 |
| 11 | +- 웹사이트의 컨셉과 디자인은 침착맨의 개인 사이트인 [침하하](chimhaha.net)에서 가져왔다 |
| 12 | +- 로그인, 좋아요 및 댓글, 프로필 설정, 게시글 정렬 및 검색 기능 등이 있다 |
| 13 | + |
| 14 | +### 기술 스택 |
| 15 | +- django (python)으로 웹 애플리케이션의 전반적인 로직 구현 |
| 16 | +- 데이터베이스로는 sqlite를 사용 |
| 17 | +- aws의 ec2 인스턴스로 서버를 만들었고 route53을 통해 dns 레코드를 구성함 |
| 18 | +- nginx 서버를 구성하였고 동적 요청을 처리하기 위한 wsgi서버로 gunicorn을 사용함 |
| 19 | +- google의 OAuth 2.0을 통한 로그인과 계정 연동 |
| 20 | + |
| 21 | +### 배운 점 |
| 22 | +- http 통신과 dns 등 네트워크 개념 |
| 23 | +- django 프레임워크 사용 방법과 model을 활용하여 게시판 구현 |
| 24 | +- 서버의 실행 환경 구축 방법 |
| 25 | +- aws의 다양한 서비스 사용 |
| 26 | + |
| 27 | +## 설치 및 사용 방법 |
| 28 | +### 초기 설정 |
| 29 | +1. ec2 ubuntu 인스턴스에 리포지토리 클론 |
| 30 | +``` bash |
| 31 | +git clone https://github.com/linklingj/choihaha.git |
| 32 | +``` |
| 33 | +2. 의존성 설치: python, django, markdown, pillow, python-decouple, djanog-allauth, google-auth |
| 34 | +```bash |
| 35 | +pip install django nginx markdown pillow python-decouple djanog-allauth google-auth |
| 36 | +``` |
| 37 | +3. .env 파일 설정: |
| 38 | +``` |
| 39 | +DJANGO_SECRET_KEY = "" |
| 40 | +GOOGLE_CLIENT_ID = "" |
| 41 | +GOOGLE_CLIENT_SECRET = "" |
| 42 | +REDIRECT_URI = "" |
| 43 | +``` |
| 44 | +4. service 파일 실행 |
| 45 | +``` bash |
| 46 | +/etc/systemd/system$ sudo systemctl start mysite.service |
| 47 | +``` |
| 48 | +### 유지 보수 |
| 49 | +- ngnix 설정 파일 경로: /etc/nginx/sites-available/mysite |
| 50 | +- service 파일 경로: /etc/systemd/system/mysite.service |
| 51 | +- venv 실행: ~/venvs/mysite.sh |
| 52 | +- 개발 환경에서는 ~/choihaha/mysite/config/settings/prod.py 설정 파일 사용 |
| 53 | +- 주기적 설정 |
| 54 | + 1. 도메인 구매: 24년 11월 기준 2년마다 |
| 55 | + 2. certbot을 사용한 도메인 ssl 인증서 발급: 24년 12월 기준 90일 유효 |
| 56 | + ``` bash |
| 57 | + sudo certbot --nginx -d choihaha.com |
| 58 | + ``` |
| 59 | + 3. google OAuth2 설정 최신화: [구글 클라우드 콘솔](https://console.cloud.google.com/) |
0 commit comments