• Ana Sayfa
  • Kategoriler
  • Güncel
  • Popüler
  • Gruplar
  • Kullanıcılar
  • Etiketler
  • Çözüldü
  • Yasal
    • Kullanım Şartları
    • Gizlilik İlkesi
    • İletişim
Skins
  • Light
  • Default
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Quartz
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Slate
  • Solar
  • Superhero
  • Vapor
Collapse
kurulumu-net

Kurulumu.Net

adminA

admin

@admin
Admin
about
İleti
199
Konu
74
Gruplar
5
Takipçiler
3
Takip Edilenler
1

İleti

Güncel En İyi Tartışmalı

    NodeBB nedir? Nodebb forum nasıl kurulur?
  • adminA admin

    nodebb.png

    NodeBB nedir?

    Nodebb, Nodejs ile yazılmış açık kaynak kodlu bir tek sayfa forum uygulamasıdır. Veri tabanı olarak MongoDB kullanılır. İsteğe bağlı olarak Redis’te kullanılabilir. Javascript ile yazılmıştır. Kullandığı altyapı sayesinde oldukça performanslı bir yapıya sahiptir. Büyük trafiklerde gayet iyi performans göstermektedir.

    NodeBB Forum Özellikleri

    1. Dahili olarak Türkçe dil desteği vardır. Kullanıcının dil tercihini otomatik tespit ederek o dilde yayınlanma özelliği bulunmaktadır.
    2. Tüm cihazlarla uyumlu olarak çalışabilen NodeBB’de dahili PWA uygulaması bulunmaktadır.
    3. Her kategoriye özel Moderatör tayin edilebilir.
    4. Davet sistemi ile kayıt olma özelliği bulunmaktadır.
    5. Gelişmiş moderatör araçları vardır.
    6. Dahili anlık sohbet vardır.
    7. Dahili websocket ile anlık akış sağlanabilmektedir.
    8. Google, Facebook, Twitter, Github siteleri ile SSO aracılığıyla kayıt ve oturum açma seçenekleri vardır.
    9. Dahili SEO
    10. Gruplar oluşturma, davet ile gruba katılma ve onaylama

    gibi bu listede olmayan onlarca özelliği içinde barındırmaktadır.

    Group-3681 (1).png

    NodeBB Kurulumu

    Ubuntu 20.04 yüklü bir sunucuda NodeBB forum kurulumu yapacağız.

    NodeBB için ön hazırlık

    Kuruluma başlayabilmemiz için aşağıdaki listede yer alanları hazırlamamız gerekiyor. Sunucuyu benim referansım ile Digitalocean’dan alırsanız 3 ay geçerli 100 USD kredi kazanabilirsiniz. Referans linki aşağıda.

    5 USD’lik sunucu işinizi görecektir.

    1. En az 1 GB RAM’li sunucu
    2. A kaydı girilmiş bir alan adı
    3. Sunucu root kullanıcısına ait şifre

    NodeBB sistem gereksinimleri

    1. Web sunucusu olarak Nginx
    2. Veri tabanı olarak MongoDB
    3. NodeJS 12+

    1- Nginx Kurulumu

    İlk olarak Ubuntu paketlerini güncelleyelim.

    sudo apt update && sudo apt upgrade -y
    

    Şimdi Nginx kurulumuna geçebiliriz.

    sudo apt-get install -y nginx
    

    2 - MongoDB kurulumu

    MongoDB’nin son sürümünü sunucuya kurmak için aşağıdaki komutları girin.

    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
    sudo apt-get update
    sudo apt-get install -y mongodb-org
    

    Şimdi terminalde sudo systemctl start mongod yazarak veri tabanı sunucusunu çalıştıralım.
    mongo yazarak veri tabanına girelim. Şimdi yeni bir veri tabanı ve kullanıcısı oluşturacağız.

    #Admin kullanıcısına geriş için;
    > use admin
    
    #Admin kullanıcısının şifresini belirleyin. " işaretlerine dikkat edin. şifre " işaretleri arasına yazılacak.
    > db.createUser( { user: "admin", pwd: "admin_şifresini_buraya_yaz", roles: [ { role: "root", db: "admin" } ] } )
    
    #nodebb kullanıcısına geçelim. Bu aynı zamanda veri tbanımız olacak.
     > use nodebb
     
     #Bu kullanıcının şifresini belirleyelim.
     > db.createUser( { user: "nodebb", pwd: "şifreyi_buraya_yaz", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
     
     #veri tabanından çıkmak için;
     quit()
    

    3 - NodeJS kurulumu

    NodeJS 16 kurulumu yapacağız.

    #Nodejs indirme
    curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    
    #Node.js kurmak için ardından;
    sudo apt-get install -y nodejs
    

    NodeBB için yeni kullanıcı oluşturma

    NodeBB, root veya sudo ayrıcalıklarına sahip kullanıcı ile kurulmamalıdır. Bu bazı karışıklıklara sebep olmaktadır. Bu yüzden hiç bir ayrıcalığı olmayan yeni bir kullanıcı oluşturacağız.
    adduser nodebb komutu ile nodebb adında bir kullanıcı oluşturmuş oldum. Şimdi bu kullanıcıya geçiş yapıp nodebb kurulumuna başlayacağız. NodeBB kullanıcısına geçmek için su - nodebb komutunu çalıştıralım.

    NodeBB kurulumu

    NodeBB kullanıcısı ile Nodebb klasörüne NodeBB indirmek için;

    git clone -b v2.x https://github.com/NodeBB/NodeBB.git nodebb
    

    Nodebb dizinine geçmek için cd nodebb komutunu kullanın.
    Şimdi NodeBB kurulum komutunu çalıştırabiliriz.

    ./nodebb setup
    

    Kurulum sırasında sizden bir takım bilgileri isteyecek. Aşağıdaki resimde vermeniz gereken cevaplar için bir görsel mevcut.

    nodebb-setup.jpeg

    Admin kullanıcısına ait bilgileri de girdikten sonra artık NodeBB’yi başlatabiliriz.

    ./nodebb start
    

    NodeBB yayınlama

    Şimdi root kullanıcısına geçiş yapalım. Bunun için exit yazmak yeterlidir.
    Şimdi kurmuş olduğumuz NodeBB forumunu Nginx’te yayına alacağız. İlk olarak dizine geçiş yapalım.

    cd /etc/nginx/sites-available
    

    Bu dizinde nodebb.conf adında bir dosya oluşturalım ve içini aşağıdakilerle dolduralım. Kendi alan adınızı eklemeyi unutmayın.

    sudo nano nodebb.conf
    

    Açılan ekrana aşağıdakileri yapıştıralım.

    server {
        listen 80;
    
        server_name forum.example.com;
    
        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
    
            proxy_pass http://127.0.0.1:4567;
            proxy_redirect off;
    
            # Socket.IO Support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
    

    Şimdi aşağıdaki komutla ilgili dizine gidelim.

    cd ../sites-enabled
    

    Siteyi yayına almak için aşağıdaki komutu çalıştıralım.

    sudo ln -s ../sites-available/nodebb.conf
    

    Tüm değişikliklerin aktif olması için nginx’i yeniden başlatmak gerekiyor. Bunun için;

    sudo systemctl restart nginx
    

    Artık http://alanadiniz. com adresinden sitenizi görüntüleyebiliyor olanız gerekiyor.


  • Flarum son sürüm hosting kurulum dosyaları
  • adminA admin

    Flarum açık kaynak kodlu bir forum/tartışma yazılımıdır. Laravel üzerine inşa edilmiş, yeni, nesil modern, eklentilerle genişletilebilen son derece hızlı bir yazılımdır.

    Flarum veri tabanı olarak MySQL kullanılır. PHP 7.4 - 8.0 - 8.1 - 8.2 destekler.

    Bir Flarum sitesinin hostingde çalışması için gerekli minimum sistem özellikleri şu şekilde olmalıdır.

    1. En az PHP 7.4 ve curl, dom, gd, json, mbstring, openssl, pdo_mysql, tokenizer, zip, fileinfo PHP eklentileri
    2. MySQL 5.6+ veya MariaDB 10.0.5+
    3. Apache (mod_rewrite etkin), Nginx veya Listespeed web sunucusu

    Flarum Hosting Kurulumu

    1. Flarum V1.4 sürümü hosting kurulum dosyalarını aşağıdaki linkten indirin.

    (İndirebilmeniz için oturum açmış olmanız gerekiyor)

    flarumv1.4.zip

    1. Hostingde yeni bir veri tabanı ve tüm ayrıcalıklara sahip bir veri tabanı kullanıcısı oluşturun.
    2. İndirdiğiniz Flarum hosting kurulum dosyasını hostingde site dizinine yükleyin.
    3. Alan adınıza gidin ve kurulum işlemini tamamlayın.

    Pakette Hangi Eklentiler var

    İşe yarar gördüğüm hemen hemen Flarum V1.4 uyumlu tüm eklentileri eklemeye çalıştım. İstediğiniz eklenti pakette yoksa yorum olarak yazın eklerim.

            "acpl/flarum-lscache": "*",
            "acpl/mobile-tab": "*",
            "afrux/forum-stats-widget": "*",
            "afrux/forum-widgets-core": "*",
            "afrux/news-widget": "*",
            "afrux/online-users-widget": "*",
            "afrux/top-posters-widget": "*",
            "alexanderomara/flarum-wp-users": "^1.5",
            "antoinefr/flarum-ext-money": "^1.2",
            "archlinux-de/flarum-discussion-feed": "^0.2.0",
            "askvortsov/flarum-auto-moderator": "*",
            "askvortsov/flarum-categories": "^3.0",
            "askvortsov/flarum-checklist": "*",
            "askvortsov/flarum-discussion-templates": "^0.8.3",
            "askvortsov/flarum-markdown-tables": "*",
            "askvortsov/flarum-moderator-warnings": "^0.6.1",
            "askvortsov/flarum-pwa": "^3.1",
            "askvortsov/flarum-rich-text": "*",
            "blomstra/cache-assets": "*",
            "blomstra/flag-duplicates": "*",
            "blomstra/mark-unread": "*",
            "blomstra/no-email-notifications": "*",
            "blomstra/notification-deleter": "*",
            "blomstra/user-filter": "*",
            "blomstra/welcome-login": "*",
            "clarkwinkelmann/flarum-ext-author-change": "^1.0",
            "clarkwinkelmann/flarum-ext-bookmarks": "^1.0",
            "clarkwinkelmann/flarum-ext-circle-groups": "^1.0",
            "clarkwinkelmann/flarum-ext-create-user-modal": "^1.3",
            "clarkwinkelmann/flarum-ext-email-whitelist": "^1.0",
            "clarkwinkelmann/flarum-ext-featured-discussions": "*",
            "clarkwinkelmann/flarum-ext-first-post-approval": "^1.0",
            "clarkwinkelmann/flarum-ext-follow-tags-prompt": "^1.0",
            "clarkwinkelmann/flarum-ext-group-invitation": "^1.0",
            "clarkwinkelmann/flarum-ext-group-list": "^1.0",
            "clarkwinkelmann/flarum-ext-likes-received": "^1.0",
            "clarkwinkelmann/flarum-ext-lock-likes": "^1.1",
            "clarkwinkelmann/flarum-ext-mailing": "^1.0",
            "clarkwinkelmann/flarum-ext-passwordless": "^1.4",
            "clarkwinkelmann/flarum-ext-popular-discussion-badge": "^1.1",
            "clarkwinkelmann/flarum-ext-post-bookmarks": "^1.0",
            "clarkwinkelmann/flarum-ext-post-permissions": "^1.0",
            "clarkwinkelmann/flarum-ext-status": "^1.0",
            "clarkwinkelmann/flarum-ext-username-blacklist": "^1.0",
            "clarkwinkelmann/flarum-ext-who-read": "^1.4",
            "darkle/fancybox": "^1.0",
            "datitisev/flarum-discussion-agree-message": "*",
            "datlechin/flarum-add-like-controls": "*",
            "datlechin/flarum-link-preview": "*",
            "datlechin/flarum-scroll-buttons": "*",
            "datlechin/flarum-signup-button": "*",
            "davwheat/flarum-ext-ads": "*",
            "extiverse/mercury": "*",
            "flarum-lang/turkish": "1.2.0.2",
            "flarum/approval": "*",
            "flarum/bbcode": "*",
            "flarum/core": "^1.2",
            "flarum/emoji": "*",
            "flarum/flags": "*",
            "flarum/lang-english": "*",
            "flarum/likes": "*",
            "flarum/lock": "*",
            "flarum/markdown": "*",
            "flarum/mentions": "*",
            "flarum/nicknames": "*",
            "flarum/pusher": "*",
            "flarum/statistics": "*",
            "flarum/sticky": "*",
            "flarum/subscriptions": "*",
            "flarum/suspend": "*",
            "flarum/tags": "*",
            "flarumtr/flarum-ext-mobile-search": "^1.2",
            "fof/analytics": "*",
            "fof/ban-ips": "*",
            "fof/bbcode-details": "^1.0",
            "fof/bbcode-tabs": "*",
            "fof/best-answer": "*",
            "fof/byobu": "*",
            "fof/cookie-consent": "^1.1",
            "fof/custom-footer": "*",
            "fof/default-group": "*",
            "fof/default-user-preferences": "*",
            "fof/discussion-language": "*",
            "fof/discussion-thumbnail": "*",
            "fof/disposable-emails": "*",
            "fof/doorman": "*",
            "fof/drafts": "*",
            "fof/filter": "*",
            "fof/follow-tags": "*",
            "fof/formatting": "*",
            "fof/gamification": "^1.3",
            "fof/geoip": "*",
            "fof/html-errors": "^1.0",
            "fof/ignore-users": "*",
            "fof/impersonate": "*",
            "fof/linguist": "^1.0",
            "fof/links": "^1.0",
            "fof/mason": "^1.0",
            "fof/masquerade": "*",
            "fof/merge-discussions": "*",
            "fof/moderator-notes": "*",
            "fof/nightmode": "*",
            "fof/oauth": "*",
            "fof/pages": "^1.0",
            "fof/passport": "*",
            "fof/polls": "^1.0",
            "fof/pretty-mail": "*",
            "fof/prevent-necrobumping": "^1.0",
            "fof/profile-image-crop": "*",
            "fof/pwned-passwords": "*",
            "fof/realtimelogin": "^1.0",
            "fof/recaptcha": "*",
            "fof/sentry": "*",
            "fof/share-social": "^1.0",
            "fof/sitemap": "^1.0",
            "fof/socialprofile": "^1.1",
            "fof/spamblock": "*",
            "fof/split": "*",
            "fof/stopforumspam": "*",
            "fof/subscribed": "*",
            "fof/terms": "*",
            "fof/upload": "^1.1",
            "fof/user-bio": "*",
            "fof/user-directory": "*",
            "fof/username-request": "*",
            "fof/webhooks": "^1.0",
            "ianm/follow-users": "*",
            "ianm/html-head": "*",
            "ianm/level-ranks": "*",
            "ianm/no-meta-title": "*",
            "ianm/syndication": "*",
            "ianm/synopsis": "^1.2",
            "isaced/flarum-ext-email-verification-switch": "*",
            "itnt/flarum-uitab": "^0.4.2",
            "jslirola/flarum-ext-login2seeplus": "^0.2.0",
            "justoverclock/country-flags": "*",
            "justoverclock/custom-html-widget": "*",
            "justoverclock/edit-posts": "*",
            "justoverclock/feautured-discussions-widget": "*",
            "justoverclock/flarum-ext-contactme": "^0.2.3",
            "justoverclock/flarum-ext-dontgoaway": "^0.2.5",
            "justoverclock/flarum-ext-feedback": "*",
            "justoverclock/flarum-ext-guestengagement": "^1.0",
            "justoverclock/flarum-ext-hashtag": "^1.0",
            "justoverclock/flarum-ext-keywords": "*",
            "justoverclock/flarum-ext-socialcards": "^1.0",
            "justoverclock/flarum-ext-toastme": "^0.1.1",
            "justoverclock/flarum-ext-welcomebox": "^1.3",
            "justoverclock/geo-weather": "*",
            "justoverclock/header-slideshow": "*",
            "justoverclock/hot-discussions": "*",
            "justoverclock/hot-discussions-cards": "*",
            "justoverclock/last-post-useravatar": "*",
            "justoverclock/last-registered-users": "*",
            "justoverclock/last-tweet": "*",
            "justoverclock/last-users-posts": "*",
            "justoverclock/user-statistics": "*",
            "nearata/flarum-ext-cakeday": "^2.0",
            "nearata/flarum-ext-copy-code-to-clipboard": "^2.0",
            "nosun/reply-to-see": "^1.03",
            "ramesh-dada/mobile-flarum-newdiscuss": "^7.2",
            "sycho/flarum-move-posts": "*",
            "sycho/flarum-profile-cover": "*",
            "the-turk/flarum-regrole": "*",
            "the-turk/flarum-stickiest": "2.0.1",
            "v17development/flarum-blog": "^0.5.0",
            "v17development/flarum-seo": "^1.8",
            "v17development/flarum-user-badges": "^1.0",
            "xelson/flarum-ext-chat": "^1.1",
            "zerosonesfun/direct-links": "^3.1",
            "zerosonesfun/flarum-up": "*"
    

  • Discourse, NodeBB, Flarum karşılaştırması
  • adminA admin

    Uzun zamandır Flarum, NodeBB ve Discourse altyapısı kullanan forumlara sahibim. Tablo halinde bu üç popüler forum yazılımının karşılaştırmasını paylaşmak istedim. Unutmayın ki bu yazılımlar sürekli geliştirilmektedir. Bu yazıyı yazdığım tarih itibarıyla karşılaştırma aşağıdaki tabloda olduğu gibidir.

    Bu üçü arasında barındırma maliyeti en fazla olan Discourse en az olan ise Flarum’dur.

    Aynı özellikte üç sunucuda bu üç yazılım kurulu olsun. 1000 kişinin sitede dolaştığını varsayalım. Performans şu şekilde Nodebb > Discourse > Flarum

    Discourse kullanan sitemi paylaşmayacağım.

    Flarum Sitem:

    NodeBB Sitem:

    Özellik Discourse NodeBB Flarum
    Kod Açık Kaynak Açık Kaynak Açık Kaynak
    Teknoloji Ruby & Rails NodeJS PHP + Java Script
    Performans İyi Çok iyi İyi
    Paylaşımlı Hosting Desteği YOK YOK VAR
    Veri Tabanı PostreSQL + Redis MongoDB + Redis MySQL
    Güncelleme Panelden SSH ile SSH ile
    Eklenti Kurulumu SSH ile Panelden SSH ile
    SEO Dahili Dahili Eklenti
    Yapısal Veri Var Yok Var
    Dahili Canlı Sohbet Eklenti Dahili Eklenti
    Özel Mesaj Dahili Dahili Eklenti
    Davet ile Kayıt Dahili Dahili Eklenti
    Wordpress SSO Var (Ücretsiz) ? Var (Ücretli)
    Reklam Eklentisi Var (Gelişmiş) Var Yok (Beta 16)
    Sosyal Login Var Var Var
    Destek Çok iyi Vasat Çok iyi
    Gece Modu Dahili Eklenti (kötü) Eklenti (iyi)
    Websocket Dahili Dahili Eklenti (kötü)
    Güncelleme Sıklığı Çok iyi Vasat Çok iyi
    Etiket Var Var Yok
    Youtube, Twitter vs. Embed Dahili (Grlişmiş) Eklenti (vasat) Eklenti (vasat)
    E-posta ile yanıt Var Yok Yok
    PWA ve bildirim Var Yok Var
    Çeviri Dahili (panelden translate var) Dahili (Panelden Translate yok) Eklenti (panelden eklenti ile translate var)
    Özet E-postları Var Var Yok
    Ayrıntılı İstatistikler Dahili (Gelişmiş) Dahili (Gelişmiş) Var (vasat)
    Çevrim içi üyeler Eklenti (vasat) Dahili Yok
    Bookmark Var (gelişmiş) Var Var
    Discord, Telegram, Slack vb. Entegre Var (gelişmiş, bildirim var) Yok Yok

    Google Pagespeed Değerleri:

    Testi yaptığım tarih itibarıyla sonuçlar şu şekilde:

    Yazılım Mobil Masaüstü
    Discourse 95 100
    NodeBB 66 95
    Flarum 54 97

  • Aynı sunucuda birden fazla NodeBB sitesi çalıştırma
  • adminA admin

    Aynı sunucuda birden fazla NodeBB altyapısı kullanan site kurmak için yapmanız gereken bir kaç adımdan bahsedeceğim. Elimizde isimleri NodeBB1 ve NodeBB2 olan iki tane site ve user1 ve user2 iki adında iki tane Linux kullanıcımız olsun.

    NodeBB1 sitesi hali hazırda suncuda çalışıyor ve biz NodeBB2 sitesinide bu sunucuda barındırmak istiyoruz. İşte yapmanız gerekenler:

    • Bu rehber ile NodeBB kurulumunu yap.
    • Rehberde bahsedilenleri yapıp başarılı bir kurum yaptıktan sonra ./nodebb start komutunu çalıştırmadan önce;
      – NodeBB2 dosyalarının olduğu dizinde config.json dosyasını bul. Aşağıdakine benzer bir şey olmalı.
    {
        "url": "https://www.kurulumu.net",
        "secret": "xxxx-xxxx-xxx-xx-xxxx",
        "database": "mongo",
        "port": "1234" // buraya 4567 dışında 1-65535arasında herhangi bir port giriyoruz.
        "mongo": {
            "host": "127.0.0.1",
            "port": "27017",
            "username": "user",
            "password": "pass",
            "database": "database",
            "uri": ""
        }
    }
    

    – Yukarıda biz port numarasını değiştirdik. NodeBB varsayılan olarak 4567 portunu kullanıyor. Aynı porttan iki NodeBB sitesi birbirine karışacak. O yüzden port numarasını değiştiriyoruz.
    – Şimdi NodeBB2 sitesi için nginx.conf dosyasında proxy bloğuna yeni belirlediğimiz port numarasını girmeliyiz. Aşağıdakine benzerdir sizin dosyanız.

    location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
    
            proxy_pass http://127.0.0.1:1234; //buraya belirlediğin port numarasını yazacaksın.
            proxy_redirect off;
    
            # Socket.IO Support
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    

    Artık NodeBB2 sitesini yeniden oluşturup başlatabilirsiniz. Nginx’i de yeniden başlatmayı unutmayın.


  • RE: Ücretli Kurulum Servisi
  • adminA admin

    Mutlu Müşteriler

    • kamurehber.com [Nodebb taşıma]
    • efelsefe.com [NodeBB kurulumu]
    • nojor.com [NodeBb kurulumu]
    • mutluresim.com [Chevereto kurulumu]
    • lootzz.com (NodeBB sorunlarını çözme, yeniden hayata döndürme 🙂 )

  • Ücretsiz SSL - Cloudflare Full (strict) SSL kullanımı ve ayarları
  • adminA admin

    Cloudflare sitenizi optimize ederek hızlı açılmasını sağlayan bir servistir. Cloudflare’nin DDOS koruma, SSL gibi özellikleri sitenizi güvence altına alabilirsiniz. Trafik analizi, Önbellekleme, Spam yorum koruması, dosya optimizasyonu, her zaman online gibi özellikler ücretsiz sürümde kullanılabilmektedir.

    Cloudflare tarafından imzalanan ücretsiz TLS sertifikası olan Origin SSL’yi Nginx web sunucunuza yükleyerek Cloudflare sunucuları ile Nginx sunucunuz arasındaki bağlantıyı güvenli hale getireceğiz.

    İlk olarak Cloudflare’de hesabınız yoksa bu adresten bir hesap oluşturun. Hesabınız varsa hesabınıza giriş yapın ve sitenizi Cloudflare’ye ekleyip, Cloudflare tarafından sağlanan NS’leri alan adınızı aldığınız yerden değiştirin.

    Siteniz Cloudflare’de aktif olduktan sonra;

    Cloudflare kullanıcı panelinde SSL / TLS menüsüne tıklayın. Alt menüden Origin Server’i seçin.

    KcTiCQW.png

    Create Certificate tılayın.

    cloudflare.png

    Next butonuna tıklayın. Açılan ekranda size Origin Certificate ve Private key bilgileri verilecek.

    bIBA8tf.png

    Pem (Default) için masa üstünüzde bir txt dosyası oluşturup içindekileri buraya yapıştırın. Ardından txt dosyasının adını cert.pem oalrak değiştirin. Benzer şekilde Private key için de bir txt dosyası oluşturun ve içindekileri bu dosyaya yapıştırdıktan sonra dosyanın adını key.pem olarak değiştirin.

    Şimdi Cloudflare’deki ekranı kapatabilirsiniz. ( Ok tıklayın)

    Şimdi aşağıdaki sertifikayı kopyalayıp coludflare.crt adında oluşturacağınız txt dosyasının içine yapıştırın.

    -----BEGIN CERTIFICATE-----
    MIIGCjCCA/KgAwIBAgIIV5G6lVbCLmEwDQYJKoZIhvcNAQENBQAwgZAxCzAJBgNV
    BAYTAlVTMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmln
    aW4gUHVsbDEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZv
    cm5pYTEjMCEGA1UEAxMab3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwHhcNMTkx
    MDEwMTg0NTAwWhcNMjkxMTAxMTcwMDAwWjCBkDELMAkGA1UEBhMCVVMxGTAXBgNV
    BAoTEENsb3VkRmxhcmUsIEluYy4xFDASBgNVBAsTC09yaWdpbiBQdWxsMRYwFAYD
    VQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxpZm9ybmlhMSMwIQYDVQQD
    ExpvcmlnaW4tcHVsbC5jbG91ZGZsYXJlLm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
    ggIPADCCAgoCggIBAN2y2zojYfl0bKfhp0AJBFeV+jQqbCw3sHmvEPwLmqDLqynI
    42tZXR5y914ZB9ZrwbL/K5O46exd/LujJnV2b3dzcx5rtiQzso0xzljqbnbQT20e
    ihx/WrF4OkZKydZzsdaJsWAPuplDH5P7J82q3re88jQdgE5hqjqFZ3clCG7lxoBw
    hLaazm3NJJlUfzdk97ouRvnFGAuXd5cQVx8jYOOeU60sWqmMe4QHdOvpqB91bJoY
    QSKVFjUgHeTpN8tNpKJfb9LIn3pun3bC9NKNHtRKMNX3Kl/sAPq7q/AlndvA2Kw3
    Dkum2mHQUGdzVHqcOgea9BGjLK2h7SuX93zTWL02u799dr6Xkrad/WShHchfjjRn
    aL35niJUDr02YJtPgxWObsrfOU63B8juLUphW/4BOjjJyAG5l9j1//aUGEi/sEe5
    lqVv0P78QrxoxR+MMXiJwQab5FB8TG/ac6mRHgF9CmkX90uaRh+OC07XjTdfSKGR
    PpM9hB2ZhLol/nf8qmoLdoD5HvODZuKu2+muKeVHXgw2/A6wM7OwrinxZiyBk5Hh
    CvaADH7PZpU6z/zv5NU5HSvXiKtCzFuDu4/Zfi34RfHXeCUfHAb4KfNRXJwMsxUa
    +4ZpSAX2G6RnGU5meuXpU5/V+DQJp/e69XyyY6RXDoMywaEFlIlXBqjRRA2pAgMB
    AAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
    DgQWBBRDWUsraYuA4REzalfNVzjann3F6zAfBgNVHSMEGDAWgBRDWUsraYuA4REz
    alfNVzjann3F6zANBgkqhkiG9w0BAQ0FAAOCAgEAkQ+T9nqcSlAuW/90DeYmQOW1
    QhqOor5psBEGvxbNGV2hdLJY8h6QUq48BCevcMChg/L1CkznBNI40i3/6heDn3IS
    zVEwXKf34pPFCACWVMZxbQjkNRTiH8iRur9EsaNQ5oXCPJkhwg2+IFyoPAAYURoX
    VcI9SCDUa45clmYHJ/XYwV1icGVI8/9b2JUqklnOTa5tugwIUi5sTfipNcJXHhgz
    6BKYDl0/UP0lLKbsUETXeTGDiDpxZYIgbcFrRDDkHC6BSvdWVEiH5b9mH2BON60z
    0O0j8EEKTwi9jnafVtZQXP/D8yoVowdFDjXcKkOPF/1gIh9qrFR6GdoPVgB3SkLc
    5ulBqZaCHm563jsvWb/kXJnlFxW+1bsO9BDD6DweBcGdNurgmH625wBXksSdD7y/
    fakk8DagjbjKShYlPEFOAqEcliwjF45eabL0t27MJV61O/jHzHL3dknXeE4BDa2j
    bA+JbyJeUMtU7KMsxvx82RmhqBEJJDBCJ3scVptvhDMRrtqDBW5JShxoAOcpFQGm
    iYWicn46nPDjgTU0bX1ZPpTpryXbvciVL5RkVBuyX2ntcOLDPlZWgxZCBp96x07F
    AnOzKgZk4RzZPNAxCXERVxajn/FLcOhglVAKo5H0ac+AitlQ0ip55D2/mf8o72tM
    fVQ6VpyjEXdiIXWUq/o=
    -----END CERTIFICATE-----
    

    Oluşturduğumuz bu üç dosyayı (cert.pem , key.pem ve coludflare.crt) sunucuda /etc/ssl/ dizinine yükleyin.

    Sunucunuzda güvenlik duvarı kurulu ise SSL isteklerine cevap vermesini sağlamak için aşağıdaki komutu çalıştırın.

    sudo ufw allow 'Nginx Full'
    

    UFW’yi yeniden yüklemek için aşağıdaki komutu çalıştırın.

    sudo ufw reload
    

    Şimdi SSL sertifikalarını Nginx site bloğuna yerleştireceğiz. SSL eklenecek olan sitenin conf dosyasını açın ve 443 portuna SSL dosya konumlarını ekleyin.

    server {
        listen 443 ssl http2; listen [::]:443 ssl http2;
        
        #Cloudflare SSL dosyaları
        
    	ssl_certificate /etc/ssl/cert.pem;
    	ssl_certificate_key /etc/ssl/key.pem;
    	ssl_client_certificate /etc/ssl/cloudflare.crt;
    	ssl_verify_client on;
        .
        .
        .
        .
    }
    

    Şimdi değişikliklerin aktif olması için Nginx’i yeniden başlarmamaız gerekiyor. İlk olarak bir hata olup olmadığını kontrol etmek için nginx -t komutunu çalıştırın. Herhangi bir hata vermezse systemctl reload nginx komutunu çalıştırın.

    Sunucu tarafındaki işlemler böylece bitmiş oldu. Şimdi Cloudflare’de bir değişiklik daha yapacağız.

    xtqRI9b.png

    Varsayılan olarak gelen full seçeneğini artık full (strick) olarak değiştirelim.

    Artık alan adınıza https:// ile bağlanabiliyor olmalısınız.

    Son olarak Cloudflare’de SSL/TLS menüsünde Origin Server sekmesine gidin ve Authenticated Origin Pulls seçeneğini değiştirin. Bunu yaptıktan sonra alan adınıza gittiğinizde;

    FwYMg6e.png

    Şeklinde bir hata almalısınız. Telaş yapmayın bir süre sonra siteniz açılacaktır.


  • Discourse forumunda SEO sorunları
  • adminA admin

    Geçen Discourse forumunda gezinirken konu dikkatimi çekti. Kullanıcının biri bu konuyu açmış. Konudaki gönderilerin birinde bir kullanıcı iki ay önce açtığı sitesindeki konuların hala indexlenmediğini söylüyor. Sorunu Discourse geliştiricileri de kabul ediyor.

    Discourse forumun kendisinde bir kaç başlığı bende Google de arattım ama hiç indexlenmemiş.

    Bakalım nasıl bir değişiklik yapacaklar? Gerçekten merak ediyorum.


  • Hosting kullananlar için Flarum Güncelleme
  • adminA admin

    Flarum’u paylaşımlı hotingde kullananlar için Flarum güncellemesinin nasıl yapılacağını anlatacağım.

    Flarum’un yeni bir sürümü yayınlandığında ilk olarak Localhostta Xampp, Wampp benzeri bir uygulama ile bilgisayarınıza yeni sürümü kurmanız gerekiyor. Ayrıca tüm olmasını istediğiniz eklentileri de yüklemelisiniz.

    Kurulumu.net olarak her yeni versiyon çıktığında bu linkten hazır kurulum dosyalarını paylaşıyorum. İsterseniz buradan indirip güncelleme yapabilirsiniz.

    Hostingde Flarum Güncelleme

    Her güncellemede veri tabanının ve site dosyalarının bir yedeğini mutlaka alın. Bir şeyler yanlış gitmesi durumunda geri dönüşü olsun.

    Bilgisayarda yapılacak işlemler

    1. Localhostta kendi paketinizi oluşturun veya buradan Flarum son sürüm hosting kurulum dosyalarını indirin.
    2. İndirdiğiniz veya kendi oluşturduğunuz klasörde bulunan assets klasörünü ve .htaccess dosyasını silin.

    Hostingde yapılacak işlemler

    1. Hosting site dizinde .htaccess, config.php ve assets klasörleri dışında kalan tüm dosya ve klasörleri silin.
    2. Şimdi bir önceki adımda bilgisayarda hazırladığınız dosyaları hostinge yükleyin.
    3. Alan adınızı tarayıcıda açın ve veri tabanı şifresini girin.

    Güncelleme tamamlanmış olacaktır.


  • RE: Kurulumu.Net'te kullandığım Özel CSS'ler
  • adminA admin

    @volanar I made it with the following CSS code.

    @media (max-width: 767px) {
    .slideout-menu .chat-list li .main-avatar .avatar {
        border-radius: 50%;
    }}
    
    body.lights-out .recent-replies ul li {
         background: #36393e;
    }
    
    .recent-replies ul li p {
        font-size: 12px
    }
    .recent-replies ul li {
        width: 100%;
        height: 70px;
        line-height: 16px;
        margin-left: 0;
        padding: 10px 10px 10px 10px;
        list-style-type: none;
        border-radius: 8px;
        margin-bottom: 10px;
        background: #ffffff;
    }
    
    .recent-replies ul {
        width: 100%;
        height: 100%;
        line-height: 16px;
         margin-left: 0;
        padding: 5px 5px 5px 0;
        list-style-type: none;
    }
    
    .recent-replies ul li span {
        font-size: 12px;
        overflow: hidden;
        height: 16px;
        float: left !important;
        margin-left: 15px;
        margin-right: 3px;
    }
    
    .recent-replies ul li .avatar {
    border-radius: 50%;
    }
    
    .recent-replies ul li>div {
        max-height: 35px;
    }
    
    
    
    
    span.tag:before {
        content: "\f02c";
        font-family: "Font Awesome 5 Free";
        margin-right: 3px;
        margin-left: 2px;
        font-weight: 600;
    	font-size: 9px;
    	vertical-align: 0;
    }
    
    
    .fa-chevron-up:before {
        font-family: 'Font Awesome 5 Free';
    	font-weight: 600;
    	font-size: 17px;
    	content: '\f164';
    	margin-right: 4px;
    	vertical-align: -1px;
    }
    
    .fa-chevron-down:before  {
        font-family: 'Font Awesome 5 Free';
    	font-weight: 600;
    	font-size: 17px;
    	content: '\f165';
    	margin-right: 4px;
    	vertical-align: -1px;
    	
    }
    .topic [component="post/downvote"], .topic [component="post/upvote"] {
        color: #d9d9d9;
    }
    
    .answered i, .unanswered i {
        vertical-align: 0;
        margin-right: 2px;
    }
    
    .answered, .unanswered {
        border-radius: 4px
    }
    
    .posts-list .posts-list-item .topic-title {
        text-decoration: none;
    
    }
    
    .category>ul>li:not(.unread) .card {
        border-color: #e7672e!important;
    }
    
    .topic [component="topic/labels"] {
        color: #e7672e;
    }
    
    .topic .pagination-block .progress-bar {
        background-color: #e7672e;
        border-radius: 4px 4px 0 0;
    }
    
    
    .input-group-addon {
        
        background-color: #e7672e;
        border: 1px solid #e7672e;
       color: #fff;
    }
    
    
    .tag-topic-count {
        color: #e7672e;
    }
    .pagination>.active>a, .pagination>.active>a:focus, .pagination>.active>a:hover, .pagination>.active>span, .pagination>.active>span:focus, .pagination>.active>span:hover {
        
        background-color: #e7672e;
        border-color: #e7672e;
        
    }
    
    .breadcrumb .fa {
       color: #E7672E;
    }
    .fab {
        background-color: #E7672E;
    }
    .badge {
        background-color: #E7672E;
        border-radius: 4px;
    }
    
    pre {
        padding: 9.5px;
        margin: 0 0 10px;
        font-size: 13px;
        background-color: #e8ecf3;
        border: 1px solid #e8ecf3;
        border-radius: 4px;
    }
    
    .posts-list .posts-list-item .post-body {
        border-right: 2px solid #236ee7;
        
    }
    
    .topic .posts .content blockquote {
        font-size: 14px;
        font-style: italic;
    }
    
    blockquote {
        border-left: 5px solid #1c74e9;
        background-color: #e8ecf3;
        border-radius: 0 4px 4px 0;
    }
    
    .navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:focus, 
    .navbar-default .navbar-nav>.active>a:hover {
        color: #667c99;
        background-color: #e8ecf3;
    }
    
    .navbar-default .navbar-nav>li>a {
        color: #667c99;
    }
    
    .composer .tags-container [component="composer/tag/dropdown"]>button {
        padding: 6px 12px;
        margin-top: 10px;
    }
    
    .categories>li, .category>ul>li {
    	margin-left: 0;
        margin-right: 0;
        padding-bottom:0
    }
    
    .avatar.avatar-rounded {
        background-color: #e8ecf3;
    }
    
    
    .users-container .users-box {
        width: 138px;
        border: 1px solid #f2f6fc;
        border-radius: 8px;
        background-color: #fff;
        padding-top: 15px;
        margin-left: 0;
    }
    
    body.lights-out .users-container .users-box {
     
    	border: 1px solid #252a30;
        border-radius: 8px;
        background-color: #36393e;
    }
    
    
    .categories>li, .category>ul>li {
        border-radius: 8px;
        margin-bottom: 10px;
    	background-color: #fff;
    }
    
    body {
    background-color: #e8ecf3;
    
    }
    
    .topic-list-header {
     background-color: #e8ecf3;
     border-top: none;
     border-bottom: none;
    }
    
    .btn-default {
        color: #56646f;
        background-color: #ffffff;
        border-color: #e8ecf3;
    }
    
    .recent-cards .recent-card-container .recent-card {
    	border: 1px solid #ffffff;
        background-color: #ffffff;
    }
    .topic .topic-header {
    	background-color: #e8ecf3;
    }
    
    li[component="post"] {
    	background-color: #fff;
        border-radius: 8px;
    }
    
    
    body.lights-out .categories>li, body.lights-out .category>ul>li {
    background-color: #36393e;
    border: 1px solid #252a30;
    }
    
    body.lights-out li[component="post"] {
    	background-color: #36393e;
    }
    
    .categories>li .content h2 a, .category>ul>li .content h2 a, .recent-cards .recent-card-container .recent-card h4 a {
        color: #272c32;
    }
    
    .composer .mobile-navbar {
        background: #1c74e9
    }
    
    .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
        border-radius: 0 4px 4px 0;
    }
    
    
    .composer .resizer .trigger i {
        background-color: #1c74e9;
        border-color: #1c74e9;
    }
    
    body.lights-out .btn-primary {
        background-color: #1c74e9;
        border-color: #1c74e9;
        font-weight: 600;
    }
    .btn-default {
    font-weight: 600
    }
    
    a {
        color: #1c74e9;
        
    }
    .btn-primary {
        background-color: #1c74e9;
        border-color: #1c74e9;
        font-weight: 600;
    }
    
    body.lights-out .btn-primary.active, body.lights-out .btn-primary.focus, body.lights-out .btn-primary:active, body.lights-out .btn-primary:focus, body.lights-out .btn-primary:hover, body.lights-out .open>.dropdown-toggle.btn-primary {
        background-color: #0e79cf;
        border-color: #0e79cf;
        font-weight: 600;
    
    }
    
    .btn-primary.active, .btn-primary.focus, .btn-primary:active, .btn-primary:focus, .btn-primary:hover, .open>.dropdown-toggle.btn-primary {
        background-color: #0e79cf;
        border-color: #0e79cf;
        font-weight: 600;
    }
    
    
    .selection-tooltip-container {
        border: none;
        background: none;
    }
    
    .tag-list .tag {
        background: #f5f5f5;
        padding: 3px 5px;
        color: #667c99;
    }
    
    .modal-content {
        border-radius: 8px
    }
    
    .topic .posts.timeline [component="topic/event"].timeline-event .timeline-text, .topic .posts.timeline [component="topic/necro-post"].timeline-event .timeline-text {
        line-height: 16px
    }
    
    .posts [component=post][data-index="-1"].isSolved {
        border-left: 4px solid #5cb85c !important;
        border-top: 1px solid #5cb85c !important;
        border-bottom: 1px solid #5cb85c !important;
        border-right: 1px solid #5cb85c !important;
        padding: 20px 20px 15px 0px !important;
    }
    
    body.lights-out .categories>li .content h2 a, body.lights-out .category>ul>li .content h2 a {
        color: #fff
    }
    
    body.lights-out .recent-cards .recent-card-container .recent-card h4 a {
        color: #fff
    }
    
    
    @media (max-width: 767px){
    .slideout-panel {padding-top: 50px !important;}
        .topic .topic-header {background: #e8ecf3}
        .btn-default {
            background-color: #fff !important;
            
        }
    }
    
    .chat-modal [component="chat/header"], .chats-full [component="chat/header"] {
        background-color: #a46afd
    }
    
    @media (max-width: 767px){
    .recent-cards.carousel-mode {
        margin-top: 10px
    }}
    a.permalink {text-decoration: none;
    }
    #nprogress .bar {
    display: none
    }
    
    
    @media (max-width: 767px){
    
       body.lights-out .topic .topic-header {background: #36393e}
       body.lights-out .btn-default {
            background-color: #252a30 !important;
           color: #ffffff;
       }
    }
    
    .topic .posts.timeline .timeline-event:not(:first-child), .topic .posts.timeline>[component=post]:not(:first-child) {margin-bottom: 20px;}
    
    .topic-owner-post [itemprop="author"]:after {
        content: "\f303";
        font-family: 'font awesome 5 free';
        background-image: linear-gradient(to right, #f75, #feaa4a);
        border-radius: 50%;
        color: #fff;
        margin-left: 10px;
        margin-right: 0px;
        vertical-align: middle;
        font-size: 9px;
        padding: 5px;
    }
    
    .topic .posts.timeline .timeline-event:not(:first-child), .topic .posts.timeline>[component=post]:not(:first-child) {
        padding-top: 20px;
    }
    
    li[component="post"] { border: 1px solid #eee !important;
        margin-bottom: 20px;
        
        padding-right: 30px;
    }
    li.topic-owner-post {
        padding-top: 20px;
    }
    
    .posts-list .posts-list-item {
        margin-bottom: 20px;
        padding: 20px;
    }
    
    body.lights-out li[component="post"] { border: 1px solid #252a30 !important;}
    
    .topic .posts.timeline [component=post]:last-child:after {
    border-bottom: none !important
    }
    
    @media only screen and (max-width: 991px){
    .topic .content {
        padding: 0px 20px 0px 20px !important;
    }}
    
    @media only screen and (max-width: 991px){
    .topic .posts.timeline [component=post]>div:not(.content) {
        padding: 0px 20px 0px 20px !important;
    }}
    
    .topic .content {font-size: 16px}
    
    @media (max-width: 991px){
    .topic .posts.timeline [component=post] {
        border-bottom: 1px solid #eee;
    }}
    
    @keyframes pulsate{0%{opacity:0}100%{opacity:1}}
    .unread-count:after {
        animation: pulsate 2s infinite;
        height: 16px;
        min-height: 16px;
    }
    
    body.lights-out .fa.fa-lightbulb-o:before {
        content: "\f186";
    }
    
    .unread-count:after {
        position: absolute;
        left: 23px;
        top: 10px;
        font-size: 10px;
        text-align: center;
        border: 1px solid #890405;
        color: #fff;
        font-weight: 700;
        min-width: 16px;
        border-radius: 3px;
        background: #c91106;
        padding: 1px 2px;
    }
    
    @media (max-width: 767px){.btn {padding: 8px 12px;}}
    
    .navbar-fixed-top {
    background: #fff;
    }
    
    #content {
        padding-bottom: 20px;
        transition: opacity 0ms linear;
    }
    
    @media (max-width: 991px){
    .topic h1 .topic-title {
      
        margin-top: 15px;
    }}
    
    
    .chat-modal .chat-content li.chat-message .chat-user a, .expanded-chat .chat-content li.chat-message .chat-user a {
        color: #d9d9d9;
    }
    
    .nav-pills>li>a {
        border-radius: 4px;
    }
    .form-control:focus {box-shadow:none}
    
    .btn, .group-label, .topic .posts .content pre code, .hljs, code, .tag-list .tag .btn-info:hover, .btn-info:focus, .btn-info.focus, .btn-info:active, .btn-info.active, .open>.dropdown-toggle.btn-info, .btn-primary, .btn-primary:hover, .btn-primary:focus, .btn-primary.focus, .btn-primary:active, .btn-primary.active, .open>.dropdown-toggle.btn-primary, .tag-list .tag, .alert-warning
    {
        border-radius: 4px
    }
    
    
    
    .input-group-addon {
        
        border-top-right-radius: 4px;
        border-bottom-right-radius: 4px;
    }
    
    
    .announcements-widget {
        padding: 0;
        list-style-type: none;
    }
    
    
    .header .forum-logo {
        height: 35px;
        margin-top: 8px;
        margin-right: 12px;
    }
    
    .categories>li .category-children .category-children-item {
        min-width: 110px;
    }
    
    
    code {
        color: #333;
        background-color: #e8ecf3;
    }
    
    .hljs{
        background: #e8ecf3;
        color: #33343d;
        padding: 10px;
    }
    
    .nav-pills>li.active>a, .nav-pills>li.active>a:focus, .nav-pills>li.active>a:hover {border-radius: 4px}
    
    
    
    @media (max-width: 767px){
    .header .forum-logo {
         margin-left: 1px; 
    }}
    
    .popular-tags > .inline-block {
    	width: 100%;
    	margin-top: -8px;
    	
    	&:first-child {
    		margin-top: 0;
    	}
    
    	&:last-child {
    		margin-bottom: -5px;
    	}
    }
    
    .popular-tags .tag-topic-count {
    	float: left;
    	width: 20%;
    	margin-top: 0px;
    	background-color: #cbebf7;
    	color: #777;
    	padding: 4px 4px 5px 4px;
    	border: 0;
    	text-align: center;
    }
    
    .popular-tags .tag-item {
    	float: left;
    	width: 80%;
    	background-color: #4fc3f7;
    	color: white;
    	font-weight: 500;
    	padding-left: 10px;
    	position: relative;
    	padding: 5px 5px 4px 10px;
    }
    
    .popular-tags-bar {
    	background-color: rgba(0,0,0,0.07);
    	width: 0px;
    	height: 32px;
    	position: absolute;
    	top: 0px;
    	left: 0px;
    	-webkit-transition: width 750ms ease-out;
    	-moz-transition: width 750ms ease-out;
    	-ms-transition: width 750ms ease-out;
    	-o-transition: width 750ms ease-out;
    	transition: width 750ms ease-out;
    }
    
    .topic .posts .content .img-responsive {
        padding: 6px;
        border: 1px solid #c3c3c3;
        background-color: #eee;
        border-radius: 3px;
        margin: 10px;
    }
    
    .well {
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: none;
    border: none;
    
    }
    
    
    .btn-default {
        color: #56646f;
        background-color: #fff;
        border-color: #e8ecf3;
    }
    
    .form-control {
        border-radius:4px;
       
    }
    
    .btn-default.active, .btn-default.focus, .btn-default:active, .btn-default:focus, .btn-default:hover, .open>.dropdown-toggle.btn-default {
        color: #fff;
        background-color: #667c99;
        border-color: #667c99;
    }
    
    .open>.dropdown-menu  {
           border-radius: 4px;
    }
    
    .panel-default {
         border-radius: 4px;
         border-color: #e8ecf3;
    }
    
    .topic .pagination-block {
            background-color: #fff;
    		border-radius: 8px 8px 0 0;
    }
    
    
    .dropdown-menu>li>form>.btn-link, .dropdown-menu>li>form>button {
        color: #f23d37;
    }
    
    .alert-warning {
        background-color: #d9534f;
        color: #fff;
        border-color: #d9534f;
    }
    
    body.lights-out .pagination a {
        
        background-color: #36393e;
       
    }
    
    @media (max-width: 991px){
    body.lights-out .topic .posts.timeline [component=post] {
        border-bottom: 1px solid #252a30;
    }}
    
    body.lights-out .bg-info {
        background-color: #36393e;
    }
    
    body.lights-out .alert-info {
        background-color: #36393e;
        border-color: #252a30;
        color: #ddd;
        border-radius: 4px;
    }
    
    body.lights-out .page-register-complete .tos { background: #36393e;}
    
    body.lights-out .chat-list .unread {
        background-color: #252a30;
    }
    
    body.lights-out .header .notification-list li.unread, .slideout-menu .notification-list li.unread {background-color: #252a30;}
    
    
    body.lights-out .alert-danger {
        background-color: #36393e;
        border-color: #252a30;
        color: #999;
        border-radius: 4px
    }
    
    
    body.lights-out .recent-cards .recent-card-container .recent-card {
        
        
        border: 1px solid #252a30;
        background-color: #36393e;
        
    }
    
    body.lights-out .topic [component="post/downvote"], .topic [component="post/upvote"] {color: #d9d9d9;}
    
    body.lights-out .topic .topic-info {
        border-bottom: 1px solid #252525;
    }
    
    
    body.lights-out .topic .posts>[component=post] .avatar {
        box-shadow: 0 0 0 0.5rem #36393e;
    }
    
    
    body.lights-out .form-control {
        background-color:#36393e;
        border: 1px solid #252a30;
        color: #d9d9d9;
    }
    
    
    body.lights-out .input-group-addon {
        background-color: #36393e;
        border: 1px solid #252a30;
        
    }
    
    body.lights-out .well {
       
        background-color: #36393e;
        
    }
    
    body.lights-out .topic .pagination-block .pagination-text {
        color: #d9d9d9
    }
    
    body.lights-out .navbar-default .navbar-nav>li>a {color: #fff}
    
    body.lights-out .topic .pagination-block {
        background-color: #36393e;
    }
    
    body.lights-out .tag-list .tag {
        background: #36393e;
    }
    
    
    
    body.lights-out .composer .write {
        background: #36393e;
    }
    
    body.lights-out .composer {
        background:  #36393e;
    }
    
    body.lights-out .composer .formatting-bar .formatting-group li {
        color: #b3b3b3;
    }
    
    body.lights-out .modal-content{
        background-color: #3d4147;
        color: #d9d9d9
    }
    
    body.lights-out .account .profile .profile-meta strong {color: #337ab7}
    
    body.lights-out .modal-footer {
        border-top: 1px solid #252a30;
    }
    
    body.lights-out code {
        
        color: #898685;
        background-color: #36393e;
        
    }
    
    body.lights-out {
        background: none repeat scroll 0 0 #3d4147;
        color: #d9d9d9
    }
    
    body.lights-out .navbar-default {
        background-color: #36393e;
        border-color: #d9d9d9
    }
      
      
      body.lights-out .topic-header {
        background-color: #3d4147;
    }
    
    body.lights-out .topic .topic-info {
        border-bottom: 1px solid #252a30;
    }
    
    body.lights-out .dropdown-menu {
        background-color: #36393e;
    }
    
    body.lights-out .topic-list-header {
      background-color: #3d4147;
      border-top: 1px solid #252a30;
        border-bottom: 1px solid #252a30;
    }
    
    body.lights-out .btn-default {
        color:#d9d9d9;
        background-color: #36393e;
        border-color: #252a30;
    }
    
    body.lights-out .dropdown-menu>li>a {
        color: #fff;
    }
    
    body.lights-out .chat-modal .modal-header {
        background-color: #337ab7;
        color: #eee;
        border-bottom: 0 solid #252a30;
    }
    
    body.lights-out .chat-modal .modal-body {
        background-color: #3d4147;
    }
    
    .chat-modal [component="chat/composer"] [component="chat/input"], .chats-full [component="chat/composer"] [component="chat/input"] {
        border: 1px solid #252a30;
    }
    
    
    body.lights-out .panel-body {
        background-color: #3d4147;
        color: #d9d9d9;
    }
    
    body.lights-out .panel-default .panel-heading {
        background-color: #36393e;
        color: #d9d9d9;
        border-color: #252a30;
    }
    
    body.lights-out .chats-list>li .room-name {color: #fff}
    
    body.lights-out pre {
        
        color: #d9d9d9;
        background-color: #36393e;
        border: 1px solid #252a30;
        border-radius: 4px;
        
    }
    
    body.lights-out .posts-list .posts-list-item .topic-title {
        color: #d9d9d9
    }
    
    body.lights-out .navbar {
        border:0
    }
    
    body.lights-out .category>ul>li .tag-list .tag {
        background-color: #36393e;
    }
    
    body.lights-out .list-group-item {
       
        background-color: #36393e;
        border: 1px solid #252a30;
    }
    
    body.lights-out .panel {
        background-color: #36393e;
    }
    
    body.lights-out .panel-default {
        border-color: #252a30;
    }
    
    body.lights-out hr {
        
        border-top: 1px solid #252a30;
    }
    
    
    
    
    body.lights-out .bootstrap-tagsinput {
        background-color: #3d4147;
    }
    
    body.lights-out .navbar-default .navbar-nav>.open>a, body.lights-out .navbar-default .navbar-nav>.open>a:focus, body.lights-out .navbar-default .navbar-nav>.open>a:hover {
        background-color: #333;
        color: #555;
    }
    
    body.lights-out .category>ul>li:not(.unread) h2 a {color: #d9d9d9 !important}
    
    
    body.lights-out .chat-modal .chat-content li.chat-message .message-body-wrapper .message-body, .expanded-chat .chat-content li.chat-message .message-body-wrapper .message-body:hover {background: transparent}
    
    body.lights-out .chats-list>li .teaser-content {
       color: #6c757d;
    }
    
    body.lights-out .chats-list>li:hover {background: #3d4147}
    
    body.lights-out .header .chat-list, .slideout-menu .chat-list {color: #ccc}
    
    body.lights-out .nav-pills>li>a:hover {background: #36393e}
    
    
    @media (max-width: 767px){
    .menu-profile {
        
        background: #3d4147;
    }}
    
    @media (max-width: 767px){
    .slideout-menu {
        z-index: 10000!important;
        background-color: #36393e;
        background-image: linear-gradient(
    145deg
    ,#36393e,#36393e);
    }}
    
    @media (max-width: 767px){
    .topic-list-header {
        border-top: none;
        border-bottom: none;
    }
    }
    
    body.lights-out .page-register-complete .tos {
        background: #252a30;
    }
    
    body.lights-out  .table-striped>tbody>tr:nth-of-type(odd) {
        background-color: #252a30;
    }
    
    body.lights-out .table-bordered>tbody>tr>td, body.lights-out .table-bordered>tbody>tr>th, body.lights-out .table-bordered>tfoot>tr>td, body.lights-out .table-bordered>tfoot>tr>th, body.lights-out .table-bordered>thead>tr>td, body.lights-out .table-bordered>thead>tr>th {
        border: 1px solid #252a30;
    }
    
    body.lights-out .table-bordered {
        border: 1px solid #252a30;
    }
    

  • RE: Reklamları Boyutlandırma
  • adminA admin

    @gandalf örnek boyutlandırma;

    <center><style>
    .example_responsive_1 { width: 320px; height: 100px; }
    @media(min-width: 500px) { .example_responsive_1 { width: 468px; height: 60px; } }
    @media(min-width: 800px) { .example_responsive_1 { width: 728px; height: 90px; } }
    </style>
    <ins class="adsbygoogle example_responsive_1"
        style="display:inline-block"
         data-ad-client="ca-pub-xxxxxx"
         data-ad-slot="xxxxxx"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script></center><br>
    

  • RE: Kurulumu.Net'te kullandığım Özel CSS'ler
  • adminA admin

    @volanar Is here?

    https://imgyukle.com/f/2022/01/09/oLiphj.png


  • RE: Ücretsiz SSL - Cloudflare Full (strict) SSL kullanımı ve ayarları
  • adminA admin

    @freeworld Bilgilendirme için teşekkürler.


  • RE: NodeBB yedekleme ve sürüm yükseltme
  • adminA admin

    V1.19.0 yayınlandı. Değişiklik günlüğü için bu bağlantıyı ziyaret edebilirsiniz.


  • Türknet internet davet kodu
  • adminA admin

    Türknet’ten taahhütsüz sınırsız internet aboneliği başlatmadan önce aşağıdaki davet kodunu kullanırsanız ilk faturanız Türknet tarafından ödenir.

    Türknet Davet Kodu

    YUA22HG50TLP
    

    Kod sınırsız kullanılabilir.

    Şartlar

    • Kampanyadan kazandığınız hediye ayı kullanabilmeniz için davetinizi kabul eden
      arkadaşlarınızın TurkNet’li olduktan sonra ilk çıkan kısmi ve tam ay faturalarını ödemeleri,
      sizin de bize fatura borcunuz olmaması gerekiyor. Arkadaşlarınızın ödeme durumunu Online İşlemler’den takip edebilirsiniz!
    • Davet edilen abone, aynı adres için kampanyadan 24 ay boyunca bir kez yararlanabilir. Farklı adresler için 24 ay süre kısıtlaması uygulanmaz. Özgür İletişim Paketi satın alan tüm aboneler tercih ettikleri kadar arkadaş davet edebilecektir.
    • Kazanılan indirimler bir sonraki fatura döneminde yansıtılır. İndirimin hak edildiği ve
      yansıtılacağı fatura dönemi içerisinde aboneliğin naklin gerçekleşememesine bağlı fesih
      dahil herhangi bir nedenle fesholması halinde indirim hakkı kaybolur.
    • Tek seferde 100 kişi davet edilebilecektir.
    • Kampanya 31.01.2022 tarihine kadar geçerlidir.
    • Arkadaşını Getir kampanyası, aboneliğin başlatılacağı zaman yürürlükte olan paketler için
      kullanılabilir.
    • Arkadaşını Getir kampanyası yürürlükte olan farklı bir kampanya ile birleştirilemez.
    • Arkadaşını Getir kampanyası başladığı tarihten sonra mevcut aboneliğini iptal ettiren
      aboneler, 24 ay boyunca arkadaşını getir kampanyasına katılamaz.

  • RE: NodeBB yedekleme ve sürüm yükseltme
  • adminA admin

    V1.19.1 yayınlandı.


  • Ücretli Kurulum Servisi
  • adminA admin

    Kurulumu.Net olarak Flarum, NodeBB, Discourse, Ghost Blog, Github’ta bulunan Open Source tüm yazılımlar ve Envato market gibi platformlardan alınan yazılımların kurulumu konusunda ücretli destek sağlıyoruz.

    NodeBB

    • VPS/VDS sunucunuza NodeBB forum kurabilirim.
    • NodeBB forumunuzu başka bir sunucuya taşıyabilirim.
    • NodeBB forumunuzu Discourse yazılımına taşıyabilirim

    Discourse

    • VPS/VDS sunucunuza Discourse kurabilirim.
    • Yaklaşık 20 farklı forum yazılımından Discourse’e geçiş sağlayabilirim.
    • Discourse forumunuza CDN entegre edebilirim.
    • Discourse kullanan sitenizi başka sunucuya taşıyabilirim.

    Flarum

    • VPS/VDS/Hosting’e Flarum kurabilirim.
    • Flarum’dan Discourse’ye geçiş sağlayabilirim.
    • MyBB, PhpBB gibi yazılımlardan Flarum’a geçiş yapabilirim.

    Ghost

    • VPS/VDS/CyberPanel Ghost forum kurabilirim.
    • Wordpress’ten Ghost’a site taşıyabilirim.
    • Ghost sunucular arasında taşıyabilirim.

    İstediğiniz hizmet ile ilgili fiyat ve süre bilgisi almak için DM’den veya aşağıdaki bağlantılardan ulaşabilirsiniz.

    Bana ulaş

    🔔 Mail: [email protected]
    🔔 Telegram

    Tavsiye ettiğim Sunucu Firması

    Hetzner

    Kredi kartı, Havale, EFT veya Kripto Para ile ödeme


  • NodeBB yedekleme ve sürüm yükseltme
  • adminA admin

    Yedekleme

    NodeBB yükseltmelerinden önce yedek almak her zaman önerilir. Bu yüzden NodeBB kullanan sitenize bir güncelleme geldi ise nasıl yedek alınacağını anlatacağım.

    Eğer Redis kullanıyorsanız;

    NodeBB’de depolanan tüm metin verileri bir .rdb dosyada bulunur. Redis’in tipik kurulumlarında, ana veri tabanı şu adreste bulunur /var/lib/redis/dump.rdb

    Bu dosyanın bir yedeğini alın.

    MongoDB yedekleme;

    Önce veri tabanınızı kapatmanız önerilir. Debian / Ubuntu’da mongodb veri tabanı servisini kapatmak için;

    sudo service mongodb stop
    

    Tam MongoDB’nizin yedeğini almak için aşağıdaki komutu kullanabilirsiniz. Bu sizin tüm veri tabanlarınızı yedekler.

    mongodump
    

    Bu mongorestore komutu ile geri yüklenebilecek bir dizin yapısı oluşturacaktır.

    Yüklemeler;

    Yüklenen resimler ve dosyalar / public / uploads dizininde saklanır. Bu klasörün bir yedeğini alın.

    cd /path/to/nodebb/public
    tar -czf ~/nodebb_assets.tar.gz ./uploads
    

    Yükseltme

    NodeBB yazılımına yeni bir güncelleme geldiğinde aşağıdaki şekilde güncelleyebilirsiniz.

    İlk olarak sunucunuzda nodebb sitesini kullanıcısına geçiş yapın ve sitenin kurulu olduğu dizine geçiş yapın.

    # Kullanıcıya geçiş için
    su - kullaniciadi
    # Sitenin kurulu olduğu dizine geçiş yapmak için;
    cd /.../nodebb
    

    Şimdi sunucuda çalışan NodeBB’yi durdurun;

    ./nodebb stop
    

    Gelen güncelleme sürümler arasında ise; örneğin 1.17.0 sürümünü kullanıyor ve 1.17.1 sürümü geldi ise;

    git fetch
    git reset --hard origin/v1.17.x
    

    komutlarını sırasıyla çalıştırın.
    Yükseltme işlemini başlatmak için ise;

    ./nodebb upgrade
    

    Eğer 1.17.x sürümü kullanıyorken 1.18.0 sürümü geldi ise aşağıdaki komutları sırasıyla çalıştırın.

    git fetch    
    git checkout v1.18.x    
    git merge origin/v1.18.x
    
    ./nodebb upgrade
    

  • RE: Nodebb imza renklendirme
  • adminA admin

    @phi

    .topic .post-signature {
       color: #renk-kodu
    }
    

  • RE: NodeBB yedekleme ve sürüm yükseltme
  • adminA admin

    V2.0.0 yayınlandı. Kuurlumu.net V2.0.0 güncellendi.


  • RE: NodeBB Sürüm Düşürme
  • adminA admin

    @phi paylaşım için tşk.

  • Giriş

  • Hesabınız yok mu? Kayıt Ol

  • Login or register to search.
  • İlk ileti
    Son ileti
0
  • Ana Sayfa
  • Kategoriler
  • Güncel
  • Popüler
  • Gruplar
  • Kullanıcılar
  • Etiketler
  • Çözüldü
  • Yasal
    • Kullanım Şartları
    • Gizlilik İlkesi
    • İletişim
  • Giriş

  • Hesabınız yok mu? Kayıt Ol

  • Login or register to search.