Truncgil Finance Logo
Truncgil Finance Logo Light
Favicon

# 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.