Ubuntu 20.04 Üzerinde Nginx ile Vuetify Uygulaması Nasıl Yayınlanır?
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Vuetify kullanan bir Vue uygulamasını sıfırdan oluşturacağız.
Uygulamayı production için derleyip Nginx ile alan adınızda yayınlayacağız.
Sonunda çalışan, stabil bir web uygulamanız olacak.
Teknik Özet
- Amaç: Vue + Vuetify uygulamasını canlıya almak
- Çözüm: Production build + Nginx yapılandırması
- Sonuç: Hızlı, SPA uyumlu, stabil yayın
Ön Gereksinimler
Aşağıdakiler hazır olmalı:
- Ubuntu 20.04 sunucu
- Sudo yetkili kullanıcı (
rabisu) - Nginx kurulu
- Node.js 14+
- Alan adı (örnek:
uygulama.rabisu.site)
1️⃣ Vue Uygulamasını Oluşturma
sudo npm install -g @vue/cli
- Vue CLI aracını kurar.
vue create vuetify-projesi
- Vue proje iskeletini oluşturur.
Seçim: Default (Vue 2)
- Vuetify bu sürümle daha stabildir.
2️⃣ Vuetify Entegrasyonu
cd vuetify-projesi
vue add vuetify
- Vuetify bileşen kütüphanesini projeye ekler.
Preset: Default (recommended)
npm run serve
- Geliştirme sunucusunu başlatır.
3️⃣ Örnek To-Do Uygulaması
- src/App.vue dosyasını açın ve aşağıdaki kodu ekleyin.
<template>
<v-app>
<v-app-bar app color="primary" dark>
<h3>Rabisu To-Do App</h3>
</v-app-bar>
<v-main>
<v-container>
<v-card>
<v-card-title>
<v-text-field
v-model="yeniGorev"
label="Yeni Görev"
append-icon="mdi-plus"
@click:append="gorevEkle"
/>
</v-card-title>
<v-card-text>
<v-list>
<v-list-item
v-for="(g, i) in gorevler"
:key="i"
>
<v-list-item-title>{{ g }}</v-list-item-title>
<v-btn icon @click="gorevSil(i)">
<v-icon color="red">mdi-delete</v-icon>
</v-btn>
</v-list-item>
</v-list>
</v-card-text>
</v-card>
</v-container>
</v-main>
</v-app>
</template>
- Bu kod görev ekleme ve silme işlevlerini sağlar.
4️⃣ Production Build Alma
npm run build
- Yayına hazır statik dosyaları üretir.
📁 Çıktı: dist/
5️⃣ Nginx ile Yayınlama
sudo mkdir -p /var/www/vuetify-projesi
sudo cp -r dist/* /var/www/vuetify-projesi/
- Build dosyalarını Nginx dizinine taşır.
Nginx Yapılandırması
sudo nano /etc/nginx/sites-available/vuetify-projesi
server {
listen 80;
server_name uygulama.rabisu.site;
root /var/www/vuetify-projesi;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
- try_files SPA uygulamalarda 404 hatasını önler.
sudo ln -s /etc/nginx/sites-available/vuetify-projesi /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx
❓ Sıkça Sorulan Sorular
1. Sayfa yenileyince 404 alıyorum, neden? SPA yapılar için try_files zorunludur.
2. HTTPS nasıl eklenir? Let’s Encrypt + Certbot kullanılabilir.
3. Kod değişince ne yapmalıyım? Tekrar npm run build alıp dosyaları kopyalayın.
4. İzin hatası alıyorum, çözüm?
sudo chown -R $USER:www-data /var/www/vuetify-projesi
Sonuç
Vuetify tabanlı Vue uygulamanız artık yayında 🎉 Nginx ile hızlı, stabil ve production uyumlu çalışır.
Rabisu Bulut altyapısında Ubuntu sunucunuzu dakikalar içinde kurup hemen deneyebilirsiniz.