2025-05-08 07:17:50 +00:00
|
|
|
|
# Devops Makinası kurulumu
|
|
|
|
|
|
|
|
|
|
|
|
## VS Code -> Extensions kısmında "Docker" kurulmalıdır.
|
|
|
|
|
|
|
|
|
|
|
|
## VS Code -> Extensions kısmında "Save as Root in Remote" kurulmalıdır.
|
|
|
|
|
|
|
|
|
|
|
|
## VS Code üzerinden SSH parolası sabitleme (Firewall ve SSH)
|
|
|
|
|
|
|
|
|
|
|
|
- Windows Terminal üzerinde ssh_keygen komutu çalıştırılır.
|
|
|
|
|
|
- C:\Users\sedat.ozturk\.ssh klasörün altında id_rsa ve id_rsa.pub isimli 2 dosya oluşturur.
|
|
|
|
|
|
- C:\Users\sedat.ozturk\.ssh dosyasının içerisindeki id_rsa.pub dosyasının içeriğini ~/.ssh klasöründeki authorized_keys içeriğine kopyalanır.
|
|
|
|
|
|
- Bu sayede VS Code üzerinden bağlanırken her defasında ssh paroları yazmak durumunda olmayız.
|
|
|
|
|
|
|
|
|
|
|
|
## Docker kurulumu
|
|
|
|
|
|
|
|
|
|
|
|
- sudo apt update
|
|
|
|
|
|
- sudo apt install apt-transport-https ca-certificates curl software-properties-common
|
|
|
|
|
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
2025-05-08 10:59:06 +00:00
|
|
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
2025-05-08 07:17:50 +00:00
|
|
|
|
- sudo apt update
|
|
|
|
|
|
- apt-cache policy docker-ce
|
|
|
|
|
|
- sudo apt install docker-ce
|
|
|
|
|
|
- sudo systemctl status docker
|
|
|
|
|
|
- sudo usermod -aG docker ${USER}
|
|
|
|
|
|
- su - ${USER}
|
|
|
|
|
|
- sudo reboot
|
2025-05-08 10:59:06 +00:00
|
|
|
|
- sudo su
|
|
|
|
|
|
- cd /etc/docker
|
|
|
|
|
|
- touch daemon.json
|
|
|
|
|
|
daemon.json dosyasının içerisine aşağıdaki satırlar eklenecek.
|
|
|
|
|
|
{
|
|
|
|
|
|
"insecure-registries": ["devops.sozsoft.com"]
|
|
|
|
|
|
}
|
|
|
|
|
|
- sudo systemctl restart docker
|
|
|
|
|
|
- /etc/hosts dosyası açılacak ve içerisine `127.0.1.1 devops.sozsoft.com` eklenecek
|
|
|
|
|
|
- docker login devops.sozsoft.com
|
|
|
|
|
|
|
2025-05-08 07:17:50 +00:00
|
|
|
|
## Sertifika alma
|
|
|
|
|
|
|
|
|
|
|
|
- sudo apt-get remove certbot
|
|
|
|
|
|
- sudo snap install --classic certbot
|
|
|
|
|
|
- sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
|
|
|
|
|
- sudo certbot certonly --manual --preferred-challenges=dns --email system@sozsoft.com --agree-tos -d sozsoft.com -d *.sozsoft.com
|
|
|
|
|
|
- sudo su
|
|
|
|
|
|
- cd /etc/letsencrypt/archive
|
|
|
|
|
|
- chgrp docker -R sozsoft.com
|
|
|
|
|
|
- chown ${USER} -R sozsoft.com
|
|
|
|
|
|
- cd /etc/letsencrypt/archive/sozsoft.com
|
|
|
|
|
|
- cp -R /etc/letsencrypt/archive/sozsoft.com /home/sedat/sozsoft.com
|
|
|
|
|
|
- exit
|
|
|
|
|
|
- cd sozsoft.com/
|
|
|
|
|
|
- sudo chmod 775 *
|
|
|
|
|
|
|
2025-05-08 10:59:06 +00:00
|
|
|
|
## Forgejo kurulumu ayarları yapılacak
|
|
|
|
|
|
|
|
|
|
|
|
- home klasöründeki `cd ~/forgejo/data/gitea/conf` klasörün altındaki app.ini dosyasına aşağıdaki satırlar eklenecek.
|
|
|
|
|
|
[server]
|
|
|
|
|
|
APP_DATA_PATH = /data/gitea
|
|
|
|
|
|
DOMAIN = devops.sozsoft.com
|
|
|
|
|
|
SSH_DOMAIN = devops.sozsoft.com
|
|
|
|
|
|
DISABLE_SSH = false
|
|
|
|
|
|
SSH_PORT = 222
|
|
|
|
|
|
SSH_LISTEN_PORT = 22
|
|
|
|
|
|
LFS_START_SERVER = true
|
|
|
|
|
|
LFS_JWT_SECRET = CDy3ldC2cTbYHalO_dH68QJseoD7dGvH9x0Zx9aq2J0
|
|
|
|
|
|
OFFLINE_MODE = true
|
|
|
|
|
|
PROTOCOL=http
|
|
|
|
|
|
HTTP_PORT = 3000
|
|
|
|
|
|
ROOT_URL = https://devops.sozsoft.com/
|
|
|
|
|
|
CERT_FILE = /etc/ssl/cert1.pem
|
|
|
|
|
|
KEY_FILE = /etc/ssl/privkey1.pem
|
|
|
|
|
|
- https://devops.sozsoft.com
|
|
|
|
|
|
- sedat.ozturk isimli kullanıcı tanımlanacak.
|
|
|
|
|
|
- "kurs" isimli new organization tanımlanacak.
|
|
|
|
|
|
- "kurs-platform" isimli repository kurs organizasyonunun içerisine tanımlanacak.
|
|
|
|
|
|
- Fork üzerinden Remotes tanımlaması yapılacak. Remote: devops.sozsoft.com RepositoryUrl: https://devops.sozsoft.com/kurs/kurs-platform
|
|
|
|
|
|
- Fork üzerinden Authorization işlemi yapılacak URL kısmı localhost olarak geliyor. Onu devops.sozsoft.com olarak değiştirmek gerekiyor.
|
|
|
|
|
|
|
2025-05-08 07:17:50 +00:00
|
|
|
|
## docker-compose-devops.yml kurulumu
|
|
|
|
|
|
|
2025-05-08 10:59:06 +00:00
|
|
|
|
Bu kurulumu yapmak için home klasörü altına 3 tane dosyaya ihtiyaç duyuyor.
|
|
|
|
|
|
|
|
|
|
|
|
- Klasör yapısı
|
|
|
|
|
|
cd ~/
|
|
|
|
|
|
mkdir kurs-platform
|
|
|
|
|
|
cd kurs-platform
|
|
|
|
|
|
mkdir configs
|
|
|
|
|
|
cd configs
|
|
|
|
|
|
mkdir deployment
|
|
|
|
|
|
cd deployment
|
|
|
|
|
|
mkdir configs
|
|
|
|
|
|
|
|
|
|
|
|
- Dosya yapısı
|
2025-05-08 07:17:50 +00:00
|
|
|
|
-> kurs-platform->configs->deployment->configs->nginx-devops.conf
|
|
|
|
|
|
-> kurs-platform->configs->deployment->docker-compose-devops.yml
|
|
|
|
|
|
-> kurs-platform->configs->deployment->Dockerfile
|
|
|
|
|
|
|
2025-05-08 10:59:06 +00:00
|
|
|
|
cd ~/kurs-platform/configs/deployment
|
|
|
|
|
|
chmod 775 *
|
|
|
|
|
|
cd ~/kurs-platform
|
|
|
|
|
|
docker compose -f ./docker-compose-devops.yml up -d
|
2025-05-08 07:17:50 +00:00
|
|
|
|
n8n çalışmayınca `docker run --rm -v kurs-devops_n8n_data:/data alpine chown -R 1000:1000 /data` kodu çalıştırılacak.
|
2025-05-08 10:59:06 +00:00
|
|
|
|
docker compose -f ./docker-compose-devops.yml down
|
|
|
|
|
|
docker compose -f ./docker-compose-devops.yml up -d
|
|
|
|
|
|
|
|
|
|
|
|
## Git Kurulumu
|
|
|
|
|
|
|
|
|
|
|
|
- cd ~
|
|
|
|
|
|
- git config --global http.sslVerify false
|
|
|
|
|
|
- git clone https://devops.sozsoft.com/kurs/kurs-platform.git
|
|
|
|
|
|
- cd kurs-platform/
|
|
|
|
|
|
- git config core.fileMode false
|
|
|
|
|
|
- chmod 775 *
|
|
|
|
|
|
- cd configs/deployment
|
|
|
|
|
|
- chmod 775 *
|
|
|
|
|
|
- cd configs
|
|
|
|
|
|
- chmod 775 *
|
|
|
|
|
|
- cd ..
|
|
|
|
|
|
- cd scripts
|
|
|
|
|
|
- chmod 775 *
|
|
|
|
|
|
- cd ~/kurs-platform
|
|
|
|
|
|
- ./build-production.sh
|