Kılavuz

Kurulum

Kurulum

v1.0.0+

GeckoFlag, kendi sunucunuza kurduğunuz, kendi kendine barındırılan bir yazılımdır; özel bir kurulum sihirbazı süreç boyunca size rehberlik eder, böylece herkes kolayca kurabilir.

Başlamadan önce

  • Sunucunuzun sistem gereksinimlerini karşıladığını doğrulayın. Composer gerekmez: dağıtılan paket bağımlılıklarını (vendor klasörü) zaten içerir, bu nedenle Composer çalıştıramadığınız ortamlarda da çalışır.
  • Veritabanı bağlantı bilgilerinizi hazır bulundurun: yeni bir veritabanı veya boş olan mevcut bir veritabanı. Veritabanını başka bir uygulamayla paylaşmanızı önermiyoruz.
  • HTTPS kesin olarak zorunlu değildir, ancak GeckoFlag oturum açma bilgilerini ve kişisel verileri işlediğinden, HTTPS ile çalıştırmanızı şiddetle öneririz.
  • Dosyaları yükledikten sonra kurulumu hemen tamamlayın. Kurulum tamamlanana kadar, URL'yi bilen herkes kurulum sihirbazını açabilir.
  • Nginx kullanıyorsanız, önce aşağıdaki “Nginx kullanıyorsanız” bölümündeki ayarları yapın.

Kurulum adımları

  1. 1GeckoFlag dosyalarını FTP/SFTP veya hosting kontrol paneliniz aracılığıyla sunucunuza yükleyin ve çıkarın.Sunucuda çıkarılmış GeckoFlag dosya ve klasörlerini gösteren Dosya Yöneticisi
  2. 2Kurulum sihirbazını tarayıcınızda açın. Sunucu ortamınızı (PHP sürümü, gerekli uzantılar ve klasör izinleri) denetler ve bir kontrol listesi gösterir.GeckoFlag Setup, Adım 1: Environment Check, PHP sürümünü, gerekli uzantıları ve klasör izinlerini hepsi yeşil olarak gösterir
  3. 3Veritabanı bağlantı bilgilerinizi (ana bilgisayar, bağlantı noktası, veritabanı adı, kullanıcı adı ve parola) girin ve devam edin.GeckoFlag Setup, Adım 2: Database Connection, veritabanı için host, port, ad, kullanıcı ve parola alanları içerir
  4. 4Veritabanını başlatmak için Çalıştır düğmesine tıklayın; bu, GeckoFlag'in ihtiyaç duyduğu tabloları oluşturur.GeckoFlag Setup, Adım 3: Initialize the Database, bir Run düğmesi içerir
  5. 5Bir ad, bir e-posta adresi ve bir parola ile yönetici hesabınızı oluşturun.GeckoFlag Setup, Adım 4: Create Administrator Account, ad, e-posta ve parola alanları içerir
  6. 6Doğrulamak için lisans anahtarınızı girin.GeckoFlag Setup, Adım 5: License Verification, lisans anahtarı için bir alan içerir
  7. 7Lisansınız doğrulandığında her şey hazırdır: yeni yönetici hesabınızla oturum açın ve projelerinizi yapılandırmaya başlayın.GeckoFlag Setup, Adım 5: License Verification, lisans anahtarının başarıyla doğrulandığını onaylar

Hosting hakkında notlar

GeckoFlag'in yaygın olarak kullanılan birçok paylaşımlı hosting sağlayıcısında çalıştığı doğrulanmıştır. upload_max_filesize gibi PHP yapılandırmasına bağlı olarak, bazı sağlayıcılarda dosya yükleme özellikleri sınırlı olabilir.

Nginx kullanıyorsanız

Apache'de, GeckoFlag ile birlikte gelen .htaccess dosyası yapılandırma dosyalarına, günlüklere ve benzerlerine doğrudan erişimi otomatik olarak engeller. Nginx .htaccess dosyalarını kullanmadığından, sunucu yapılandırmanıza aşağıdakileri ekleyin. Eklemezseniz yapılandırma dosyalarınız ve yüklediğiniz dosyalar dışarıdan görülebilir hâle gelebilir.

Nginx ile Apache'yi birlikte kullanan paylaşımlı hosting hizmetlerinde (Nginx'in aldığı istekleri Apache'nin işlediği yapılarda) .htaccess etkin olduğundan bu ayar gerekmez. .htaccess kullanılıp kullanılamadığını hosting sağlayıcınızın kılavuzundan kontrol edin.

  • Genel klasörü (belge kökü) GeckoFlag klasörünün kendisi olarak değil, içindeki webroot klasörü olarak ayarlayın.
  • server_name (alan adı), root (GeckoFlag'i yerleştirdiğiniz konum) ve fastcgi_pass (PHP-FPM bağlantı adresi) değerlerini ortamınıza göre değiştirin.
  • HTTPS ayarlarını (listen 443 ssl ve sertifika tanımları) ortamınızın yapılandırma yöntemine göre ekleyin.
server {
    listen 80;
    server_name pm.example.com;

    # Genel klasör (belge kökü): GeckoFlag'in webroot klasörü
    root /var/www/geckoflag/webroot;
    index index.php;

    # Klasör içeriklerinin listesini gösterme
    autoindex off;

    # Güncelleme ve yedekleme ZIP dosyalarının yüklenebilmesi için
    # (Nginx varsayılanı 1MB). PHP'nin upload_max_filesize ve
    # post_max_size değerlerini de en az bu kadar yapın
    client_max_body_size 100m;

    # Gizli dosyaları (.htaccess, .git vb.) sunma
    location ~ /\.(?!well-known/) {
        deny all;
    }

    # Yüklenen görsel klasörlerinden yalnızca görselleri sun
    location ~ ^/img/(avatars|project_thumbnails|branding)/ {
        location ~* \.(jpe?g|jfif|png|gif|webp|ico)$ {
            add_header X-Content-Type-Options "nosniff" always;
            try_files $uri =404;
        }
        # SVG görselleri yalnızca görüntülenir (betik çalıştırılmaz)
        location ~* \.svg$ {
            add_header X-Content-Type-Options "nosniff" always;
            add_header Content-Security-Policy "default-src 'none'; img-src data:; style-src 'unsafe-inline'; sandbox" always;
            try_files $uri =404;
        }
        return 403;
    }

    # files klasörünü doğrudan sunma
    location ^~ /files/ {
        return 404;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP olarak yalnızca index.php çalıştırılır
    location = /index.php {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
    location ~ \.php$ {
        return 404;
    }
}

Yapılandırmayı değiştirdikten sonra sözdizimini nginx -t ile kontrol edin ve Nginx'i yeniden yükleyin.

CDN veya ters proxy (Cloudflare vb.) üzerinden kullanıyorsanız

GeckoFlag, başarısız oturum açma denemelerini sınırlamak ve erişim kısıtlamasını (IP adresi) uygulamak için sunucunun aldığı bağlantı kaynağı IP adresini kullanır. CDN veya ters proxy üzerinden erişildiğinde tüm kullanıcılar proxy'nin IP adresinden bağlanıyormuş gibi görünür ve bu durum şunlara yol açar:

  • Bir kişi oturum açmada birkaç kez başarısız olursa, diğer kullanıcılar da bir süre oturum açamayabilir.
  • Erişim Kısıtlaması (IP Adresi) doğru çalışmaz.

Böyle bir yapıda, web sunucusunu gerçek bağlantı kaynağı IP adresini alacak şekilde yapılandırın (Apache'de mod_remoteip, Nginx'te real_ip modülü; Cloudflare için şirketin yayımladığı IP adresi listesinin kaydedilmesi vb.). Yapılandırma yöntemi için hosting sağlayıcınızın veya CDN hizmetinizin kılavuzuna bakın.