# Yossie Black — Panduan pemasangan

Paket website pustaka lagu untuk **https://yossieblack.com**, dibuat dengan PHP tanpa database MySQL atau proses build. Seluruh font, CSS, JavaScript, dan ilustrasi piringan hitam tersimpan lokal.

## Isi paket

- `public_html/`: seluruh file website yang diunggah ke document root domain.
- `SETUP_KEY.txt`: kunci aktivasi admin satu kali, simpan di perangkat pribadi. Jangan unggah ke website.
- Panduan ini: simpan di perangkat pribadi, jangan unggah ke document root.

## 1. Siapkan domain dan hosting

1. Masuk ke cPanel hosting Rumahweb Anda.
2. Pada menu Domains, pastikan **yossieblack.com** terdaftar dan periksa **document root** domain tersebut. Jika domain tambahan, foldernya bisa berbeda dari public_html utama. Gunakan folder yang ditampilkan oleh cPanel.
3. Arahkan DNS domain ke hosting Rumahweb sesuai data akun hosting Anda. Paket ini tidak mengubah DNS, membeli domain, atau mengaktifkan hosting secara otomatis.
4. Aktifkan SSL untuk yossieblack.com dan www melalui fasilitas SSL di hosting. Setelah sertifikat aktif, hidupkan Force HTTPS Redirect di cPanel.
5. Gunakan PHP 8.2 atau versi stabil lebih baru yang disediakan hosting. Kode juga ditulis menggunakan sintaks yang kompatibel dengan PHP 7.4, tetapi jangan memilih PHP yang sudah tidak mendapat pembaruan keamanan. Ekstensi PHP yang dibutuhkan: json, fileinfo, session. Apache dengan mod_rewrite dan dukungan .htaccess diperlukan untuk URL cantik.

## 2. Unggah file

1. Cadangkan isi website lama terlebih dahulu jika domain sudah digunakan.
2. Ekstrak ZIP ini di komputer. Unggah **isi** folder `public_html` ke document root yossieblack.com. File index.php harus berada tepat di document root, bukan di dalam folder public_html/public_html.
3. Pastikan file tersembunyi `.htaccess` dan `.user.ini` ikut diunggah. Aktifkan Show Hidden Files di File Manager cPanel.
4. Pastikan folder `data` dan `uploads` dapat ditulis oleh PHP. Mulai dengan izin folder 755 dan file 644 sesuai kepemilikan akun hosting; jangan menggunakan 777. Bila gagal tulis, minta bantuan hosting memeriksa owner/permission.
5. Jika file .htaccess domain sudah ada, gabungkan aturan dengan hati-hati dan pertahankan blok cPanel yang sudah ada. File di dalam data/.htaccess harus tetap melarang akses publik.
6. Buka https://yossieblack.com. Jika URL detail 404, pastikan .htaccess terunggah dan mod_rewrite aktif.

## 3. Aktifkan admin

1. Buka **https://yossieblack.com/admin.php** melalui HTTPS.
2. Isi kunci dari `SETUP_KEY.txt`, nama pengguna pilihan Anda, dan kata sandi unik minimal 12 karakter.
3. Setelah akun dibuat, formulir aktivasi akan otomatis hilang. Kata sandi disimpan sebagai hash.
4. Simpan kredensial Anda di pengelola kata sandi. Belum ada pemulihan lewat email.
5. Jika lupa kata sandi: melalui cPanel, cadangkan lalu hapus hanya `data/admin.json`. Buka admin.php kembali dan aktifkan ulang menggunakan kunci asli. Tindakan ini tidak menghapus lagu. Lakukan hanya melalui akun hosting Anda yang sah.

Kunci berbeda untuk paket ini. Jangan membagikan file ZIP tanpa mengganti setup_key di config.php bila hendak dipakai pihak lain.

## 4. Isi koleksi lagu

Enam judul awal sudah dimasukkan: Tanjung Perak, Stasiun Semut, Pasar Pabean, Inikah Cinta Sebenarnya?, Malaikat Kecilku, dan Jangan Pura Pura Cinta. Judul serta kategori awal dapat diubah. Tidak ada audio, lirik, cerita, chord, tahun rilis, atau sampul asli yang diasumsikan sebagai materi resmi. Visual piringan hitam adalah ilustrasi pengganti.

1. Login admin, pilih Edit pada judul lagu atau Tambah Lagu.
2. Isi judul, alamat halaman, kategori/genre, tahun rilis opsional, cerita, lirik, dan chord.
3. Unggah audio versi musik & vokal serta audio karaoke secara terpisah. Format MP3 disarankan; M4A, WAV, OGG juga diizinkan dan pemutaran mengikuti kemampuan browser.
4. Unggah sampul JPG, PNG, atau WebP jika tersedia. Tanpa sampul, website menggunakan ilustrasi piringan hitam.
5. Centang Tampilkan lagu di website, lalu Simpan. Lagu yang tidak dicentang menjadi draf dan tidak dapat diakses publik.
6. Filter hanya menampilkan lagu yang benar-benar memiliki materi untuk format tersebut. Koleksi awal kosong pada filter Karaoke/Lirik/Chord adalah kondisi yang disengaja.
7. Chord dapat ditulis pada baris tersendiri: `C Am F G`, atau di dalam lirik: `[C]Kita biasa [Am]bercerita`. Transpose mengenali chord dasar beserta beberapa akhiran umum; chord kompleks yang tidak dikenali dibiarkan tetap. Penanda [Verse 1] atau [Chorus] tidak diubah. Periksa chord dan nada dasar terhadap rekaman asli sebelum publikasi.

Editor menyimpan teks biasa dan mempertahankan baris baru. HTML yang diisikan akan ditampilkan sebagai teks, tidak dijalankan. Tidak ada impor otomatis dari layanan musik atau penghitungan chord dari audio.

## 5. Batas audio dan cadangan

- Batas aplikasi: 64 MB per audio, 5 MB per sampul, 6000 × 6000 piksel per sampul.
- .user.ini mengusulkan upload_max_filesize=64M dan post_max_size=140M. Pengaturan server dapat menimpanya dan perubahan bisa memerlukan beberapa menit. Sesuaikan melalui MultiPHP INI Editor jika tersedia; bila ditolak, hubungi Rumahweb.
- Simpan audio asli di perangkat sendiri. Pemakaian ruang dan bandwidth mengikuti paket hosting; file audio publik bisa diunduh oleh pengunjung melalui URL-nya.
- Cadangkan seluruh folder data dan uploads melalui cPanel. Tombol Unduh cadangan katalog hanya mencadangkan teks/metadata JSON, bukan file audio.
- Melepaskan atau menghapus lagu tidak menghapus berkas fisik, sehingga materi bisa dipulihkan. Bersihkan berkas yang tidak digunakan melalui cPanel hanya setelah mencadangkan dan memastikan tidak dipakai lagu lain.
- Sistem memakai JSON dengan penguncian berkas, cocok untuk satu pengelola dan katalog kecil–menengah. Untuk banyak admin yang mengedit bersamaan, migrasikan ke database agar perubahan tidak saling menimpa.

## 6. SEO

- Beranda dan detail lagu dirender di server: judul, deskripsi, URL canonical, metadata Open Graph, serta schema WebSite/MusicComposition tersedia.
- Sitemap otomatis ada di https://yossieblack.com/sitemap.xml. Lagu baru masuk sitemap jika dipublikasikan dan memiliki salah satu materi (audio/lirik/chord). Halaman yang belum memiliki materi diberi noindex agar judul kosong tidak memenuhi indeks pencarian.
- robots.txt melarang perayapan panel admin dan data; keamanan folder data tetap menggunakan .htaccess, bukan mengandalkan robots.txt.
- Daftarkan domain ke Google Search Console setelah online dan kirim sitemap.xml. SEO membantu mesin pencari memahami halaman, tidak menjamin peringkat tertentu.
- Gunakan uraian cerita unik dan lirik/chord yang sudah diperiksa. Isi materi lengkap pada setiap lagu.
- Gambar pratinjau sosial JPG 1200 × 630 sudah tersedia di assets/social.jpg. Ganti file ini dengan desain resmi Anda bila diperlukan.
- Jika domain berubah, ubah base_url di config.php dan baris Sitemap pada robots.txt.

## 7. Pemeriksaan setelah upload

- Buka beranda dan detail dari HP dan laptop; coba pencarian, filter, dan urutan A–Z.
- Login, tambah satu lagu draf, unggah audio kecil, simpan, edit, publikasi, lalu periksa pemutar dan tabnya. Pemutar tidak berjalan otomatis; hanya satu audio dimainkan pada satu waktu.
- Coba transpose dengan `[C]teks [Am]teks` dan baris `C Am F G`.
- Buka /data/songs.json dari browser: harus 403 (Forbidden). Jika dapat dibaca, perbaiki .htaccess bersama hosting sebelum menyimpan akun atau materi.
- Pastikan /config.php dan /core.php juga 403 lewat Apache.
- Periksa sitemap.xml dan HTTPS. Simpan cadangan terjadwal lewat fasilitas hosting Anda.

Belum ada sambungan ke akun Rumahweb atau perubahan DNS dari percakapan ini. Pemasangan ke hosting dan unggahan materi asli tetap diperlukan agar domain menampilkan koleksi lengkap.
