diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..3aeceaf54d5a3821a9850b36a8a011e43ea5456b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,5 @@
+FROM openjdk:17-alpine
+ARG JAR_FILE=belajarbelajar/build/libs/belajarbelajar-0.0.1-SNAPSHOT.jar
+COPY ${JAR_FILE} app.jar
+EXPOSE 9099
+ENTRYPOINT ["java","-jar","/app.jar"]
diff --git a/app.env b/app.env
new file mode 100644
index 0000000000000000000000000000000000000000..89bfe2d08b9ca2a5173f401f4616f97c266e0004
--- /dev/null
+++ b/app.env
@@ -0,0 +1,6 @@
+SPRING_PROFILES_ACTIVE=prod
+
+MYSQL_ROOT_PASSWORD=password123456!
+MYSQL_DATABASE=apap_db
+MYSQL_USER=apap_user
+MYSQL_PASSWORD=password1234!
\ No newline at end of file
diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java
index f3446ec392f5942f2344f80e793c650ad6819d45..651a570b56a02d85be64fbc54b091c99b4d25b9e 100644
--- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java
+++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/security/WebSecurityConfig.java
@@ -37,10 +37,8 @@ public class WebSecurityConfig {
         return http.build();
     }
 
-    @Bean
-    public BCryptPasswordEncoder encoder() {
-        return new BCryptPasswordEncoder();
-    }
+//    @Bean
+    public BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
 
 //    @Autowired
 //    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
@@ -56,6 +54,6 @@ public class WebSecurityConfig {
 
     @Autowired
     public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
-        auth.userDetailsService(userDetailsService).passwordEncoder(encoder());
+        auth.userDetailsService(userDetailsService).passwordEncoder(encoder);
     }
 }
\ No newline at end of file
diff --git a/belajarbelajar/src/main/resources/application-dev.yml b/belajarbelajar/src/main/resources/application-dev.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bb17027fc8e8875a05107ad9cc8af5957c1c4584
--- /dev/null
+++ b/belajarbelajar/src/main/resources/application-dev.yml
@@ -0,0 +1,34 @@
+spring:
+
+  # konfigurasi untuk koneksi db
+  datasource:
+    driver-class-name: com.mysql.jdbc.Driver
+
+    # sesuaikan nama database anda dengan di bawah ini
+    url: jdbc:mysql://localhost:3306/apap_db?useSSL=false&serverTimezone=Asia/Jakarta
+
+    # sesuaikan dengan NAMA dan PASSWORD anda dengan username password di bawah ini
+    username: apap_user
+    password: password1234!
+
+  jpa:
+    properties:
+      hibernate:
+        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+        format_sql: true
+
+    # pembuatan database (create || create-drop || validate || update)
+    hibernate.ddl-auto: create-drop
+
+    show-sql: true
+
+
+  # Templates reloading during development
+  thymeleaf:
+    prefix: file:src/main/resources/templates/
+    cache: false
+
+  # Static resources reloading during development
+  web:
+    resources:
+      static-locations: file:src/main/resources/static/
diff --git a/belajarbelajar/src/main/resources/application-prod.yml b/belajarbelajar/src/main/resources/application-prod.yml
new file mode 100644
index 0000000000000000000000000000000000000000..567c15da3db8c23adf5273c83104c32f40214d42
--- /dev/null
+++ b/belajarbelajar/src/main/resources/application-prod.yml
@@ -0,0 +1,26 @@
+server:
+  address: 0.0.0.0
+  port: 8080
+
+spring:
+  # konfigurasi untuk koneksi db
+  datasource:
+    driver-class-name: com.mysql.jdbc.Driver
+
+    # sesuaikan nama database anda dengan di bawah ini
+    url: jdbc:mysql://db:3306/apap_db?useSSL=false&serverTimezone=Asia/Jakarta
+
+    # sesuaikan dengan NAMA dan PASSWORD anda dengan username password di bawah ini
+    username: apap_user
+    password: password1234!
+
+  jpa:
+    properties:
+      hibernate:
+        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
+        format_sql: true
+
+    # pembuatan database (create || create-drop || validate || update)
+    hibernate.ddl-auto: create-drop
+
+    show-sql: true
diff --git a/belajarbelajar/src/main/resources/application.properties b/belajarbelajar/src/main/resources/application.properties
deleted file mode 100644
index ae57aa1603495696847be013668e89f17c678ac4..0000000000000000000000000000000000000000
--- a/belajarbelajar/src/main/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#konfigurasi untuk koneksi MySQL
-spring.sql.init.platform=mysql
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-
-#sesuaikan NAMA_DATABASE dengan nama database anda
-spring.datasource.url=jdbc:mysql://localhost:3306/belajarbelajar?useSSL=false&serverTimezone=Asia/Jakarta
-
-#sesuaikan dengan NAMA dan PASSWORD mysql anda
-spring.datasource.username=root
-spring.datasource.password=
-
-#error bean
-spring.main.allow-circular-references=true
-
-#optimize query untuk db MySQL
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
-
-#pembuatan database (create || create drop || validate || update)
-spring.jpa.hibernate.ddl-auto=update
-
-server.port=8080
diff --git a/belajarbelajar/src/main/resources/application.yml b/belajarbelajar/src/main/resources/application.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e33662a49aa8dfa501b6166b47e8519cbc24e61f
--- /dev/null
+++ b/belajarbelajar/src/main/resources/application.yml
@@ -0,0 +1,5 @@
+
+
+spring:
+  profiles:
+    default: dev
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d03ed7299e994108f9e1fa80e2e2bfcf3885f60d
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,38 @@
+version: '2'
+services:
+  web:
+    build:
+      context: .
+    restart: always
+    ports:
+      - "10127:8080"
+    volumes:
+      - ./file-storage:/file-storage
+      - ./log:/log
+    env_file:
+      - app.env
+    depends_on:
+      - db
+    networks:
+      - frontend-network
+      - backend-network
+
+  db:
+    image: mariadb:10.4.24
+    restart: always
+    env_file:
+      - app.env
+    volumes:
+      - mysql-db-volume:/var/lib/mysql
+    networks:
+      - backend-network
+
+volumes:
+  mysql-db-volume:
+
+networks:
+  frontend-network:
+    driver: bridge
+  backend-network:
+
+