diff --git a/src/.env b/src/.env index cc7428c3..d5b3354c 100644 --- a/src/.env +++ b/src/.env @@ -68,7 +68,6 @@ MONGO_INITDB_DATABASE=chatDB # ElastricSearch & Kibana ELASTIC_PORT=9200 -ELASTIC_PASSWORD=+bAf9ynghd3*Y7L6qFQi KIBANA_PORT=5601 # JWT @@ -77,3 +76,7 @@ REFRESH_TOKEN_SECRET=kickzo_refresh_token_secret # Hash HASH_ROUNDS=10 + +#AWS ACCESS, SECRET KEY +AWS_ACCESS_KEY=AKIAXXXXXXXXXXXXXXXX +AWS_SECRET_KEY=wJalrXXXXXXXXXXXXXX \ No newline at end of file diff --git a/src/backend/main-server/main/.env b/src/backend/main-server/main/.env new file mode 100644 index 00000000..ccdcd6b3 --- /dev/null +++ b/src/backend/main-server/main/.env @@ -0,0 +1,2 @@ +AWS_ACCESS_KEY=AKIAXXXXXXXXXXXXXXXX +AWS_SECRET_KEY=wJalrXXXXXXXXXXXXXX \ No newline at end of file diff --git a/src/backend/main-server/main/build.gradle b/src/backend/main-server/main/build.gradle index b6080723..53a14bec 100644 --- a/src/backend/main-server/main/build.gradle +++ b/src/backend/main-server/main/build.gradle @@ -24,6 +24,7 @@ repositories { } dependencies { + implementation 'io.github.dnovitski:logback-awslogs-appender:1.7.2' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-registry-prometheus' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' diff --git a/src/backend/main-server/main/docker-compose.yml b/src/backend/main-server/main/docker-compose.yml index b2bbfd98..6fe5844b 100644 --- a/src/backend/main-server/main/docker-compose.yml +++ b/src/backend/main-server/main/docker-compose.yml @@ -14,7 +14,7 @@ services: SPRING_DATASOURCE_USERNAME: ${MYSQL_USER} SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD} SPRING_ELASTICSEARCH_URIS: http://elasticsearch:9200 - SPRING_ELASTICSEARCH_USERNAME: kickzo + SPRING_ELASTICSEARCH_USERNAME: elastic SPRING_ELASTICSEARCH_PASSWORD: test123 SPRING_APPLICATION_NAME: main depends_on: @@ -32,7 +32,8 @@ services: - xpack.security.enabled=true - bootstrap.memory_lock=true # 메모리 잠금 활성화 - ES_JAVA_OPTS=-Xms512m -Xmx512m # Elasticsearch JVM 메모리 설정 - - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} + - ELASTIC_USERNAME=elastic + - ELASTIC_PASSWORD=test123 volumes: - es-data:/usr/share/elasticsearch/data - ./elasticsearch-init.sh:/usr/share/elasticsearch/init.sh diff --git a/src/backend/main-server/main/elasticsearch-init.sh b/src/backend/main-server/main/elasticsearch-init.sh index 111a2420..41970114 100644 --- a/src/backend/main-server/main/elasticsearch-init.sh +++ b/src/backend/main-server/main/elasticsearch-init.sh @@ -1,31 +1,36 @@ #!/bin/sh echo "⏳ Waiting for Elasticsearch to be ready..." -until curl -s -u elastic:${ELASTIC_PASSWORD} "http://localhost:9200/_cluster/health" | grep -q '"status":"green"\|"status":"yellow"'; do +until curl -s -u elastic:test123 "http://localhost:9200/_cluster/health" | grep -q '"status":"green"\|"status":"yellow"'; do sleep 5 done -echo "✅ Elasticsearch is ready. Creating user and roles..." +echo "✅ Elasticsearch is ready. Creating and roles..." # kickzo_role 생성 curl -X PUT "http://localhost:9200/_security/role/kickzo_role" \ -H "Content-Type: application/json" \ --u elastic:${ELASTIC_PASSWORD} \ +-u elastic:test123 \ -d '{ "cluster": ["all"], "indices": [ { "names": [".kibana*", ".kibana_task_manager*"], - "privileges": ["create_index", "manage", "all"], + "privileges": ["auto_configure", "create_index", "manage", "all"], "allow_restricted_indices": true - } + }, + { + "names": [".fleet*", ".fleet-enrollment-api-keys"], + "privileges": ["auto_configure", "create_index", "manage", "all"], + "allow_restricted_indices": true + } ] }' # kickzo 사용자 생성 또는 업데이트 curl -X PUT "http://localhost:9200/_security/user/kickzo" \ -H "Content-Type: application/json" \ --u elastic:${ELASTIC_PASSWORD} \ +-u elastic:test123 \ -d '{ "password": "test123", "roles": ["superuser", "kickzo_role"] diff --git a/src/backend/main-server/main/kibana.yml b/src/backend/main-server/main/kibana.yml new file mode 100644 index 00000000..4187b27a --- /dev/null +++ b/src/backend/main-server/main/kibana.yml @@ -0,0 +1,8 @@ +server.port: 5601 +server.host: "0.0.0.0" + +elasticsearch.hosts: ["http://elasticsearch:9200"] +elasticsearch.username: "kickzo" +elasticsearch.password: "test123" + +xpack.security.enabled: true \ No newline at end of file diff --git a/src/backend/main-server/main/src/main/java/com/kickzo/main/MainApplication.java b/src/backend/main-server/main/src/main/java/com/kickzo/main/MainApplication.java index 767c1d05..6bbf5032 100644 --- a/src/backend/main-server/main/src/main/java/com/kickzo/main/MainApplication.java +++ b/src/backend/main-server/main/src/main/java/com/kickzo/main/MainApplication.java @@ -4,12 +4,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; +import lombok.extern.slf4j.Slf4j; + +@Slf4j @SpringBootApplication -@EnableElasticsearchRepositories +@EnableElasticsearchRepositories(basePackages = "com.kickzo.main") public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); } - } diff --git a/src/backend/main-server/main/src/main/java/com/kickzo/main/controller/RoomController.java b/src/backend/main-server/main/src/main/java/com/kickzo/main/controller/RoomController.java index f2774d6e..581ba38f 100644 --- a/src/backend/main-server/main/src/main/java/com/kickzo/main/controller/RoomController.java +++ b/src/backend/main-server/main/src/main/java/com/kickzo/main/controller/RoomController.java @@ -65,7 +65,7 @@ public ResponseEntity savePlaylist( @RequestHeader(value = "x-user-id") Long userId, @RequestBody RoomPlaylistRequestDto playlistRequestDto) { Long roomId = playlistRequestDto.getRoomId(); - List playlistItems = playlistRequestDto.getPlaylistJson(); + List playlistItems = playlistRequestDto.getPlaylist(); log.info("Saving playlist for room: {}, playlist: {}", roomId, playlistItems); roomUserService.checkAccessRole(userId, roomId); playlistService.savePlaylist(roomId, playlistItems); diff --git a/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/event/PlaylistUpdateEvent.java b/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/event/PlaylistUpdateEvent.java index 74d3c288..0f41df95 100644 --- a/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/event/PlaylistUpdateEvent.java +++ b/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/event/PlaylistUpdateEvent.java @@ -13,5 +13,5 @@ @NoArgsConstructor public class PlaylistUpdateEvent { private Long roomId; - private List playlistJson; + private List playlist; } diff --git a/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/request/RoomPlaylistRequestDto.java b/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/request/RoomPlaylistRequestDto.java index 2a052975..c2ee0fcf 100644 --- a/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/request/RoomPlaylistRequestDto.java +++ b/src/backend/main-server/main/src/main/java/com/kickzo/main/dto/request/RoomPlaylistRequestDto.java @@ -9,5 +9,5 @@ @Data public class RoomPlaylistRequestDto { private Long roomId; - private List playlistJson; + private List playlist; } diff --git a/src/backend/main-server/main/src/main/java/com/kickzo/main/service/KafkaProducerService.java b/src/backend/main-server/main/src/main/java/com/kickzo/main/service/KafkaProducerService.java index 40e775f4..93c22a57 100644 --- a/src/backend/main-server/main/src/main/java/com/kickzo/main/service/KafkaProducerService.java +++ b/src/backend/main-server/main/src/main/java/com/kickzo/main/service/KafkaProducerService.java @@ -52,8 +52,8 @@ public void sendRoomUserInfo(Long roomId, UserInfoDto userInfo) { sendEvent(TOPIC_ROOM, EVENT_TYPE_USER_JOIN, event); } - public void sendPlaylistUpdate(Long roomId, List playlistJson) { - PlaylistUpdateEvent event = new PlaylistUpdateEvent(roomId, playlistJson); + public void sendPlaylistUpdate(Long roomId, List playlist) { + PlaylistUpdateEvent event = new PlaylistUpdateEvent(roomId, playlist); sendEvent(TOPIC_PLAYLIST, EVENT_TYPE_PLAYLIST_UPDATE, event); } diff --git a/src/backend/main-server/main/src/main/resources/application-dev.properties b/src/backend/main-server/main/src/main/resources/application-dev.properties index ef964fd0..bcc14124 100644 --- a/src/backend/main-server/main/src/main/resources/application-dev.properties +++ b/src/backend/main-server/main/src/main/resources/application-dev.properties @@ -9,5 +9,7 @@ spring.data.redis.port=7003 spring.data.redis.timeout=60000 spring.elasticsearch.uris=http://localhost:9200 +spring.elasticsearch.username=elastic +spring.elasticsearch.password=test123 spring.elasticsearch.connection-timeout=10s spring.elasticsearch.socket-timeout=30s \ No newline at end of file diff --git a/src/backend/main-server/main/src/main/resources/application-docker.properties b/src/backend/main-server/main/src/main/resources/application-docker.properties index 6a02889c..4df4b1cb 100644 --- a/src/backend/main-server/main/src/main/resources/application-docker.properties +++ b/src/backend/main-server/main/src/main/resources/application-docker.properties @@ -9,5 +9,7 @@ spring.data.redis.port=6379 spring.data.redis.timeout=60000 spring.elasticsearch.uris=http://elasticsearch:9200 +spring.elasticsearch.username=elastic +spring.elasticsearch.password=test123 spring.elasticsearch.connection-timeout=20s spring.elasticsearch.socket-timeout=60s \ No newline at end of file diff --git a/src/backend/main-server/main/src/main/resources/logback.xml b/src/backend/main-server/main/src/main/resources/logback.xml new file mode 100644 index 00000000..ba195308 --- /dev/null +++ b/src/backend/main-server/main/src/main/resources/logback.xml @@ -0,0 +1,38 @@ + + + + + + + [%thread] [%date] [%level] [%file:%line] - %msg%n + + kickzo-logs + kickzo-log + ap-northeast-1 + 50 + 30000 + 5000 + 0 + ${AWS_ACCESS_KEY} + ${AWS_SECRET_KEY} + + + + + + ${CONSOLE_LOG_PATTERN} + + + + + + + + + + + + + + + \ No newline at end of file