Gogs ile Kişisel GitHub-benzeri Depo Kurmak

 

Versiyonlama ve kod deponuz için, ya da emekleyen projeleriniz için özel bir depo mu istiyorsunuz? Buna ekstra para vermek içinizden gelmiyor mu? Self-hosted servislere meraklı mısınız, size daha mı çok güven veriyor? GitHub ‘daki kodunuzun bir kopyasını yerel tutmak mı istiyorsunuz? Sadece Git iyi güzel, ama hoş bir arayüzün, kullanım kolaylığının, ekstra fonksiyonların eksikliği hissediliyor mu sizde de? Demek ki kendi GitHub ‘unuzu kendiniz kurmanın vakti gelmiş. Üstelik -hemen hemen- tüm avantajlarıyla birlikte!

Bu işi yapabilen birden çok yazılım var, tüm ihtiyacımız olan ise 7/24 açık bir sunucu. İlla dışarıdan bir hizmete gerek yok, ben bunun için kendi Raspberry Pi sunucularımı kullanıyorum. GitLab ve Gogs, self-hosted GitHub kurmak isteyenler için iki büyük alternatif, ikisi de hızlı gelişiyor ve kendi çapında popüler. GitLab bu işte fonksiyonel anlamda sanki bir adım daha önde, ama konu RasPi gücünde bir sunucuda bu işi yapmaya gelince Gogs ‘un eline kimselerin su dökebileceğini sanmıyorum, üstelik son derece de temiz arayüzlü ve stabil. Bu sebeple ben Gogs ‘u tercih ettim ve tercihimden çok memnun kaldım, herkese de öneriyorum.

Peki Gogs ile neler yapabiliyoruz? Gogs son derece kolay şekilde GIT depoları oluşturmaya ve paylaştırmaya imkan tanıyor, çok sayıda kullanıcının aynı anda kullanması mümkün, sosyal araçları da buna hazır. Elbette bu depoları ve commit kayıtlarını görselleştirebiliyor, diff (fark) alabiliyor, dosyaları görüntüleyebiliyor, kolayca paylaşmaya da imkan tanıyor. Sadece bunlar da değil, diğer Git depolarında -misal GitHub- tuttuğunuz kodunuz için yansı depolar oluşturup belli aralıklarla yedekleyebiliyor, depolarınız için Issue Tracker (Kayıt Takibi) sunabiliyor, kodun belli bir durumundan Release oluşturmanıza imkan tanıyor ve muhtemelen benim sayamadığım daha bir çok işi yapıyor. Daha da güzeli, bütün bunları Raspberry Pi 2 üzerinde ışık hızında, hiçbir yavaşlama olmaksızın yapıyor. Daha ne isteyebilirsiniz ki bir Git sunucusundan? Bana kalırsa self-host etmeye istekli her geliştiricinin alet çantasında çoktan yerini almasını gereken bir çözüm Gogs, desteklerinizi de bekliyor. Türkçe dil desteğinin de Crowdin.com üzerinde topluluk desteğiyle sağlanmaya çalışıldığını ve yardımcı olabileceğinizi belirtmekte fayda var. (Henüz %30 civarı bitmiş çevirinin, bu haliyle resmi diller arasında yer almıyor)

Gogs ‘un geliştirilmesi ben bu satırları yazarken süratle devam ediyordu, adından ipucunu alabileceğiniz üzere Go dilinde geliştiriliyor. Fonksiyonel eksikleri olmasına rağmen stabil çalışması, temiz arayüzü ve hızıyla bitmiş bir ürün hissini çok iyi veriyor, ki özgür yazılım projelerin genellikle aşil topuğu burası olur. Gelecek major sürümde benim farkına vardığım tek eksiklik olan Wiki fonksiyonunun da eklenmesi planlanıyor, ihtiyacınız varsa şimdilik bunun için ayrı bir depo, veya DokuWiki gibi hafif bir çözüm değerlendirebilirsiniz.

İlginizi çektiyse gelelim Raspberry Pi üzerinde biraz zahmetli kurulumu ve birkaç ufak tefek ayarına:

Devamını oku…

Pushbullet nedir? SSH ve Transmission ile Pushbullet Kullanmak

pushbullet

Pushbullet, tamamen ücretsiz bir push notifikasyon servisi. Google hesabınızla kayıt olup giriş yapabildiğiniz Pushbullet sayesinde, bir metni, dosyayı ya da bağlantıyı, birden çok tanımlı hedefe ulaştırabiliyorsunuz, kendi bildirimlerinizi yapabildiğiniz gibi, bu sayede tarayıcınızdan iPhone ‘unuza bir dosya göndermek de son derece kolay.

Ben Pushbullet ‘i kendi push notifikasyonlarım için aylardır kullanıyorum, bir bildirim oluşturduğunuzda bu bildirimi, Pushbullet sizin için bir iPhone ‘a, Android ‘e, Windows ‘a, Firefox tarayıcıya veya ağdaki başka bir arkadaşa ulaştırabiliyor. Tabii asıl kullanışlılık sizin Pushbullet.com ‘a girip oradan diğer cihazlarınıza bir şey  göndermenizle oluşmuyor, asıl kullanışlı olduğu yer, API sayesinde otomatik bildirimler oluşturabilmeniz.

Kendi kullanım alanlarımdan örnekle, aşağıdaki durumlarda bir bildirim iPhone ‘uma gönderiliyor:

  • SSH üzerinden bir bağlantı kabul edildiğinde
  • Sunucu üzerindeki bir servis başarısız olduğunda
  • Transmission üzerinden bir Torrent ‘in indirilmesi tamamlandığında
  • Belli aralıklarla IP kontrol edilip, sunucunun IP’si değiştiğinde

Bunlar sadece birkaç örnek, bunlar gibi pek çok bildirim oluşturabiliyorsunuz. Mesela SMARTD, bir diskinizde sorun tespit ettiğinde bildirim alabilirsiniz, ya da herhangi bir yazılımınıza entegre ederek olaylardan haberdar olabilirsiniz, bir RSS feed ‘i takip edebilirsiniz, kargo takibinize entegre edebilirsiniz, gibi.

Bunun için ben, aşağıdaki örnekteki gibi, bir curl komutu kullanıyorum, tek komutta bildirim gönderilmiş oluyor:
Devamını oku…

Cydia Tweak Listesi (2013)

evasi0n-jailbreak

iPhone ‘un en sıkıntılı yanı, bir Apple ürünü olması. Bu da maalesef en olmadık yerde kısıntıya gidilmiş, ısrarla eklenmemiş özellikler, gereksiz sınırlamalar demek oluyor bazen. iOS ‘unuzu jailbreak yapmak oldukça kolay bir işlem, Google’dan pek çoğunu bulabileceğiniz son derece basit yöntemlerle jailbreak yapmak mümkün. Jailbreak ‘in kendisi, cihaz için pek de sıkıntılı değil. Asıl sıkıntıları ise Cydia mağazası üzerinden kurduğunuz ekstra özellikler yapıyor ki, neyi kurup neyi kurmayacağınıza dikkat etmeniz gerek. Hepsini haftalardır kendim kullandığım, benim Cydia tweaklerimden bir liste yaptım, hepsi çok önemli eksikleri kapatıyor benim için.

En gerekliler:

  • Tab+: Muhtemelen Cydia ‘dan ilk indirmeniz gereken, çok basit bir tweak, tek özelliği Safari ‘deki maksimum 8 sekme sınırını kaldırmak. Bu son derece yersiz sınırlamayı kaldırdığınızda, aynı anda 15 – 20 sekmeyi yavaşlama olmadan kullanabiliyorsunuz.

Devamını oku…

SMARTMONTOOLS ile Sabit diskleri kontrol etmek

Arızalı sabit diskler her zaman bilgisayarların en can sıkan parçaları olmaya devam edecekler. Fanlarla birlikte bilgisayarların demirbaş hareketli parçalarından biri oldukları için, kolayca çöpe koyup kurtulamadığınız gibi, yıllar içerisinde bu ikili size varlıklarını her daim hatırlatacak. Peki Linux üzerinde bir sabit diskin sağlığını nasıl kontrol ederiz?

Öncelikle anlaşılması gereken, sabit disklerin her zaman  “dağ gibi adamdı küt diye gitti anlamadık” formatında ölmedikleridir, en azından 7/24 sabit, titreşimsiz bir alanda, UPS altında saklıyorsanız böyledir, bu tip “ideal” koşullarda  bağıra bağıra, çığlık çığlığa ölürler ki, bu çığlıkları duyup önceden tüm verinizi yedekleyip, can sıkıntısının önüne geçebilirsiniz. Bir ikincisi, günümüzde piyasadaki disklerin tamamı SMART ile gelirler. SMART, çok basitçe işletim sisteminizden disklerin durumunu sorgulama, istatistikleri/sıcaklığı alma ve hatta disklerin kendi self-testlerinin sonuçlarını okuma, ve test yapma olanağı sağlar.

Bir diskte okuma arızalarının yaşanmaya başlanması ilk etapta dosya sisteminde tutarsızlıklar olarak dönebilir, burada karşınıza çıkabilecek durumlardan ilki, dosya sisteminizin ansızın read-only (salt okunur) duruma geçmesi olur Linux’ta. Windows ‘da ise bir uyarı balonu, veya her açılışta karşınıza fırlayan bir CHKDSK olarak gelebilir. Tabii ki dosya sisteminde tutarsızlık demek, illa ki diskte bir sıkıntı demek değil. Diskin size ilk atacağı çığlıkları ise dmesg komutunun çıktısında görebilirsiniz. Linux’ta diskler sd harfiyle başlayıp alfabedeki ilk harfi alırlar. 3 sabit diskiniz varsa, ilk bağlanan sda, son bağlanan sdc olacaktır. DMESG’de [sda] ile başlayan hatalar okumaya başlamış olabilirsiniz, bu ilk sabit diskte bir sıkıntı olma ihtimalini gösteriyor olabilir.

Olmayabilir de. Hala pek çok etken mevcut, daha iyi anlamanın yolu diske sormak. Burada ilk yapacağımız iş, sudo apt-get install smartmontools yaparak SMART izleme araçlarını Linux dağıtımımıza kurmak olacak. Daha sonra sudo smartctl -a  /dev/sda komutunu çalıştırabiliriz. Diskiniz 2.ci diskse sda ‘yı sdb yaparsınız. Karşınıza çok uzun bir çıktı gelmiş olmalı.

Devamını oku…

Raspberry Pi 101: RasPi nedir? Ne Yapılır? Alışveriş Rehberi

Raspberry Pi, $35 (80 TL~) gibi bir rakama edinilebilecek, microUSB üzerinden yaklaşık 3 Watt güçle çalışan, kredi kartı büyüklüğünde bir bilgisayar. Raspberry’nin bir kasası yok, sadece bir kart olarak satılıyor. Ancak hafife de almayın, bu küçük bilgisayardan biraz bahsetmek gerekirse:

  • 700 MHz ARM11 CPU
  • Broadcom VideoCore IV GPU (OpenGL ES 2.0 destekli, MPEG-2 ve VC-1 uyumlu. 1080p görüntü çıkışı)
  • 512 MB RAM
  • 2 adet USB çıkışı, HDMI çıkışı, Ethernet, SD kart yuvası, 3,5mm ses çıkışı ve Kompozit çıkış.

Raspberry’nin maliyeti ve boyu, yukarıdaki özelliklerine göre çok küçük. USB, HDMI, SD gibi her türlü desteğin yanı sıra iş görür bir CPU, RAM ve gayet iyi bir GPU ‘ya (Xbox I seviyesinde deniyor) sahipsiniz ve HD oynatabiliyorsunuz. Üstelik tüm bunları 5 V’lık bir microUSB’den aldığınız 3~4 Watt ‘lık güçle yapıyorsunuz. Basit bir kıyasla ortalama bir bilgisayar donanımı 200 Watt~ gibi bir enerjiyi kullanabiliyor. Bu durumda Raspberry ‘i aslında bir kalem pille, güneş enerjisiyle, veya pedal çevirerek çalıştırmanız mümkün. Üstelik  tüm bu donanım siz ne isterseniz onu yapmak için bekliyor, şimdiden bir çok dağıtım ve yazılım bu amaçlar için hazır.

Neler yapılabilir?

Hiç güç tüketmeyip (evdeki diğer her şeye kıyasla), yeterli miktarda performans üreten bir mini bilgisayarla ne yapılır? Üstelik son derece ucuz ve kurcalanabilir olsun. Bu sorunun cevabını size en iyi YouTube verebilir, çünkü RasPi ile yapılabileceklerin sınırı yok. Tamamı hayal gücüne ve isteğe kalmış olmakla beraber, ondan 3 Watt’lık bir bilgisayar da yapabilirsiniz, bir media-center da, sunucu olarak da kullanabilirsiniz, depolama/yedek ünitesi olarak da. Eliniz yatkınsa Raspberry sizin için ev otomasyonu da yapabilir; ışıkları kapatıp, kapıları kilitleyebilir, bir fincan kahve yapıp termostatı ayarlayabilir. Veya arabanızın multimedya sistemiyle değiştirip 80 lira ‘ya çok az enerji tüketen tam kapasiteli bir bilgisayar da taşıyabilirsiniz. Raspberry ‘ye bir kamera bağlarsanız ev güvenlik sistemi de yapabilirsiniz, robot da, bir emulator indirip HDMI’dan TV’nize bağladığınızda kendi oyun konsolunuzu da yapabilirsiniz.

Çok mu saydım? Aslında çok değil, bu saydıklarımın çoğu yapılmış, şuan kullanılan şeyler. Bu liste o kadar uzatılabilir ki. Gezegenin bir yerinde, tamamen güneş enerjili bir Raspberry sunucusu olduğunu, tüm Dünya ‘da elektrikler gitse bile onun açık kalacağını biliyor muydunuz? Mesea bu yapıldı. Peki elimiz yatkın değil veya zamanımız yok, pratik olarak neler yapabiliriz? O zaman kendi beklentilerimi anlatayım, ben ne için istedim Raspberry Pi ‘yi:

Devamını oku…

Benim komut satırım (BASH PS1)

BASH’daki sıkıcı giriş satırından sıkılmadınız mı? En azından ben sıkılmış ve renklendirmiştim. Dün gece de aklıma daha iyisi olup olamayacağı geldi, Internet ‘teki diğer BASH’lardan da kopya çektim tabii. Çok çeşitli pek çok örnek var, ancak ben komut satırının tek satır olması ve sade olması, çok yer kaplamaması ve sisteme efor harcatmaması düşüncesinden hareket ettim. Kendi bakış açımdan; sade, canlı, işlevli ve performanslı oldu. Tabii ki siz kendinizinkini yaparken; klasördeki dosya sayısı/toplam boyuttan, GIT/SVN durumuna, hatta hava durumu gibi egzotik (kanaatimce de biraz gereksiz) çalışmalara girebilirsiniz.

Benimkinde tasarım nispeten basit, ilk alanda saati,  komut sırasını, üçüncüde de bir önceki komutun sonucuna göre, olumluysa gülen olumsuzsa suratsız bir yüz ve buna göre renklendirme görüyorsunuz. Komut sayısının işlevi; diyelim ki 493 numaralı komutunuz “echo -n “6975b5c199dc0dd021d3b341461cbc4c” > md5sum” ise, !493 komutunu verirseniz o komutu tekrar ettirmiş oluyorsunuz, !! ile son komutu tekrar ettirme bilinen bir şey ama, sıralamayı ve pratik kullanımı olabileceğini yeni farkettim. İkinci alanda ise klasik, kullanıcı adı, hostname ve çalışılan klasör mevcut.

Komut satırınızın şekli $PS1 diye bir değişkende saklanıyor, bunu tek bir oturum için (denerken) değiştirmek için PS1=”PS1 AYARINIZ” şeklinde yazabiliyorsunuz. Kalıcı olması içinse /home/kullanıcıadı/.bashrc dosyasını düzenleyip, export PS1 satırında aynı değişikliği uygulamanız gerekli.

İşte o $PS1 satırı: (Biraz uzunca, hepsi tek seferde görünmezse çift tıklayın üzerine, veya soldan tutup sağa çekin)

export PS1="e[1;32m][[t #! `if [ $? = 0 ]; then echo -e 'e[01;32mxE2x98xBA'; else echo -e 'e[01;31mxE2x98xB9'; fi`]e[1;33m][e[31m] [email protected]:w[$[e[32m][e[0m] "

Basitçe ne nedir dersem, t kısmı saati yazıyor, ! kısmı komut sırasını, ortadaki if ‘li ifade gülen yüzleri çizmek için. u ile kullanıcı adı, h ile hostname ve w ile çalışılan klasör yazılmış oluyor. Gerisi de renk kodları.

Bu da ufak bir bonus, nereden kaptığımı hatırlamadığım “cls” alışkanlığımı gidermek için eklemiştim .bashrc ‘ye: alias cls=’clear’

Var mı benim BASH’ım gibisi? :)

VPN Kullanımı: OpenVPN ile Anonimlik, Sansürü Aşma ve Kriptolama

Geçenlerde 22 Ağustos Sansürünü Aşma Yolları ile ilgili bir şeyler karalamıştım. Orada genel hatlarıyla sansürün nerelerden vurabileceği ve alternatifler üzerine yazmıştım ama fazla teknik detay yoktu. Bu sefer biraz daha işin mutfağına gireceğiz ve OpenVPN kullanımını anlatacağım.

VPN kullanacaksak önce ne istediğimizi bilmemiz gerekiyor; iki seçeneğimiz var, PPTP ve OpenVPN. Ben başlıktan da anlaşılacağı üzere OpenVPN anlatacağım, ikisi arasındaki fark nedir derseniz: OpenVPN, PPTP’den çok daha güvenli ve stabil bir servis, ancak çalışmak için ekstra yazılıma ihtiyaç duyuyor ve dolayısıyla bu yazılımı desteklemeyen cihazlarda (bazı gudik mobil cihazlarda) çalışmıyor, diğer yandan PPTP çalışmak için ekstra bir istemciye ihtiyaç duymadığı için bu cihazlarda da kullanılabiliyor. Masaüstü veya akıllı cihazlar (N900 mesela) için düşünüyorsanız bunun bir önemi yok tabii. Ben VPN’i bilgisayarım, netbookum ve Nokia N900 üzerinde kullandığım ve hepsi OpenVPN desteklediği için tercihimi bu yönde kullandım.

Devamını oku…

GNU/Linux'da Açılışta Komut Çalıştırmak

Buna aslında neredeyse bir senedir ihtiyacım vardı ama açıp okuma zahmetine katlanmamıştım, geçenlerde gelen bir ilham sonucu aradan çıkmış oldu ve aslında çok basitmiş. Çok kısa bir şekilde, açılışta nasıl komut çalıştırabileceğinizi anlatayım. Bu örnekte biz Logitech G15’in sürücülerini çalıştıracağız. Çalıştırdığımız bütün komutlar süperkullanıcı yetkilerine sahip olacağından dikkatli olun.

Bunu yapmak için düzenleyeceğimiz dosyanın adı /etc/rc.local başka yerlerde önce şuraya ekle, sonra buraya sembolik link yap vs. uzun anlatımlar var ancak bu işimizi görecektir.  Terminalden,

sudo nano /etc/rc.local

yapıyoruz. Karşımıza şöyle bir şey çıkacak:
Devamını oku…

Drupal ve WordPress'de Spamla Mücadele

Hem aranelsurion.org ‘daki blogumun hem de meegoturkiye.org ‘un spam mesajlarla istila edilmesi üzerine bir çıkış yolu aradım ve kendimce en makul yollardan birini uyguladım. Spam botları artık eskisi gibi basitçe CAPTCHA numaralarıya atlatılamadığı gibi eski brute-force yöntemlerini de uygulamıyorlar, özellikle bazı spam ağlarıyla uğraşmak çaba gerektirebiliyor. Ben de hem Drupal hem WordPress’de şuan uyguladığım ve yeterli performansı sergileyen 2 yöntemi anlatmak istedim, elinizde daha iyi şeyler varsa duymak isterim tabii :) Diğer bir kaç yöntemden de bir kaç kelimeyle bahsettim ama kendim denemediğim için onları bu yazıda bulamayacaksınız.

Devamını oku…

Tor, TorButton/FoxyProxy ve Dreamhost SOCKS5 Proxy

Sansür Türkiye’de yeni boyutlar kazandıkça çözümlerde de yeni ufuklara yelken açmak gerekiyor. IP-tabanlı yasakların başlamasıyla artık DNS değiştirme çakallığı sökmeyecek, hatta şimdiden YouTube’a girerken işe yaramıyor artık. Bu durumdan yırtmak için ben kendi tercih ettiğim 2 yöntemden bahsedeceğim. Tor ve SOCKS5 vekilleriyle yasakları delmeniz oldukça kolay, Firefox ile entegre ederek basitçe yasakların üstünden atlayabilir ve nanik yapabilirsiniz.

Öncelikle DNS sunucularımızı her şeye rağmen değiştirelim. Zira bir çok site henüz IP-tabanlı engellenmiş değil, Google’da “dns değiştirme” olarak ararsanız yeterli kaynak bulabilirsiniz bu mevzuda. Ben DNS için 8.8.8.8’i (Google DNS) tercih ediyorum. GNU/Linux’ta DNS değiştirmek için /etc/resolv.conf‘u düzenlemelisiniz. Eğer bu dosya sürekli kendini tekrar eski ayarlara alıyorsa onun sorumlusu NetworkManager, bu durumda DNS ayarlarınızı buradan yapmanız gerekiyor, KDE’de bunun için knetworkmanager’i kullanabilirsiniz. DNS ayarları değiştirildikten sonra emin olmak için konsoldan bir kaç DNS-engelli siteye ping atın. Tarayıcınız duruma halen uyanmamış olabilir, mesela Firefox, genellikle DNS değişikliklerine geç uyanıyor. Bu durumda emin olmak için farklı bir tarayıcıyla deneyebilirsiniz.

Devamını oku…