YıldızPlace projesi SKY LAB: Yıldız Teknik Ünivresitesi Bilgisayar Bilimleri Kulübü web ekibi olan WEBLAB tarafından geliştirilen bir reddit r/place klonudur. Bu repository projenin backend kodlarını içermektedir, frontend kodları için diğer repositorylere göz atabilirsiniz.
YıldızPlace'e bu link üzerinden erişebilirsiniz: YıldızPlace
- Java 17
- Maven
- PostgreSQL
- Redis
- Docker (Docker ile kurulum için)
-
Depoyu Klonlayın:
git clone https://github.com/skylab-kulubu/yildizplace-backend.git cd yildizplace-backend
-
Veritabanını Yapılandırın: PostgreSQL ve Redis sunucularını başlatın ve
src/main/resources/application.properties
dosyasındaki veritabanı yapılandırmasını güncelleyin. -
Bağımlılıkları Yükleyin ve Projeyi Derleyin:
mvn clean install
-
Uygulamayı Başlatın:
mvn spring-boot:run
-
Depoyu Klonlayın:
git clone https://github.com/skylab-kulubu/yildizplace-backend.git cd yildizplace-backend
-
Docker ve Docker Compose Yükleyin: Docker ve Docker Compose'un yüklü olduğundan emin olun.
-
Docker Compose ile Uygulamayı Başlatın:
docker-compose up --build
FROM maven:3.8.4-openjdk-17 AS build
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline -B
COPY src/ ./src/
RUN mvn -f /app/pom.xml clean package -DskipTests
FROM openjdk:17-jdk-slim
EXPOSE 443
COPY --from=build /app/target/*.jar /app/app.jar
ENTRYPOINT ["java","-jar","/app/app.jar"]
version: '3.8'
services:
app:
build: .
ports:
- "443:443"
depends_on:
- db
- redis
db:
image: postgres:latest
environment:
POSTGRES_DB: yildizplace
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
redis:
image: redis:latest
ports:
- "6379:6379"
command: ["redis-server"]
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.show-sql=true
spring.datasource.driver-class-name=org.postgresql.Driver
# Change port
server.port=443
# Database configuration
spring.datasource.url=jdbc:postgresql://db:5432/yildizplace
spring.datasource.username=postgres
spring.datasource.password=postgres
server.servlet.session.cookie.same-site=strict
spring.jpa.properties.javax.persistence.validation.mode = none
#spring.main.allow-circular-references = true
# Redis Configuration
spring.data.redis.host=redis
spring.data.redis.port=6379
spring.data.redis.timeout=10000ms
spring.data.redis.lettuce.pool.max-active=8
spring.data.redis.lettuce.pool.max-wait=-1ms
spring.data.redis.lettuce.pool.max-idle=8
spring.data.redis.lettuce.pool.min-idle=8
# Cache Configuration
spring.cache.type=redis
##spring.cache.redis.time-to-live=30
spring.cache.redis.cache-null-values=false
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
# Mail configuration for Gmail
spring.mail.host=host
spring.mail.port=587
spring.mail.password=sifre
spring.mail.username=mail
#OPTIONAL - IF YOU DONT WANT TO USE JAVA MAIL SERVER YOU CAN USE RESEND
#BY DEFAULT JAVA MAIL SENDER IS BEING USED
resend.api.key=your_resend_api_key
# Disable security
# security.ignored=/**
application.properties
dosyasındaki yapılandırmaları ihtiyacınıza göre güncelleyin.- SSL sertifikalarının doğru şekilde yapılandırıldığından emin olun.