Hızlı özet
Dotfiles, kişisel çalışma ortamının tarif defteridir. Yeni bir makine kurduğunda tek tek ayar yapmak yerine kendi terminal düzenini, Git ayarlarını, alias’larını, editör tercihlerini ve scriptlerini Git tabanlı bir sistemden geri yükleyebilirsin.
Bu yazıda neler var?
- Dotfiles nedir ve neden önemlidir?
- Hangi dosyalar dotfiles içine alınabilir?
- Alias, function, Git, SSH ve editör ayarları
- Symlink, GNU Stow ve chezmoi yaklaşımı
- Bootstrap script ile yeni makineyi hızlı hazırlama
- Güvenlik: repoya asla konmaması gereken bilgiler
Dotfiles Nedir?
Dotfiles, Unix/Linux dünyasında genellikle nokta ile başlayan kişisel ayar dosyalarına verilen isimdir. Örneğin .bashrc, .zshrc, .gitconfig, .vimrc gibi dosyalar dotfiles mantığının en bilinen örnekleridir.
Bu dosyalar ilk bakışta küçük görünebilir. Fakat zamanla terminaldeki alışkanlıklarını, kısa yollarını, Git davranışlarını, editör tercihlerini, SSH bağlantı düzenini ve günlük iş akışını taşır hale gelir. Yani aslında dotfiles, bilgisayarının ya da sunucunun görünmeyen kişisel çalışma hafızasıdır.
Bir geliştirici, sistem yöneticisi veya VPS ile sık çalışan biri için asıl zaman kaybı çoğu zaman işletim sistemini kurmak değildir. Asıl zaman kaybı, “ben bunu eskiden nasıl ayarlamıştım?” diye tekrar tekrar uğraşmaktır. Dotfiles bu dağınıklığı düzenli bir sisteme çevirir.
Neden Her Geliştiricinin Bir Dotfiles Deposu Olmalı?
Çünkü modern çalışma ortamı tek bir cihazdan ibaret değil. Bir gün yerel Linux makinede çalışırsın, başka bir gün VPS’e bağlanırsın, sonra macOS üzerinde terminal açarsın, ardından Docker container içinde küçük bir bakım yaparsın. Her ortamda sıfırdan ayar yapmak hem vakit kaybettirir hem de tutarsızlık üretir.
Dotfiles deposu bu problemi çözer. Kişisel ayarlarını bir Git deposunda tutarsın. Yeni makinede depoyu klonlar, gerekli bağlantıları kurar ve birkaç dakika içinde alıştığın terminal ortamına geri dönersin. Bu yapı hem yedekleme hem senkronizasyon hem de kişisel standart oluşturma sağlar.
Dotfiles’ın bir başka güzel tarafı da öğrenme etkisidir. Kendi ayarlarını dosyalara böldükçe terminalde ne kullandığını daha iyi anlarsın. Gereksiz alias’ları temizlersin, tekrar eden komutları fonksiyona çevirirsin, yeni makine kurulumlarını standartlaştırırsın.
Üç Seviyeli Dotfiles Yaklaşımı
Dotfiles yönetimi tek bir doğru yoldan ibaret değildir. Yeni başlayan biri için basit bir Git deposu yeterli olabilir. Daha düzenli çalışan biri GNU Stow ile sembolik bağlantıları otomatikleştirebilir. Birden fazla makine, farklı işletim sistemleri ve gizli değerler devreye girdiğinde ise chezmoi gibi daha gelişmiş araçlar anlamlı hale gelir.
Hangi Dosyalar Dotfiles İçine Alınabilir?
Dotfiles deposuna alınabilecek dosyalar, kullandığın araçlara göre değişir. Ama amaç her şeyi körlemesine yedeklemek değil; çalışma ortamını yeniden kurmak için gerçekten gerekli olan ayarları toplamaktır.
.bashrc / .zshrc
Shell açıldığında çalışan ayarlar, alias’lar, function’lar, PATH düzenlemeleri ve terminal davranışları burada tutulabilir.
.gitconfig
Git kullanıcı adı, e-posta, varsayılan branch adı, alias’lar, merge/diff tercihleri ve global Git ayarları burada durabilir.
.vimrc / Neovim ayarları
Editör davranışı, tema, eklenti ayarları, kısayollar ve kişisel yazma alışkanlıkları dotfiles ile taşınabilir.
.ssh/config
Sunucu bağlantı kısayolları, host takma adları, port bilgileri ve kullanıcı tercihleri düzenli şekilde saklanabilir. Ancak private key dosyaları repoya konmamalıdır.
Terminal tema ayarları
Prompt düzeni, renk teması, starship veya benzeri terminal prompt konfigürasyonları dotfiles içinde yönetilebilir.
scripts/ klasörü
Sık kullanılan bakım, backup, güncelleme, log kontrolü veya proje başlatma scriptleri merkezi şekilde taşınabilir.
Alias ve Function Mantığı: Terminalde Kendi Kısa Yollarını Oluşturmak
Dotfiles’ın en hızlı geri dönüş sağlayan kısmı alias ve function’lardır. Her gün tekrar ettiğin uzun komutları kısa, hatırlanabilir ve güvenli komutlara dönüştürebilirsin. Bu sadece hız kazandırmaz; hata yapma ihtimalini de azaltır.
alias ll='ls -lah'
alias gs='git status'
alias gp='git pull'
alias dc='docker compose'
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias update='sudo apt update && sudo apt upgrade -y'
Alias kısa komutlar için güzeldir. Daha karmaşık işlerde function kullanmak daha doğru olur. Örneğin belirli bir klasöre gidip logları izlemek, Docker servislerini kontrol etmek veya proje ortamını başlatmak için function yazabilirsin.
mkcd() {
mkdir -p "$1" && cd "$1"
}
extract() {
if [ -f "$1" ]; then
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.gz) gunzip "$1" ;;
*) echo "Bu dosya tipi desteklenmiyor: $1" ;;
esac
else
echo "Dosya bulunamadı: $1"
fi
}
GitHub veya GitLab Üzerinde Private Dotfiles Repo Oluşturmak
Dotfiles deposu public de olabilir private da. Yeni başlayanlar için private repo daha güvenli bir tercihtir. Çünkü ilk aşamada fark etmeden kişisel host adları, e-posta adresleri, IP bilgileri veya hassas dosya yolları ekleme ihtimali vardır.
Basit bir başlangıç yapısı şöyle olabilir:
dotfiles/
├── bash/
│ └── .bashrc
├── zsh/
│ └── .zshrc
├── git/
│ └── .gitconfig
├── ssh/
│ └── .ssh/
│ └── config
├── nvim/
│ └── .config/
│ └── nvim/
├── scripts/
│ └── update-system.sh
└── bootstrap.sh
Bu yapıda her araç kendi klasöründe tutulur. Böylece Git ayarlarını, shell ayarlarını, SSH config dosyasını ve editör ayarlarını birbirine karıştırmadan yönetebilirsin.
Symlink Mantığı: Dosyayı Kopyalamak Yerine Bağlamak
Dotfiles yönetiminde en önemli kavramlardan biri symlink, yani sembolik bağlantıdır. Normalde .bashrc dosyası ev dizininde durur. Ama dotfiles deposunda takip etmek istiyorsan bu dosyayı depoda tutup ev dizinine sembolik bağlantı verebilirsin.
ln -s ~/dotfiles/bash/.bashrc ~/.bashrc
Bu komuttan sonra gerçek dosya dotfiles deposunda durur; sistem ise onu ev dizinindeymiş gibi görür. Dosyayı düzenlediğinde Git deposundaki sürüm de güncellenir. Böylece ayar dosyalarını hem sistemin beklediği yerde kullanır hem de Git ile takip edersin.
Ancak symlink’leri elle yönetmek zamanla yorucu olabilir. Her dosya için ayrı bağlantı kurmak, eski bağlantıları temizlemek ve klasör yapısını korumak dikkat ister. İşte burada GNU Stow devreye girer.
GNU Stow ile Dotfiles Yönetimi
GNU Stow, sembolik bağlantı yönetimini kolaylaştıran sade ve güçlü bir araçtır. Dotfiles dünyasında popüler olmasının sebebi, klasörleri paket gibi ele alıp hedef dizine otomatik symlink oluşturabilmesidir.
Örneğin dotfiles klasöründe git/.gitconfig dosyan varsa, Stow bunu ev dizinine ~/.gitconfig olarak bağlayabilir. Aynı mantıkla bash, zsh, nvim, ssh ve scripts klasörleri de yönetilebilir.
cd ~/dotfiles
stow bash
stow git
stow ssh
stow nvim
Bu yaklaşımın güzelliği düzenli klasör yapısında saklıdır. Her araç kendi klasöründe durur. Sen sadece hangi aracı aktif edeceğini seçersin. Yeni makinede aynı dotfiles deposunu klonlayıp birkaç stow komutuyla çalışma ortamını ayağa kaldırabilirsin.
chezmoi ile Çok Makineli Dotfiles Yönetimi
Chezmoi, dotfiles yönetimini daha ileri seviyeye taşıyan bir araçtır. Tek bir makinede değil, farklı makinelerde farklı ayarlarla çalışmak istediğinde daha güçlü hale gelir. Örneğin ev bilgisayarında farklı Git e-postası, iş makinesinde farklı SSH hostları, VPS’te daha sade shell ayarları kullanmak isteyebilirsin.
Chezmoi’nin güçlü tarafı template, koşullu yapılandırma ve secret yönetimi gibi gelişmiş senaryoları desteklemesidir. Böylece her makineye birebir aynı dosyayı körlemesine kopyalamak yerine, makineye göre değişen ayarlar üretebilirsin.
chezmoi init
chezmoi add ~/.bashrc
chezmoi add ~/.gitconfig
chezmoi cd
git status
git add .
git commit -m "Initial dotfiles"
git push
Yeni bir makinede ise dotfiles deposunu çekip uygulayabilirsin. Bu yaklaşım özellikle laptop, masaüstü, VPS ve test sunucuları arasında tutarlı ama esnek bir ortam isteyen kullanıcılar için güçlüdür.
chezmoi init git@github.com:kullanici/dotfiles.git
chezmoi diff
chezmoi apply
Buradaki önemli nokta, diff adımıdır. Değişiklikleri uygulamadan önce neyin nereye yazılacağını görmek güvenlik ve kontrol açısından çok değerlidir.
Bootstrap Script: Yeni Makineyi Tek Komutla Hazırlamak
Dotfiles deposunun en pratik parçalarından biri bootstrap.sh dosyasıdır. Bu dosya yeni makinede temel paketleri kurabilir, klasörleri oluşturabilir, dotfiles bağlantılarını hazırlayabilir ve kişisel çalışma ortamını otomatik hale getirebilir.
Bootstrap script yazarken dikkatli olmak gerekir. Bu dosya sistemi değiştireceği için her komut okunabilir, güvenli ve mümkünse tekrar çalıştırılabilir olmalıdır. Yani script ikinci kez çalıştırıldığında sistemi bozmamalıdır.
#!/usr/bin/env bash
set -e
echo "Paket listesi güncelleniyor..."
sudo apt update
echo "Temel paketler kuruluyor..."
sudo apt install -y git curl wget htop unzip stow
echo "Dotfiles bağlantıları kuruluyor..."
cd "$HOME/dotfiles"
stow bash
stow git
stow ssh
echo "Scripts klasörü PATH için hazırlanıyor..."
mkdir -p "$HOME/bin"
echo "Kurulum tamamlandı."
Bu örnek sadece başlangıçtır. İleride Docker, terminal prompt aracı, Neovim, güvenlik araçları veya kişisel scriptlerin de bu akışa eklenebilir. Ama ilk kural şudur: Bootstrap script önce küçük başlamalı, sonra ihtiyaç oldukça büyümelidir.
Yeni VPS’i 10 Dakikada Kişisel Çalışma Ortamına Çevirmek
Dotfiles’ın gerçek değeri yeni bir VPS kurduğunda ortaya çıkar. Normalde temel paketleri kurmak, Git ayarlarını yapmak, SSH config düzenlemek, alias’ları yazmak, terminali alıştığın hale getirmek ve script klasörlerini taşımak zaman alır. Dotfiles ile bu süreci standart bir akışa indirebilirsin.
Depoyu klonla
Yeni makinede private dotfiles deponu güvenli şekilde çek.
Bootstrap çalıştır
Temel paketleri, klasörleri ve symlink bağlantılarını otomatik hazırla.
Kontrol et
Git, SSH, alias, shell ve editör ayarlarının doğru çalıştığını test et.
sudo apt update
sudo apt install -y git
git clone git@github.com:kullanici/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x bootstrap.sh
./bootstrap.sh
Bu akışın sonunda yeni makine artık “boş bir sunucu” gibi hissettirmez. Kendi komutların, kendi Git davranışın, kendi terminal kısayolların ve kendi çalışma düzenin gelir. Küçük görünen bu fark, teknik işlerde ciddi hız kazandırır.
Güvenlik: Dotfiles Deposuna Asla Konmaması Gerekenler
Dotfiles konusu ne kadar kullanışlıysa, güvenlik tarafı da o kadar önemlidir. Çünkü ayar dosyaları bazen farkında olmadan hassas bilgiler içerebilir. Özellikle public repo kullanıyorsan bu konuya ekstra dikkat etmek gerekir.
.ssh/config dosyası dotfiles içinde tutulabilir; fakat id_rsa, id_ed25519 gibi private key dosyaları kesinlikle repoya eklenmemelidir. Aynı şekilde .env dosyaları da dotfiles içinde takip edilmemelidir.
.env
*.pem
*.key
id_rsa
id_ed25519
secrets.*
private.*
tokens.*
credentials.*
Daha profesyonel kullanımda gizli değerler için parola yöneticisi, sistem secret yöneticisi veya chezmoi’nin secret entegrasyonları değerlendirilebilir. Ama başlangıç seviyesinde bile şu alışkanlık şarttır: Repoya eklemeden önce mutlaka git status ve git diff kontrolü yapılmalıdır.
Public mi Private mı?
Public dotfiles deposu kullanmanın bir kültürü vardır. İnsanlar birbirlerinin terminal ayarlarından, Vim/Neovim yapılandırmalarından, Git alias’larından ve scriptlerinden öğrenebilir. Bu yönüyle dotfiles paylaşımı geliştirici kültüründe ciddi bir bilgi alışverişi alanıdır.
Ancak güvenlik açısından private repo daha risksizdir. Özellikle yeni başlıyorsan private repo ile başlamak daha sağlıklı olur. Zamanla dosyalarını temizleyip hassas bilgi içermediğinden emin olduğunda public paylaşımı ayrıca değerlendirebilirsin.
Dotfiles Deposunu Nasıl Düzenli Tutarsın?
Dotfiles deposu zamanla büyür. İlk başta sadece .bashrc ile başlarsın. Sonra Git alias’ları gelir, ardından SSH config, sonra Neovim, sonra Docker scriptleri, sonra bootstrap dosyası. Bu yüzden baştan küçük ama düzenli bir klasör yapısı kurmak önemlidir.
İyi bir dotfiles deposunda şu prensipler işe yarar:
Modüler klasör yapısı
Bash, Git, SSH, editör ve script dosyaları ayrı klasörlerde tutulursa yönetim kolaylaşır.
README dosyası
Yeni makinede ne yapılacağını anlatan kısa bir kurulum notu uzun vadede çok zaman kazandırır.
İdempotent scriptler
Scriptler tekrar çalıştırıldığında sistemi bozmamalı; var olan klasörü tekrar oluşturmaya çalışırken hata üretmemelidir.
Güvenlik kontrolü
Her commit öncesi gizli bilgi, token, private key veya kişisel veri eklenmediği kontrol edilmelidir.
Başlangıç İçin En Mantıklı Yol
Dotfiles’a başlamak için mükemmel sistemi beklemeye gerek yok. İlk gün chezmoi, template, secret yönetimi ve gelişmiş bootstrap akışı kurmaya çalışmak gereksiz karmaşa yaratabilir. En mantıklı başlangıç, küçük bir Git deposu oluşturup en sık kullandığın birkaç dosyayı oraya almaktır.
Örneğin ilk aşamada sadece şunlarla başlayabilirsin:
~/.bashrc
~/.gitconfig
~/.ssh/config
~/bin/
~/scripts/
Sonra ihtiyaç oldukça GNU Stow eklersin. Birden fazla makine kullanmaya başladığında veya farklı makinelerde farklı ayarlar gerektiğinde chezmoi’ye geçebilirsin. Böylece dotfiles sistemi seni yormaz; seninle birlikte büyür.
Dotfiles Kültürü: Küçük Dosyalar, Büyük Alışkanlık
Dotfiles, dışarıdan bakınca birkaç konfigürasyon dosyasından ibaret gibi görünebilir. Ama geliştirici alışkanlığı olarak bakınca çok daha büyük bir anlam taşır. Kendi çalışma ortamını tanımanı, standartlaştırmanı, yedeklemeni ve tekrar üretilebilir hale getirmeni sağlar.
Bu kültürün GitHub dünyasında bu kadar yaygın olmasının sebebi de budur. İnsanlar dotfiles depolarıyla sadece ayarlarını yedeklemez; nasıl çalıştıklarını, hangi araçları tercih ettiklerini ve terminalde nasıl düşündüklerini de paylaşırlar.
Sonuç: Yeni Makine Kurmak Değil, Kendi Ortamını Geri Çağırmak
Dotfiles’ın en güzel tarafı, teknik olarak basit ama etkisi büyük bir alışkanlık olmasıdır. Bir klasör, birkaç ayar dosyası, biraz Git disiplini ve istersen GNU Stow ya da chezmoi gibi araçlarla yeni bir makineyi çok daha hızlı kişisel çalışma ortamına çevirebilirsin.
Bu yaklaşım özellikle Linux, VPS, Docker, n8n, WireGuard, portal kurulumları ve benzeri teknik işlerde çok değerlidir. Çünkü bu işlerde zaman kazandıran şey sadece komutları bilmek değildir. Asıl hız, kendi alıştığın ortamı her yerde aynı güvenle kurabilmektir.
Başlangıç için büyük düşünmeye gerek yok. Önce .bashrc, .gitconfig ve birkaç alias ile başla. Sonra symlink mantığını ekle. Daha düzenli hale gelince GNU Stow kullan. Birden fazla makineye geçtiğinde chezmoi’yi değerlendir.
Dotfiles’ın asıl mesajı basit: Yeni makineye geçtiğinde sıfırdan başlamana gerek yok. Kendi çalışma ortamını yanında taşıyabilirsin.
Yorumlar
Henüz yorum yok. İlk yorumu sen yaz!
Yorum Yaz