Spring boot
server:
base-url: localhost
fastapi-url: <http://localhost:8001>
spring:
servlet:
# file 업로드 관련 세팅 (명시적으로 설정 안할 시 Spring boot는 기본적으로 1MB로 설정됨)
multipart:
max-file-size: 10MB # 최대 파일 크기
max-request-size: 10MB # 최대 요청 크기
jpa:
open-in-view: false
defer-datasource-initialization: false
generate-ddl: false
hibernate:
ddl-auto: none # ddl 자동 작성 여부
properties:
hibernate:
format_sql: true # 하이버네이트가 실행한 SQL을 출력할 때 보기 좋게 정렬
use_sql_comments: true
show_sql: true # 하이버네이트가 실행한 SQL을 출력
jdbc:
batch_size: 100 # insert/update 쿼리를 원하는 개수만큼 모아서 DB에 날릴 수 있는 옵션
default_batch_fetch_size: 100
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver # DB 드라이버
url: jdbc:mysql://${server.base-url}:3306/nowdoboss?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true # 데이터베이스 URL
username: ENC(/u0+l2qNJvB7yNP4g9pITQ==) # 데이터베이스 계정명
password: ENC(8ZO2KjT7dEI3sWWMRNGIfg==) # 데이터베이스 계정 비밀번호
# data_테이블명.sql 관련 실행 setting (더미데이터)
# sql:
# init:
# mode: always
# data-locations:
# - 'classpath:/db/dummy/FOREIGN_KEY_CHECKS_0.sql'
# - 'classpath:/db/dummy/db_dump.sql'
# - 'classpath:/db/dummy/db_dump1.sql'
# - 'classpath:/db/dummy/db_dump2.sql'
# - 'classpath:/db/dummy/FOREIGN_KEY_CHECKS_1.sql'
# NoSQL setting
data:
# Redis setting
redis:
host: ${server.base-url}
port: 6379
# MongoDB setting
mongodb:
auto-index-creation: true
host: localhost
port: 27017
database: nowdoboss
# Java Mail Sender setting (Google Mail)
mail:
host: smtp.gmail.com
port: 587
username: ENC(9zcJxzMJjdfsV97O7BJQvAtUCYHyAV12FmzBkDqpDW8=)
password: ENC(bad9dzuo4Yv1McadA8EOSn13JEEl/6UeyvsknQfCXyQ=)
properties:
mail:
smtp:
auth: true
starttls:
enable: true
# Kafka setting
kafka:
bootstrap-servers: ${server.base-url}:9092, ${server.base-url}:9093, ${server.base-url}:9094
consumer:
group-id: NowDoBossGroup
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
properties:
spring:
json:
trusted:
packages: '*'
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
# flyway setting
flyway:
enabled: false # Flyway 비활성화
mvc:
async:
request-timeout: 3000000
# log 관리
logging:
level:
org.hibernate:
type.descriptor.sql: trace
org.hibernate.SQLQuery: debug
# jwt setting
jwt:
accessKey: ENC(s0vsxAuXmlzr6DjkUVLrlIS+MdTML5arOQyKWar2qbFPkVVJ1zZoR09t83GnhFYhzIvLDaD119HeajudDJS4GXxVTkd+M/zQ/q1ssX4aw00y+52LOysZk/q/I3T4a3zYmOxfYI4aCslih6D5TTl5rQnPeZV2rmjdJXAg1X7owfGsquBPnuUptjuKxteIdEjtFFp1SF9QZ/+TvWyYrlwH1Q==)
refreshKey: ENC(gE+DTAeZ7HD32Rd6u5HcfJu+bg4kgdULucqZWVJCbHG5q5SE53YWhNuQcSyE61MVF8Cow5idsgt1RoMi3w0ri7Bq57Fr6+m6qr5bi+kXL+nQOv/GWoPcj2DxteTB5izXHEp5fzC5uq1m8QrltRiQa1WfY8s1w6myZFWqPzn4S8FjoR/7/4oG7XU/Q/+HV1I0viF/51ziOKJFVn0nPAyMnQ==)
accessExpiration: PT420M # 420분 (PT420M)
refreshExpiration: PT10080M # 10080분 (7일) (PT10080M)
# firebase setting
app:
firebase-configuration-file: classpath:serviceAccountKey.json
firebase-bucket: ENC(kEjE5eNrPFCEldmd4VOt0mXnXI2qkPVNJIhOBdW8K60=)
firebase-project-id: nowdoboss
# OAUTH2.0 Setting
oauth:
kakao:
client-id: ENC(BXCwf0NtueMIhhv565w/js6mYPVy/ydnEixfuH4untZmrP3mi6qKEPCRUvPYZSTQ) # REST API 키
client-secret: ENC(Vt6Pop34W0MzRbM/vmr0uqASBu2KA78aqShRqWv7weGoNHzwkayNeCkxo11QeeTP) # 보안 -> Client Secret 키
redirect-uri: <http://$>{server.base-url}:5173/member/loading/kakao
scope:
- profile_nickname
- profile_image
- account_email
- name
naver:
client-id: ENC(+VjRqdSmB6m1Jvl1ZJGJRW+bTtY4tJNh123J0sHB4QU=)
client-secret: ENC(0BeyGmHNDHLJW5hudtEfpEpq+0hFiGaO)
redirect_uri: <http://$>{server.base-url}:5173/member/loading/naver
scope:
- nickname
- name
- email
- profile_image
google:
client_id: ENC(cDBVfDvLY03EnW9oNtZ9XqgVTS1otEDtR+jbK/4o2cK67zN1bWTfsX/bBJNwjKW3pP2iu0LzCLwG3LUVn8AJyZb5ENsfeN3DavnK+k0SeASHOTrlvZWPxA==)
client_secret: ENC(FEWnh24Bb7QzhYBqVbWowEN+fJkgt0qVchd8MVcwNBwdBl8oRKn9qIz7Ff22gtNI)
redirect_uri: <http://$>{server.base-url}:5173/member/loading/google
scope:
- profile
- email
server:
base-url: k10c208.p.ssafy.io
https-url: <https://k10c208.p.ssafy.io>
fastapi-url: <http://13.124.23.220:8000>
spring:
servlet:
# file 업로드 관련 세팅 (명시적으로 설정 안할 시 Spring boot는 기본적으로 1MB로 설정됨)
multipart:
max-file-size: 10MB # 최대 파일 크기
max-request-size: 10MB # 최대 요청 크기
jpa:
open-in-view: false
defer-datasource-initialization: false # flyway 관련 마이그레이션 이슈 -> false로 변경
generate-ddl: false
hibernate:
ddl-auto: none # ddl 자동 작성 여부
properties:
hibernate:
format_sql: true # 하이버네이트가 실행한 SQL을 출력할 때 보기 좋게 정렬
use_sql_comments: true
show_sql: true # 하이버네이트가 실행한 SQL을 출력
jdbc:
batch_size: 100 # insert/update 쿼리를 원하는 개수만큼 모아서 DB에 날릴 수 있는 옵션
default_batch_fetch_size: 100
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver # DB 드라이버
url: jdbc:mysql://${server.base-url}:3306/nowdoboss?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&zeroDateTimeBehavior=convertToNull&rewriteBatchedStatements=true # 데이터베이스 URL
username: ENC(CIv9gIlHdeV0RVfvISnt1Q==) # 데이터베이스 계정명
password: ENC(8JDguUr+RtTPfR+4re7EluKRxKLKmaLb) # 데이터베이스 계정 비밀번호
# NoSQL setting
data:
# Redis setting
redis:
host: ${server.base-url}
port: 6379
# MongoDB setting
mongodb:
host: ${server.base-url}
port: 27017
database: nowdoboss
# Java Mail Sender setting (Google Mail)
mail:
host: smtp.gmail.com
port: 587
username: ENC(9zcJxzMJjdfsV97O7BJQvAtUCYHyAV12FmzBkDqpDW8=)
password: ENC(bad9dzuo4Yv1McadA8EOSn13JEEl/6UeyvsknQfCXyQ=)
properties:
mail:
smtp:
auth: true
starttls:
enable: true
# Kafka setting
kafka:
bootstrap-servers: kafka-1:29092, kafka-2:29093, kafka-3:29094 # 도커에서 설정한 내부 서비스명으로 접근 (내부 네트워크 이용)
consumer:
group-id: NowDoBossGroup
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
properties:
spring:
json:
trusted:
packages: '*'
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
# flyway setting
flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: true
out-of-order: false
mvc:
async:
request-timeout: 3000000
# log 관리
logging:
level:
org.hibernate:
type.descriptor.sql: trace
org.hibernate.SQLQuery: debug
# jwt setting
jwt:
accessKey: ENC(s0vsxAuXmlzr6DjkUVLrlIS+MdTML5arOQyKWar2qbFPkVVJ1zZoR09t83GnhFYhzIvLDaD119HeajudDJS4GXxVTkd+M/zQ/q1ssX4aw00y+52LOysZk/q/I3T4a3zYmOxfYI4aCslih6D5TTl5rQnPeZV2rmjdJXAg1X7owfGsquBPnuUptjuKxteIdEjtFFp1SF9QZ/+TvWyYrlwH1Q==)
refreshKey: ENC(gE+DTAeZ7HD32Rd6u5HcfJu+bg4kgdULucqZWVJCbHG5q5SE53YWhNuQcSyE61MVF8Cow5idsgt1RoMi3w0ri7Bq57Fr6+m6qr5bi+kXL+nQOv/GWoPcj2DxteTB5izXHEp5fzC5uq1m8QrltRiQa1WfY8s1w6myZFWqPzn4S8FjoR/7/4oG7XU/Q/+HV1I0viF/51ziOKJFVn0nPAyMnQ==)
accessExpiration: PT420M # 420분 (PT420M)
refreshExpiration: PT10080M # 10080분 (7일) (PT10080M)
# firebase setting
app:
firebase-configuration-file: classpath:serviceAccountKey.json
firebase-bucket: ENC(kEjE5eNrPFCEldmd4VOt0mXnXI2qkPVNJIhOBdW8K60=)
firebase-project-id: nowdoboss
# OAUTH2.0 Setting
oauth:
kakao:
client-id: ENC(Er9vs53WOnigwpkw3PMICW6PwM0fN0m1xbjy9AIEqdSqyMhgFAKQkFnG2E1xxNFE) # REST API 키
client-secret: ENC(15fElLNo9a/0jmRDVVdspIQYQQemm1JLA6ZW8G28x8J1PgPsbsRgwdol46dAfuug) # 보안 -> Client Secret 키
redirect-uri: ${server.https-url}/member/loading/kakao
scope:
- profile_nickname
- profile_image
- account_email
# - name
naver:
client-id: ENC(+VjRqdSmB6m1Jvl1ZJGJRW+bTtY4tJNh123J0sHB4QU=)
client-secret: ENC(0BeyGmHNDHLJW5hudtEfpEpq+0hFiGaO)
redirect_uri: ${server.https-url}/member/loading/naver
scope:
- nickname
- name
- email
- profile_image
google:
client_id: ENC(cDBVfDvLY03EnW9oNtZ9XqgVTS1otEDtR+jbK/4o2cK67zN1bWTfsX/bBJNwjKW3pP2iu0LzCLwG3LUVn8AJyZb5ENsfeN3DavnK+k0SeASHOTrlvZWPxA==)
client_secret: ENC(FEWnh24Bb7QzhYBqVbWowEN+fJkgt0qVchd8MVcwNBwdBl8oRKn9qIz7Ff22gtNI)
redirect_uri: ${server.https-url}/member/loading/google
scope:
- profile
- email
React
# API URL settings for PJT
VITE_REACT_API_URL=http://localhost:8080/api/v1
# 카카오 맵 API 키
VITE_REACT_APP_KAKAOMAP_API_KEY=23e6ac283713cfc6d7967f461691b3f0
# 웹소켓 URL 설정
VITE_REACT_WS_URL=ws://localhost:8080/ws
# 클라이언트 기본 URL 설정
BASE_URL=/
# Firebase 설정
VITE_REACT_FIREBASE_API_KEY=AIzaSyB15gX6ROz46ojhJThVJhdNdgjnPO130Nk
VITE_REACT_FIREBASE_MESSAGING_SENDER_ID=88151658182
VITE_REACT_FIREBASE_APP_ID=1:88151658182:web:12ecd86a23bffa11a291c7
VITE_REACT_FIREBASE_MEASUREMENT_ID=G-6340LC2GSM
VITE_REACT_FIREBASE_VAPID_KEY=BHyCqnVZHrtKUz3je8uIGipOkfhqfQavkWqw0J5I9eDkleWimvxWrVn6CG2AC_BPXEtQvYqVfU66CXWGye5ifUQ
# API URL 설정
VITE_REACT_API_URL=https://k10c208.p.ssafy.io/api/v1
# 카카오 맵 API 키
VITE_REACT_APP_KAKAOMAP_API_KEY=e55da734c04c78fcc069c3dab68f3c1e
# 웹소켓 URL 설정
VITE_REACT_WS_URL=wss://k10c208.p.ssafy.io/ws
# 클라이언트 URL 설정
BASE_URL=/
# Firebase 설정
VITE_REACT_FIREBASE_API_KEY=AIzaSyB15gX6ROz46ojhJThVJhdNdgjnPO130Nk
VITE_REACT_FIREBASE_MESSAGING_SENDER_ID=88151658182
VITE_REACT_FIREBASE_APP_ID=1:88151658182:web:12ecd86a23bffa11a291c7
VITE_REACT_FIREBASE_MEASUREMENT_ID=G-6340LC2GSM
VITE_REACT_FIREBASE_VAPID_KEY=BHyCqnVZHrtKUz3je8uIGipOkfhqfQavkWqw0J5I9eDkleWimvxWrVn6CG2AC_BPXEtQvYqVfU66CXWGye5ifUQ
install_docker.sh
#!/bin/bash
# 기존 도커 패키지 제거 (이전 버전이 설치된 경우)
sudo apt-get remove docker docker-engine docker.io containerd runc
# 필수 패키지 설치
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
# 도커 GPG 키 추가
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 도커 저장소 추가
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 도커 설치
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# 도커 컴포즈 최신 버전 다운로드
sudo curl -L "<https://github.com/docker/compose/releases/latest/download/docker-compose-$>(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
# 도커 사용자 그룹에 현재 사용자 추가
sudo usermod -aG docker $USER
newgrp docker
sudo service docker restart
# 설치 확인
docker --version
docker-compose --version