Skip to content

skylab-kulubu/yildizplace-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YıldızPlace

YıldızPlace Logo YıldızPlace Loading WEBLAB Logo

YıldızPlace Projesi Hakkında

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

Proje geliştiricileri

Yusuf Açmacı Github

Yusuf Açmacı Linkedin

Egehan Avcu Github

Egehan Avcu Linkedin

Proje Kurulumu

Gereksinimler

  • Java 17
  • Maven
  • PostgreSQL
  • Redis
  • Docker (Docker ile kurulum için)

1. Manuel Kurulum

  1. Depoyu Klonlayın:

    git clone https://github.com/skylab-kulubu/yildizplace-backend.git
    cd yildizplace-backend
  2. 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.

  3. Bağımlılıkları Yükleyin ve Projeyi Derleyin:

    mvn clean install
  4. Uygulamayı Başlatın:

    mvn spring-boot:run

2. Docker ile Kurulum

  1. Depoyu Klonlayın:

    git clone https://github.com/skylab-kulubu/yildizplace-backend.git
    cd yildizplace-backend
  2. Docker ve Docker Compose Yükleyin: Docker ve Docker Compose'un yüklü olduğundan emin olun.

  3. Docker Compose ile Uygulamayı Başlatın:

    docker-compose up --build

3. Dockerfile

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"]

4. docker-compose.yml

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"]

5. application.properties

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=/**

6. Notlar

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published