Files
finance/README.md

82 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<img src="public/img/logo-light.svg" width="400" alt="Truncgil Finance Logo Light" style="background-color: #333; padding: 10px; border-radius: 5px;">
</p>
# Truncgil Finance Application
Bu proje, Truncgil bünyesinde geliştirilen Docker tabanlı bir Laravel finans uygulamasıdır. Proje; PHP 8.2-FPM, Nginx ve MySQL 8.0 servislerini içermektedir.
## 🚀 Hızlı Başlangıç (Kurulum)
Projeyi yerel ortamınızda veya sunucunuzda çalıştırmak için aşağıdaki adımları izleyin:
### 1. Depoyu Klonlayın
```bash
git clone https://git.truncgil.com/truncgit/finance.git
cd finance
```
### 2. Yapılandırma Dosyasını Hazırlayın
`.env.example` dosyasını `.env` olarak kopyalayın ve gerekli düzenlemeleri yapın:
```bash
cp .env.example .env
```
> **Önemli:** Docker içerisinde çalışırken `DB_HOST=db` ve `DB_PORT=3306` (docker iç ağı için) olarak ayarlanmalıdır. Dışarıdan erişim için Docker 3308 portunu kullanmaktadır.
### 3. Servisleri Başlatın
Proje içerisinde bulunan `restart.sh` betiği, port çakışmalarını kontrol eder, eski konteynerleri temizler ve sistemi Docker Compose ile ayağa kaldırır:
```bash
chmod +x restart.sh
./restart.sh
```
### 4. Uygulamaya Erişin
Servisler başarıyla başlatıldıktan sonra tarayıcınızdan şu adrese gidebilirsiniz:
- **Uygulama:** [http://localhost:8089](http://localhost:8089)
- **Veritabanı (Dış Erişim):** localhost:3308
---
## 🛠️ Nasıl Çalışır? (Mimari)
Proje, modern konteynerleştirme standartlarına uygun olarak tasarlanmıştır:
### Servis Yapısı
- **app:** PHP 8.2-FPM üzerinde koşan Laravel uygulamasıdır. `dockerfile` içerisinde gerekli PHP eklentileri (pdo_mysql, bcmath, gd vb.) ve otomatik görevler (cron) yapılandırılmıştır.
- **web:** Nginx (alpine) sunucusudur. Gelen istekleri karşılar ve PHP servisine yönlendirir.
- **db:** MySQL 8.0 veritabanıdır. Veriler `db_data` volume'ü içerisinde kalıcı olarak saklanır.
### Otomatik Görevler (Cron)
`dockerfile` içerisinde tanımlanan cron yapısı ile Laravel'in `artisan run-all-fetchs` komutu her dakika otomatik olarak çalıştırılır. Bu, finansal verilerin güncel tutulmasını sağlar.
### API Dokümantasyonu
Proje içerisinde **Scribe** kullanılmaktadır. `dockerfile` build aşamasında API dokümantasyonu otomatik olarak üretilir.
---
## 💻 Faydalı Komutlar
Aşağıdaki komutları konteyner içerisinde çalıştırmak için `docker exec` kullanabilirsiniz:
**Migrasyonları Çalıştır:**
```bash
docker exec -it truncgil-finance-app php artisan migrate
```
**Verileri Seed Et:**
```bash
docker exec -it truncgil-finance-app php artisan db:seed
```
**Logları Takip Et:**
```bash
docker compose -p finance logs -f
```
---
## 📝 Notlar
- Uygulama anahtarı (`APP_KEY`) ilk build sırasında otomatik olarak üretilir.
- Port veya servis isimlerini değiştirmek isterseniz `docker-compose.yml` ve `restart.sh` dosyalarını güncelleyebilirsiniz.