İçeriğe geç
Subnomic

Siteler

Gerçekten geri alınabilen statik barındırma

Bir klasör gönder. Bir URL al. Yeniden derlemeden geri al.

Siteler, derlemenin ürettiğini barındırır — bir Vite ya da Astro dist klasörü, bir Hugo public klasörü, düz HTML. Her yayın kendi adresiyle bütün olarak saklanır; bu yüzden geri dönmek, zaten var olan bir yayını canlıya almaktır.

Yayınlama
tek komut
Geri alma
bir işaretçi
Saklanan
canlı + 10 yayın
Analitik
çerez yok
~/acme-blog
$ subnomic sites deploy --prod
312 already stored, 14 to upload
https://blog.subnomic.app

Nasıl çalışır

Üç komut; tekrar tekrar çalıştıracağın ise ikincisi.

01

Bir klasör bağla

Siteyi oluştur ve derleme çıktısının nereye yazıldığını söyle. Bağlantı subnomic.json dosyasına kaydedilir; böylece sonraki her yayın tek komuttur.

~/acme-blog
$ subnomic sites create blog --dir dist
https://blog.subnomic.app
02

Yayınla

--prod olmadan tam olarak bu derleme için bir önizleme adresi alırsın. Onunla derleme canlıya çıkar. stdout’a yalnızca URL yazılır; bu yüzden doğrudan CI’da kullanılabilir.

~/acme-blog
$ subnomic sites deploy
https://blog--0198c2f4a1b27d3e.subnomic.app
$ subnomic sites deploy --prod
https://blog.subnomic.app
03

Geri al

Canlıdakinden önceki derlemeyi canlıya al — ya da kimliğiyle herhangi bir derlemeyi. Hiçbir şey yeniden yüklenmez ya da yeniden derlenmez, çünkü her yayın hâlâ orada, bütün olarak durur.

~/acme-blog
$ subnomic sites rollback
$ subnomic sites rollback --to 0198c1e9

Bir siteyle gelenler

Statik bir sitenin yüklemeden sonra ihtiyaç duyduğu her şey.

Yalnızca değişen yüklenir

Dosyaların hash’i senin makinende hesaplanır. Sitenin önceki bir yayınında zaten olan her şey sunucu tarafında kopyalanır; bu yüzden büyük bir sitenin ikinci yayını yalnızca bir avuç dosya yükler.

Her yayına bir önizleme adresi

Her derleme blog--<id> adresinde yanıt verir ve noindex ile sunulur. Tahmin edilemez ama gizli değil — siteyi korursan önizlemeleri de korunur.

Kendi alan adın

İki DNS kaydı — bir CNAME ve alan adının senin olduğunu kanıtlayan bir TXT. Sertifika senin için alınır ve yenilenir. Site başına en fazla on alan adı.

_redirects ve _headers

Netlify tarzı kurallar: 301’den 308’e kadar, splat’ler, 404 ve 410. Kurallar yayına aittir; bu yüzden geri alma, eski kuralları eski dosyalarla birlikte geri getirir.

Tek sayfalık uygulamalar ve kendi 404 sayfan

SPA modu bilinmeyen yollara index.html ile yanıt verir — yalnızca sayfa gezinmelerinde; bu yüzden eksik bir .js yine düz bir 404’tür. Özel bir “bulunamadı” sayfası 404 durumunu korur.

Parola ya da yalnızca üyeler

Paylaşılan bir parola ya da yalnızca çalışma alanındaki kişiler. Koruma bir gün yanlış yapılandırılırsa site herkese açılmak yerine ziyaretçileri reddeder.

Takip olmadan trafik

Yol, durum, yönlendiren site, tarayıcı ve cihaza göre saatlik sayımlar. IP adresi yok, çerez yok, sayfanda betik yok. 90 gün saklanır.

Dar kapsamlı bir anahtarla CI’dan yayınla

Yalnızca sites.read ve sites.deploy kapsamlarına sahip bir anahtar yayınlayabilir ve geri alabilir. Alan adı oluşturamaz, silemez ya da başka yere yönlendiremez. GitHub Actions iş akışı.

Ya da klasörü tarayıcıya bırak

Derlenmiş bir klasörü site sayfasına sürükle ya da tarayıcıda bir metin dosyasını düzenleyip sonucu yeni bir yayın olarak yayınla.

Kurallar ve varsayılanlar

Kurallar, uygulandıkları dosyalarla birlikte gelir.

Bir _redirects ya da _headers dosyasını index.html dosyanın yanına koy; yayın sırasında okunur. İlk eşleşme kazanır ve bir kural, aynı yoldaki bir dosyaya üstün gelir.

  • HTML no-cache ile sunulur; paketleyicinin hash’lediği varlıklar bir yıl ve immutable alır. İkisini de yazman gerekmez.
  • Her yanıt HSTS ve nosniff taşır ve bir site bunları kapatamaz.
  • .env dosyaları, .git ve node_modules asla yüklenmez — yayını derleme çıktısı yerine proje klasörüne yöneltmek gizli bilgilerini yayınlamaz.
  • index.html içermeyen bir klasör, hiçbir şey yüklenmeden reddedilir.
_redirects
# from               to                              status
/docs/*              https://docs.acme.io/:splat     301
/old-pricing         /pricing                        308
_headers
/assets/*
  Cache-Control: public, max-age=31536000, immutable
/*
  X-Frame-Options: DENY

Sınırlar

Her planda neler var.

Plan Ücretsiz Pro Team Enterprise
Siteler11050500
Site trafiği / ay1 GB30 GB150 GB1,5 TB
Depolanan (Depolama ile ortak)512 MB20 GB100 GB1 TB
Servisler131010

Bir sitenin dosyaları, çalışma alanının Depolama ile ortak kullandığı depolanan baytlara sayılır.

Sorular

Bir alan adını ona yönlendirmeden önce.

Sitemi derliyor mu?

Hayır. Sen yerelde ya da kendi CI’ında derlersin, Siteler de sonucu barındırır. Git entegrasyonu da yapılandırılacak bir derleme adımı da yoktur.

Sunucu kodu çalıştırabilir mi?

subnomic sites deploy, bir Nitro node-server derlemesini ya da bir Linux ikili dosyasını tanır ve onu kendi microVM’inde bir servis olarak çalıştırır. Kaç servis olabileceğini ve birinin ne kadar büyük olabileceğini plan belirler.

Peki kök alan adı (apex)?

DNS sağlayıcın destekliyorsa CNAME flattening, ALIAS ya da ANAME ile yönlendir — ya da www adresini sun ve kök alan adını alan adı kayıt firmanda yönlendir.

Önizleme adresleri gizli mi?

Tahmin edilemezler ve asla dizine eklenmezler, ama gizli değiller. Siteye parola ya da çalışma alanı koruması koy, önizlemeler de onun arkasında kalır.

Bir sonraki yayının tek komut uzağında.

Bir çalışma alanı oluştur, bir klasör bağla, yayınla. Ücretsiz plan bir site içerir; kart gerekmez.