fitpub/src/main/resources/application.yml
2026-01-01 23:48:05 +01:00

125 lines
3 KiB
YAML

spring:
application:
name: fitpub
# Default to dev profile if not specified
profiles:
active: ${SPRING_PROFILES_ACTIVE:dev}
# Datasource configuration is handled by Testcontainers in dev mode
# For production, set these via environment variables:
# - SPRING_DATASOURCE_URL
# - SPRING_DATASOURCE_USERNAME
# - SPRING_DATASOURCE_PASSWORD
datasource:
url: ${SPRING_DATASOURCE_URL:}
username: ${SPRING_DATASOURCE_USERNAME:}
password: ${SPRING_DATASOURCE_PASSWORD:}
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: true
use_sql_comments: true
show-sql: false
flyway:
enabled: true
baseline-on-migrate: true
locations: classpath:db/migration
schemas: public
validate-on-migrate: true
servlet:
multipart:
max-file-size: 50MB
max-request-size: 50MB
enabled: true
jackson:
serialization:
write-dates-as-timestamps: false
time-zone: UTC
# FitPub specific configuration
fitpub:
# Domain and URL configuration
domain: ${FITPUB_DOMAIN:localhost:8080}
base-url: ${FITPUB_BASE_URL:http://localhost:8080}
# ActivityPub federation settings
activitypub:
enabled: true
max-federation-retries: 3
request-timeout-seconds: 30
# Allow connections to private IPs (for local testing only - disable in production!)
allow-private-ips: ${FITPUB_ALLOW_PRIVATE_IPS:false}
# Federation protocol (http or https) - use http for local testing, https for production
federation-protocol: ${FITPUB_FEDERATION_PROTOCOL:https}
# Security settings
security:
jwt:
secret: ${JWT_SECRET:change-this-secret-key-in-production-must-be-at-least-32-characters-long}
expiration: 86400000 # 24 hours in milliseconds
# Registration settings
registration:
enabled: ${REGISTRATION_ENABLED:true}
# Storage settings
storage:
fit-files:
enabled: true
retention-days: 365
images:
path: ${FITPUB_IMAGES_PATH:${java.io.tmpdir}/fitpub/images}
tile-cache:
path: ${FITPUB_TILE_CACHE_PATH:${java.io.tmpdir}/fitpub/tiles}
# Image generation settings
image:
osm-tiles:
enabled: ${OSM_TILES_ENABLED:true}
# Weather API settings
weather:
enabled: ${WEATHER_ENABLED:false}
api-key: ${OPENWEATHERMAP_API_KEY:}
# Logging configuration
logging:
level:
root: INFO
org.operaton.fitpub: DEBUG
org.hibernate.SQL: DEBUG
org.hibernate.type.descriptor.sql.BasicBinder: TRACE
org.springframework.security: DEBUG
# Server configuration
server:
port: ${PORT:8080}
error:
include-message: always
include-binding-errors: always
# Actuator configuration
management:
endpoints:
web:
exposure:
include: health,info
base-path: /actuator
endpoint:
health:
show-details: when-authorized
probes:
enabled: true
health:
db:
enabled: true
diskspace:
enabled: true