dev와 prod가 같은 Oracle ATP 인스턴스(_low vs _medium tier만 다름)를 공유하는 환경에서 dev/prod 양쪽 DaemonScheduler가 같은 daemon_config row를 폴링하면 같은 시점에 동일 채널 스캔이 발생 → YouTube 봇 감지 위험 증가. 수정: - application.yml: app.daemon.enabled (env DAEMON_ENABLED, 기본 true) - DaemonScheduler.run() 첫 줄에서 인스턴스 플래그 검사 후 차단 - dev/backend/.env에 DAEMON_ENABLED=false 설정 (이 커밋엔 미포함, 로컬만) 운영(OKE)은 env 미설정 → 기본 true로 정상 동작. dev(PM2)는 .env로 false → 스케줄러 자체가 동작 안 함. Refs: #275 #321
77 lines
2.1 KiB
YAML
77 lines
2.1 KiB
YAML
server:
|
|
port: 8000
|
|
|
|
spring:
|
|
threads:
|
|
virtual:
|
|
enabled: true
|
|
|
|
datasource:
|
|
url: jdbc:oracle:thin:@${ORACLE_DSN}
|
|
username: ${ORACLE_USER}
|
|
password: ${ORACLE_PASSWORD}
|
|
driver-class-name: oracle.jdbc.OracleDriver
|
|
hikari:
|
|
minimum-idle: 2
|
|
maximum-pool-size: 10
|
|
connection-timeout: 30000
|
|
idle-timeout: 600000
|
|
max-lifetime: 1800000
|
|
pool-name: TastebyHikariPool
|
|
connection-init-sql: "SELECT 1 FROM DUAL"
|
|
|
|
data:
|
|
redis:
|
|
host: ${REDIS_HOST:192.168.0.147}
|
|
port: ${REDIS_PORT:6379}
|
|
database: ${REDIS_DB:0}
|
|
timeout: 2000ms
|
|
|
|
jackson:
|
|
default-property-inclusion: non_null
|
|
property-naming-strategy: SNAKE_CASE
|
|
serialization:
|
|
write-dates-as-timestamps: false
|
|
|
|
app:
|
|
jwt:
|
|
secret: ${JWT_SECRET:tasteby-dev-secret-change-me}
|
|
expiration-days: 7
|
|
|
|
cors:
|
|
allowed-origins: http://localhost:3000,http://localhost:3001,https://www.tasteby.net,https://tasteby.net,https://dev.tasteby.net
|
|
|
|
oracle:
|
|
wallet-path: ${ORACLE_WALLET:}
|
|
|
|
oci:
|
|
compartment-id: ${OCI_COMPARTMENT_ID}
|
|
chat-endpoint: ${OCI_CHAT_ENDPOINT:https://inference.generativeai.us-ashburn-1.oci.oraclecloud.com}
|
|
embed-endpoint: ${OCI_GENAI_ENDPOINT:https://inference.generativeai.us-chicago-1.oci.oraclecloud.com}
|
|
chat-model-id: ${OCI_CHAT_MODEL_ID}
|
|
embed-model-id: ${OCI_EMBED_MODEL_ID:cohere.embed-v4.0}
|
|
|
|
google:
|
|
maps-api-key: ${GOOGLE_MAPS_API_KEY}
|
|
youtube-api-key: ${YOUTUBE_DATA_API_KEY}
|
|
client-id: ${GOOGLE_CLIENT_ID:635551099330-2l003d3ernjmkqavd4f6s78r8r405iml.apps.googleusercontent.com}
|
|
|
|
cache:
|
|
ttl-seconds: 600
|
|
|
|
daemon:
|
|
# 인스턴스 차원 스케줄러 활성화. dev/prod가 같은 DB를 공유하므로
|
|
# dev .env에 DAEMON_ENABLED=false를 설정해 dev 폴링을 끄고 prod만 동작시킨다.
|
|
enabled: ${DAEMON_ENABLED:true}
|
|
|
|
mybatis:
|
|
mapper-locations: classpath:mybatis/mapper/*.xml
|
|
config-location: classpath:mybatis/mybatis-config.xml
|
|
type-aliases-package: com.tasteby.domain
|
|
type-handlers-package: com.tasteby.config
|
|
|
|
logging:
|
|
level:
|
|
com.tasteby: DEBUG
|
|
com.tasteby.mapper: DEBUG
|