diff --git a/backend/codiki-launcher/pom.xml b/backend/codiki-launcher/pom.xml
index affed10..413acc3 100644
--- a/backend/codiki-launcher/pom.xml
+++ b/backend/codiki-launcher/pom.xml
@@ -41,6 +41,17 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
diff --git a/backend/codiki-launcher/src/main/resources/application-local.yml b/backend/codiki-launcher/src/main/resources/application-local.yml
index 89d5304..4ddc388 100644
--- a/backend/codiki-launcher/src/main/resources/application-local.yml
+++ b/backend/codiki-launcher/src/main/resources/application-local.yml
@@ -3,6 +3,10 @@ application:
path: /home/florian/Developpement/codiki-hexagonal/backend/pictures-folder/
temp-path : /home/florian/Developpement/codiki-hexagonal/backend/pictures-folder/temp/
+logging:
+ level:
+ org.springframework.security: DEBUG
+
server:
port: 8987
diff --git a/backend/codiki-launcher/src/main/resources/application-prod.yml b/backend/codiki-launcher/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..6874a14
--- /dev/null
+++ b/backend/codiki-launcher/src/main/resources/application-prod.yml
@@ -0,0 +1,13 @@
+application:
+ pictures:
+ path: /opt/codiki/pictures/
+ temp-path: /opt/codiki/pictures/temp/
+
+server:
+ port: 8080
+
+spring:
+ datasource:
+ url: jdbc:postgresql://codiki-database:5432/codiki_db
+ username: codiki_user
+ password: password
\ No newline at end of file
diff --git a/backend/codiki-launcher/src/main/resources/application.yml b/backend/codiki-launcher/src/main/resources/application.yml
index 117634a..78889d9 100644
--- a/backend/codiki-launcher/src/main/resources/application.yml
+++ b/backend/codiki-launcher/src/main/resources/application.yml
@@ -9,10 +9,6 @@ application:
path: /opt/codiki/pictures/
temp-path: /opt/codiki/pictures/temp/
-logging:
- level:
- org.springframework.security: DEBUG
-
server:
http2:
enabled: true
diff --git a/ci.bash b/ci.bash
new file mode 100644
index 0000000..b282b6d
--- /dev/null
+++ b/ci.bash
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+SERVER_CODIKI_ROOT_FOLDER='/home/florian/codiki-hexagonal'
+SERVER_ADDRESS='192.168.0.153'
+SERVER_USER='florian'
+SERVER_PORT='22'
+
+function handle_error() {
+ local resultCode=$1
+ if [[ $resultCode -ne 0 ]]
+ then
+ echo "$errorMessage"
+ echo
+ exit 1
+ else
+ echo 'Operation succeded.'
+ echo
+ fi
+}
+
+function change_configuration_files() {
+ echo 'Copy production configuration file of backend...'
+ cp ./ci/configuration/backend/application-prod.yml ./backend/codiki-launcher/src/main/resources/application-prod.yml
+ handle_error $?
+}
+
+function build_backend() {
+ echo 'Backend docker image building...'
+ docker build -t codiki-backend -f ./Dockerfile-backend . --no-cache
+ handle_error $?
+}
+
+function build_frontend() {
+ echo 'Frontend docker image building...'
+ docker build -t codiki-frontend -f ./Dockerfile-frontend . --no-cache
+ handle_error $?
+}
+
+function extract_docker_images() {
+ echo 'Extraction of backend docker image into an archive...'
+ docker save codiki-backend:latest -o ./ci/bin/codiki-backend.tar
+ handle_error $?
+
+ echo 'Extraction of frontend docker image into an archive...'
+ docker save codiki-frontend:latest -o ./ci/bin/codiki-frontend.tar
+ handle_error $?
+}
+
+function copy_docker_compose_file_in_bin_folder() {
+ echo 'Copy of docker compose file in bin folder...'
+ cp ./docker-compose.yml ./ci/bin/docker-compose.yml
+ handle_error $?
+}
+
+function upload_files_on_server() {
+ echo 'Sending of docker images on server'
+ scp -P $SERVER_PORT ./ci/bin/* $SERVER_USER@$SERVER_ADDRESS:$SERVER_CODIKI_ROOT_FOLDER/
+ handle_error $?
+}
+
+# execute_remote_command_on_server
+function ercos() {
+ local command=$1
+ ssh -p $SERVER_PORT -l $SERVER_USER $SERVER_ADDRESS $command
+ handle_error $1
+}
+
+function deploy_docker_images_on_server() {
+ echo 'Import backend docker image archive on server...'
+ ercos "docker load < $SERVER_CODIKI_ROOT_FOLDER/codiki-backend.tar"
+
+ echo 'Import frontend docker image archive on server...'
+ ercos "docker load < $SERVER_CODIKI_ROOT_FOLDER/codiki-frontend.tar"
+}
+
+function restart_services() {
+ echo 'Stop services on server...'
+ ercos "cd $SERVER_CODIKI_ROOT_FOLDER && docker compose down"
+
+ echo 'Start services on server...'
+ ercos "cd $SERVER_CODIKI_ROOT_FOLDER && docker compose up --detach"
+}
+
+function main() {
+ change_configuration_files
+ build_backend
+ build_frontend
+ extract_docker_images
+ copy_docker_compose_file_in_bin_folder
+ upload_files_on_server
+ deploy_docker_images_on_server
+ restart_services
+}
+
+main
\ No newline at end of file
diff --git a/ci/configuration/backend/application-prod.yml b/ci/configuration/backend/application-prod.yml
new file mode 100644
index 0000000..6874a14
--- /dev/null
+++ b/ci/configuration/backend/application-prod.yml
@@ -0,0 +1,13 @@
+application:
+ pictures:
+ path: /opt/codiki/pictures/
+ temp-path: /opt/codiki/pictures/temp/
+
+server:
+ port: 8080
+
+spring:
+ datasource:
+ url: jdbc:postgresql://codiki-database:5432/codiki_db
+ username: codiki_user
+ password: password
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..f20347c
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,37 @@
+services:
+ codiki-database:
+ image: "postgres:16"
+ container_name: "codiki-database"
+ ports:
+ - "50010:5432"
+ networks:
+ - "codiki-network"
+ environment:
+ POSTGRES_DB: codiki_db
+ POSTGRES_USER: codiki_admin
+ POSTGRES_PASSWORD: password
+ PGDATA: /var/lib/postgresql/data/pgdata
+ volumes:
+ - "./docker/postgresql/pgdata:/var/lib/postgresql/data/pgdata"
+
+ codiki-backend:
+ image: codiki-backend:latest
+ container_name: "codiki-backend"
+ environment:
+ - "SPRING_PROFILES_ACTIVE=prod"
+ ports:
+ - "50011:8080"
+ networks:
+ - "codiki-network"
+
+ codiki-frontend:
+ image: codiki-frontend:latest
+ container_name: "codiki-frontend"
+ ports:
+ - "50012:80"
+ - "50013:443"
+ networks:
+ - "codiki-network"
+
+networks:
+ codiki-network:
\ No newline at end of file