Lewati ke konten

Deploy SvelteKit ke VPS Ubuntu tanpa drama

Caddy, systemd, dan satu skrip deploy yang bisa dibaca orang lain di tim.

Tim Canaya 1 menit baca

Tidak semua proyek cocok di platform serverless. Untuk API Canaya POS yang butuh koneksi database panjang, kami tetap memakai satu VPS Ubuntu. Tujuannya sederhana: siapa pun di tim bisa men-deploy tanpa bertanya.

Susunan server

Satu VPS, tiga komponen: Caddy sebagai reverse proxy dan pengurus TLS, aplikasi Node hasil adapter-node, dan systemd untuk menjaga proses tetap hidup.

/etc/caddy/Caddyfile
api.contoh.id {
  encode zstd gzip
  reverse_proxy 127.0.0.1:3000
}

Unit systemd

Proses dijalankan sebagai user tanpa hak sudo. Variabel lingkungan dibaca dari file terpisah yang tidak masuk repo.

/etc/systemd/system/canaya-api.service
[Service]
User=canaya
WorkingDirectory=/srv/canaya-api/current
EnvironmentFile=/srv/canaya-api/.env
ExecStart=/usr/bin/node build/index.js
Restart=always

Skrip deploy

Setiap rilis masuk ke folder baru, lalu symlink current dipindah. Kalau ada yang salah, rollback cukup memindah symlink kembali.

scripts/deploy.sh
# build lokal, kirim, lalu tukar symlink
pnpm build
rsync -az build package.json server:/srv/canaya-api/releases/$TAG/
ssh server "ln -sfn releases/$TAG /srv/canaya-api/current && sudo systemctl restart canaya-api"

Hasilnya bukan arsitektur paling canggih, tapi bisa dibaca dalam lima menit oleh orang baru di tim.

  • sveltekit
  • ubuntu
  • caddy
  • systemd

Sistemmu punya masalah serupa?

Kami bantu audit dan rancang ulang alurnya untuk sistem kamu.

Ajukan konsultasi

Artikel terkait