Home/Courses/From Localhost to Live LMS/Struktur folder untuk LMS
Lesson Detail

Struktur folder untuk LMS

Memahami struktur folder yang rapi untuk LMS di VPS, alasan pemilihannya, cara membuatnya, ownership yang aman, dan pola kerja agar project mudah dikelola saat development berlanjut ke production.

18 minLesson Duration
1Materials
OpenStatus
This Lesson Progress0%
0/1 materials completed

Lesson Materials

This page now supports live lesson progress, per-material completion, and automatic current-lesson movement.

Live Lesson Progress

This lesson now tracks progress per material and updates the current lesson automatically.

Course Lesson Progress0%0 of 43 lessons completed
Course Material Progress0%0 of 43 materials completed
This Lesson0%0 of 1 materials completed
Material 1

Folder Structure LMS

Open
HTML

Folder Structure LMS

Lokasi folder yang aman dan rapi untuk deployment.

Struktur folder untuk LMS

Setelah user deploy siap dipakai, langkah berikutnya adalah menentukan di mana source code LMS akan diletakkan di server. Ini kelihatan sederhana, tetapi sebenarnya sangat penting karena struktur folder yang rapi akan memudahkan kita saat install dependency, build project, menjalankan aplikasi, mengelola file environment, dan melakukan maintenance di kemudian hari.

Kalau dari awal folder project berantakan, nanti saat LMS sudah semakin besar, proses deploy akan terasa membingungkan. Karena itu, di lesson ini kita membangun kebiasaan yang benar sejak awal.

Tujuan lesson ini

Setelah lesson ini, Anda seharusnya memahami:

  • folder mana yang cocok untuk menaruh aplikasi LMS di VPS,
  • kenapa kita tidak menaruh project sembarangan,
  • bagaimana membuat struktur folder yang rapi,
  • dan bagaimana memastikan user deploy menjadi pemilik folder project tersebut.

Kenapa struktur folder itu penting?

Karena VPS bukan hanya tempat menjalankan satu command. VPS adalah tempat aplikasi akan hidup terus-menerus. Nantinya kita akan bekerja dengan banyak hal sekaligus:

  • source code project,
  • dependency node_modules,
  • hasil build production,
  • file environment,
  • konfigurasi Nginx,
  • log aplikasi,
  • dan mungkin versi project berikutnya.

Kalau semua itu tidak ditata dengan baik, kita akan cepat bingung: file mana yang aktif, folder mana yang dipakai production, dan user mana yang berhak menulis ke dalamnya.

Pola folder yang kita pakai di course ini

Untuk course ini, pola yang sederhana dan rapi adalah:

/var/www/lms

Ini berarti:

  • /var/www menjadi area umum untuk project web,
  • lms adalah folder utama project kita.

Pola ini cukup umum, mudah diingat, dan cocok untuk LMS yang akan dijalankan dengan Nginx sebagai reverse proxy.

Kenapa memilih /var/www?

Secara tradisional, banyak aplikasi web di Linux diletakkan di bawah /var/www. Tidak wajib, tetapi ini adalah lokasi yang sangat familiar untuk project web. Keuntungannya:

  • mudah dikenali sebagai lokasi aplikasi web,
  • rapi saat nanti ada lebih dari satu project,
  • mudah dijelaskan dalam tutorial dan maintenance,
  • cocok dengan workflow Nginx dan deployment umum.

Jadi bukan karena ini satu-satunya tempat yang benar, tetapi karena ini tempat yang masuk akal dan profesional untuk project web.

Apakah boleh pakai folder lain?

Boleh. Secara teknis Anda bisa menaruh project di lokasi lain seperti:

  • /home/deploy/lms
  • /opt/lms
  • /srv/lms

Tetapi untuk course ini kita memakai /var/www/lms agar pembelajaran konsisten dan mudah diikuti. Saat belajar deployment, konsistensi jauh lebih penting daripada terlalu banyak variasi pilihan.

Struktur dasar yang akan kita buat

Di tahap awal, struktur minimumnya bisa sesederhana ini:

/var/www/
└── lms/
    ├── frontend/
    ├── shared/        (opsional, jika nanti diperlukan)
    ├── backups/       (opsional)
    └── logs/          (opsional)

Kalau saat ini project Anda baru fokus di frontend LMS berbasis Next.js, maka struktur paling sederhana dan aman adalah:

/var/www/lms/frontend

Jadi source code frontend akan berada di sana.

Pola paling sederhana untuk project saat ini

Karena dari file yang sudah kita pakai, fokus saat ini adalah frontend, maka pola awal yang cocok adalah:

/var/www/lms/frontend

Nanti saat Anda masuk ke folder itu, di sanalah Anda bisa:

  • clone repository,
  • menjalankan npm install,
  • menjalankan npm run build,
  • dan menjalankan aplikasi production.

Cara membuat folder project

Kalau Anda masih login sebagai root, buat folder utamanya terlebih dahulu:

mkdir -p /var/www/lms

Kalau ingin langsung membuat folder frontend juga:

mkdir -p /var/www/lms/frontend

Option -p membuat command ini aman dijalankan walaupun parent folder belum ada.

Kenapa ownership folder penting?

Membuat folder saja belum cukup. Kita juga harus memastikan bahwa user yang akan bekerja di dalam folder itu adalah user yang tepat, yaitu deploy.

Kalau ownership folder masih milik root, lalu nanti Anda login sebagai deploy, bisa saja Anda tidak bisa menulis file, tidak bisa clone project, atau tidak bisa melakukan build dengan nyaman.

Command untuk mengubah ownership folder

Setelah folder dibuat, ubah pemiliknya ke user deploy:

chown -R deploy:deploy /var/www/lms

Artinya:

  • deploy sebagai user owner,
  • deploy sebagai group owner,
  • -R berarti berlaku rekursif ke seluruh isi folder.

Kenapa bukan root yang tetap jadi owner?

Karena kita sudah memutuskan bahwa pekerjaan deploy harian akan dilakukan dengan user deploy. Maka sangat masuk akal jika folder project juga dimiliki oleh user tersebut.

Pola yang sehat adalah:

  • konfigurasi inti sistem: bisa dikelola via sudo,
  • folder project aplikasi: dimiliki user deploy,
  • workflow harian: dijalankan dari user deploy.

Contoh alur lengkap pembuatan folder

sudo mkdir -p /var/www/lms/frontend
sudo chown -R deploy:deploy /var/www/lms

Kalau Anda sedang login sebagai root, sudo tidak wajib. Tetapi kalau Anda sudah login sebagai deploy, gunakan sudo.

Cara mengecek hasilnya

Gunakan command berikut:

ls -la /var/www

Lalu untuk melihat isi folder LMS:

ls -la /var/www/lms

Untuk melihat ownership lebih jelas:

stat /var/www/lms

Atau cukup:

ls -ld /var/www/lms

Hasil yang kita harapkan adalah owner folder terlihat sebagai deploy deploy.

Contoh hasil yang ideal

drwxr-xr-x 3 deploy deploy 4096 Apr 22 10:00 /var/www/lms

Kalau owner dan group sama-sama deploy, itu pertanda bagus untuk workflow kita.

Apakah perlu membuat banyak folder sejak awal?

Tidak perlu berlebihan. Untuk fase awal, jangan buat struktur yang terlalu rumit. Fokus kita adalah menyiapkan folder yang cukup untuk bekerja dengan rapi.

Untuk kondisi LMS Anda saat ini, pola sederhana berikut sudah sangat cukup:

/var/www/lms/frontend

Nanti jika project berkembang, kita bisa menambah folder lain secara bertahap, misalnya:

  • /var/www/lms/backups untuk backup manual,
  • /var/www/lms/shared untuk file bersama,
  • /var/www/lms/releases jika suatu hari ingin pola deployment versioned.

Tetapi untuk belajar VPS dan deploy pertama, jangan terlalu jauh dulu. Yang penting adalah jelas, sederhana, dan bisa dipakai.

Contoh struktur yang mudah dipahami untuk tahap sekarang

/var/www/lms/
└── frontend/
    ├── package.json
    ├── next.config.js
    ├── src/
    ├── public/
    └── .env.production   (nanti jika diperlukan)

Dengan pola ini, saat Anda masuk ke folder project, semuanya terasa jelas. Anda tahu di mana posisi project, di mana menjalankan command npm, dan di mana hasil build akan terbentuk.

Pola kerja yang akan kita pakai nanti

Nanti alurnya akan seperti ini:

  1. Login ke VPS sebagai deploy
  2. Masuk ke folder project
    cd /var/www/lms/frontend
  3. Clone source code atau upload project ke sana
  4. Install dependency
    npm install
  5. Build production
    npm run build
  6. Jalankan aplikasi dan hubungkan dengan Nginx

Semua workflow ini akan jauh lebih rapi kalau struktur foldernya sudah benar dari awal.

Kesalahan umum yang perlu dihindari

  • Menaruh project di folder acak seperti langsung di root home tanpa pola yang jelas.
  • Folder dimiliki root padahal kerja harian memakai deploy.
  • Membuat struktur terlalu rumit sejak awal padahal project masih sederhana.
  • Tidak konsisten nama folder sehingga nanti bingung mana folder aktif production.
Prinsip aman untuk tahap ini: buat struktur sesederhana mungkin, tetapi cukup rapi untuk dipakai jangka panjang. Untuk course ini, /var/www/lms/frontend adalah pilihan yang sangat baik.

Contoh command lengkap lesson ini

sudo mkdir -p /var/www/lms/frontend
sudo chown -R deploy:deploy /var/www/lms
ls -ld /var/www/lms
ls -la /var/www/lms

Kesimpulan lesson ini

Struktur folder yang rapi adalah fondasi workflow deployment yang sehat. Untuk LMS ini, kita memakai pola sederhana dan profesional di /var/www/lms, dengan source code frontend berada di /var/www/lms/frontend.

Setelah folder dibuat dan ownership-nya benar untuk user deploy, kita siap masuk ke tahap berikutnya di module berikutnya: mengamankan server, lalu melanjutkan ke install stack deployment LMS.