Langkah pertama yang harus kita lakukan adalah membuat server dengan menggunakan OS Ubuntu 22.04, setelah itu kita lakukan langkah2 berikut ini:
1. Membuat group user sudo
Membuat Group Sudo
addgroup devel
visudo Tambahkan Group Baru seperti pada contoh dibawah
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
%devel ALL=(ALL:ALL) NOPASSWD: ALLLink : https://www.tecmint.com/run-sudo-command-without-password-linux/
2. Membuat User Devel (Sudo)
adduser andika
usermod -aG sudo andika
Link:
https://mbahwp.com/cara-membuat-grup-menambahkan-user-ke-grup-di-ubuntu/
https://www.linuxid.net/24838/cara-membuat-user-sudo-di-ubuntu-linux/
3. Membuat Akses SSH menggunakan Public Key
Anda bisa melakukannya dengan tutorial berikut
https://andika2000.blogspot.com/2017/05/tutorial-public-key-ssh-dengan-puty-gen.html
https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/
Jika anda membuat key menggunakan command linux,kemudian kamu ingin menggunakan key tsb menggunakan putty. kamu harus mengconvertnya menjadi file .ppk, berikut link nya:
http://deepakputhal.weebly.com/blog/november-23rd-2015
4. Install Mysql Server
Link: https://linuxhint.com/install-mysql-on-ubuntu-22-04/
5. Install Docker Engine
Link: https://docs.docker.com/engine/install/ubuntu/
6. Install Aplikasi
- Git Clone Application
- Setup Aplikasi Dengan Docker
- Test Aplikasi Sampai bisa berjalan di server
7. Membuat Command CI/CD
Buat File Dengan Nama ".gitlab-ci.yml" kemudian Masukan command berikut
stages:
- deploy
deploy:
stage: deploy
image: ubuntu:latest
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && ssh-keyscan -H "$SSH_HOST" > ~/.ssh/known_hosts'
script:
- ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && sudo git checkout -f $GIT_BRANCH"
- ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && sudo git clean -fd"
- ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && sudo git pull https://$GIT_USER:$GIT_PASSWORD@$GIT_URL $GIT_BRANCH"
- ssh $SSH_USER@$SSH_HOST "cd $WORK_DIR && sudo sh deploy.sh"
Kemudian Buat File dengan nama "deploy.sh" lalu masukan command berikut:
#!/bin/sh
docker exec -i qualita-qfest-v3 chown -R www-data:www-data /var/www/
docker exec -i qualita-qfest-v3 chmod -R 755 /var/www/
docker exec -i qualita-qfest-v3 composer install
docker exec -i qualita-qfest-v3 php artisan cache:clear
docker exec -i qualita-qfest-v3 php artisan config:clear
docker exec -i qualita-qfest-v3 php artisan view:cache
docker exec -i qualita-qfest-v3 php artisan view:cache
docker exec -i qualita-qfest-v3 service supervisor restart8. Setup Nginx Config
Buat file "/etc/nginx/sites-available/project_name" lalu masukan command berikut:
server {
include mime.types;
server_name sub.domain.net;
location / {
proxy_pass http://localhost:8080/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
include mime.types;
}
}kemudian kita akan membuat link file ke site_enabled:
ln -s /etc/nginx/sites-available/project_name /etc/nginx/sites-enabled/project_name
9. Setup Cerbort SSL HTTPS
kemudian kita akan membuat link file ke site_enabled:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d sub.domain.com sudo systemctl restart nginx.service sudo systemctl status certbot.timer
Kemudian Edit file .env pada
APP_NAME=ApplicationName
APP_ENV=production
APP_URL=https://sub.domain.com
Tidak ada komentar:
Posting Komentar