<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Journal rajeep]]></title><description><![CDATA[Journal rajeep]]></description><link>https://razifijazi.me</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1748686185049/50ecdd73-1e02-49d5-89be-3613fb4c81a5.png</url><title>Journal rajeep</title><link>https://razifijazi.me</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 07:50:43 GMT</lastBuildDate><atom:link href="https://razifijazi.me/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Cara Bikin Email Custom Domain Gratis (Tanpa Google Workspace) Tetap Profesional Tapi Tetap Pakai Gmail]]></title><description><![CDATA[Kalau kamu masih pakai email seperti kamu123@gmail.com untuk urusan kerja, freelance, atau bisnis, trust dari calon klien biasanya lebih rendah.
Bandingkan:
kamu123@gmail.com vs hello@namakamu.com
Yan]]></description><link>https://razifijazi.me/cara-bikin-email-custom-domain-gratis-tanpa-google-workspace-tetap-profesional-tapi-tetap-pakai-gmail</link><guid isPermaLink="true">https://razifijazi.me/cara-bikin-email-custom-domain-gratis-tanpa-google-workspace-tetap-profesional-tapi-tetap-pakai-gmail</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Thu, 26 Feb 2026 22:34:16 GMT</pubDate><content:encoded><![CDATA[<p>Kalau kamu masih pakai email seperti <a href="mailto:nama123@gmail.com">kamu123@gmail.com</a> untuk urusan kerja, freelance, atau bisnis, trust dari calon klien biasanya lebih rendah.</p>
<p>Bandingkan:</p>
<p><a href="mailto:kamu123@gmail.com">kamu123@gmail.com</a> vs <a href="mailto:hello@namakamu.com">hello@namakamu.com</a></p>
<p>Yang kedua langsung terasa lebih profesional.</p>
<p>Kabar baiknya: kamu bisa bikin email custom domain tanpa langganan Google Workspace. Stack yang dipakai:</p>
<p>• Domain pribadi</p>
<p>• Cloudflare Email Routing (gratis)</p>
<p>• Gmail (akun biasa)</p>
<p>───</p>
<p>Gambaran cara kerjanya, Alurnya gini:</p>
<ol>
<li><p>Orang kirim email ke <a href="mailto:hello@namadomain.com">hello@namadomain.com</a></p>
</li>
<li><p>Cloudflare nerima email itu</p>
</li>
<li><p>Cloudflare forward ke Gmail kamu</p>
</li>
<li><p>Kamu balas dari Gmail, tapi pengirimnya tetap <a href="mailto:hello@namadomain.com">hello@namadomain.com</a></p>
</li>
</ol>
<p>Jadi inbox tetap di Gmail, tapi tampil profesional di sisi penerima.</p>
<p>───</p>
<p>Yang kamu butuhkan</p>
<ol>
<li><p>Domain (contoh: <a href="http://namakamu.com">namakamu.com</a>)</p>
</li>
<li><p>Akun Gmail</p>
</li>
<li><p>Akun Cloudflare (gratis)</p>
</li>
</ol>
<p>───</p>
<p>Langkah 1 — Beli domain</p>
<p>Kamu bisa beli domain di registrar mana pun (Hostinger, Niagahoster, Domainesia, Rumahweb, Namecheap, dll).</p>
<p>Jika sudah punya lanjut</p>
<p>───</p>
<p>Langkah 2 — Daftar Cloudflare (Free plan)</p>
<ol>
<li><p>Buka <a href="https://cloudflare.com">https://cloudflare.com</a> (<a href="https://cloudflare.com/">https://cloudflare.com/</a>)</p>
</li>
<li><p>Klik Sign Up</p>
</li>
<li><p>Buat akun</p>
</li>
<li><p>Pilih paket Free</p>
</li>
</ol>
<p>───</p>
<p>Langkah 3 — Tambahkan domain ke Cloudflare</p>
<ol>
<li><p>Di dashboard Cloudflare, klik Add a Site</p>
</li>
<li><p>Masukkan domain kamu</p>
</li>
<li><p>Pilih plan Free</p>
</li>
<li><p>Cloudflare akan kasih 2 nameserver (contoh <a href="http://xxx.ns.cloudflare.com">xxx.ns.cloudflare.com</a>)</p>
</li>
</ol>
<p>Simpan nameserver ini, karena dipakai di langkah berikutnya.</p>
<p>───</p>
<p>Langkah 4 — Ubah nameserver di registrar domain</p>
<p>Masuk ke tempat kamu beli domain, lalu:</p>
<ol>
<li><p>Buka pengaturan DNS/Nameserver</p>
</li>
<li><p>Ganti nameserver lama dengan nameserver dari Cloudflare</p>
</li>
<li><p>Save</p>
</li>
</ol>
<p>Propagasi biasanya butuh waktu beberapa menit sampai beberapa jam.</p>
<p>───</p>
<p>Langkah 5 — Aktifkan Cloudflare Email Routing</p>
<ol>
<li><p>Buka domain kamu di Cloudflare</p>
</li>
<li><p>Masuk ke menu Email → Email Routing</p>
</li>
<li><p>Klik Get Started / Enable</p>
</li>
<li><p>Masukkan Gmail tujuan (misalnya <a href="mailto:kamu123@gmail.com">kamu123@gmail.com</a>)</p>
</li>
<li><p>Verifikasi email dari Cloudflare di inbox Gmail</p>
</li>
</ol>
<p>Kalau sudah verified, fitur routing aktif.</p>
<p>───</p>
<p>Langkah 6 — Buat alamat email custom</p>
<p>Masih di Email Routing:</p>
<ol>
<li><p>Klik Create Address</p>
</li>
<li><p>Pilih tujuan forward ke Gmail kamu</p>
</li>
<li><p>Save</p>
</li>
</ol>
<p>Ulangi untuk alamat lain sesuai yang diperlukan:</p>
<p>• <a href="mailto:contact@namadomain.com">contact@namadomain.com</a> • <a href="mailto:support@namadomain.com">support@namadomain.com</a> • <a href="mailto:invoice@namadomain.com">invoice@namadomain.com</a></p>
<p>───</p>
<p>Langkah 7 — Supaya bisa kirim dari email custom via Gmail</p>
<p>Sampai sini kamu sudah bisa menerima email custom. Sekarang kita setup supaya bisa mengirim dari Gmail pakai alamat custom.</p>
<p>Di Gmail (web desktop):</p>
<ol>
<li><p>Klik ikon gear → See all settings</p>
</li>
<li><p>Masuk tab Accounts and Import</p>
</li>
<li><p>Di bagian Send mail as, klik Add another email address</p>
</li>
<li><p>Masukkan nama dan email custom kamu</p>
</li>
<li><p>Lanjut ke setup SMTP</p>
<img src="https://cdn.hashnode.com/uploads/covers/680e382202c96c5e448446ac/9199a10a-97ac-4ff3-b3a3-5198726de175.png" alt="" style="display:block;margin:0 auto" /></li>
</ol>
<p>Isi SMTP:</p>
<p>• SMTP Server: <a href="http://smtp.gmail.com">smtp.gmail.com</a> • Port: 587 • Username: email Gmail asli kamu • Password: App Password (bukan password Gmail utama)</p>
<p>───</p>
<p>Langkah 8 — Buat Google App Password</p>
<p>Kalau belum ada, aktifkan dulu 2-Step Verification di akun Google. (2Auth)</p>
<p>Setelah itu:</p>
<ol>
<li><p>Buka <a href="https://myaccount.google.com">https://myaccount.google.com</a> (<a href="https://myaccount.google.com/">https://myaccount.google.com/</a>)</p>
</li>
<li><p>Menu Security</p>
</li>
<li><p>Cari App Passwords / Sandi aplikasi</p>
</li>
<li><p>Generate password untuk Mail</p>
</li>
<li><p>Copy password 16 karakter yang dihasilkan</p>
</li>
<li><p>Pakai password itu di setting SMTP Gmail tadi</p>
</li>
</ol>
<p>Selesai. Nanti Gmail akan kirim email verifikasi ke alamat custom kamu. Buka emailnya (yang sudah ter-forward ke Gmail), lalu klik link verifikasi. Kemudian reload pagenya.</p>
<p>───</p>
<p>Bonus penting — Biar email tidak gampang masuk spam (SPF)</p>
<p>Tambahkan record SPF di Cloudflare DNS:</p>
<p>• Type: TXT • Name: @ • Content: v=spf1 include:_<a href="http://spf.google.com">spf.google.com</a> ~all</p>
<p>Ini membantu server penerima percaya bahwa Gmail boleh kirim email atas nama domain kamu.</p>
<p>Oke, Dengan setup ini kamu bisa terlihat jauh lebih profesional tanpa nambah beban biaya bulanan. Cukup modal domain + sedikit setup teknis, hasilnya terasa banget buat personal branding, job hunting, atau operasional bisnis kecil.</p>
]]></content:encoded></item><item><title><![CDATA[Otomasi Data dari Telegram ke Google Sheets Case Pencatatan Lamar Pekerjaan dengan bantuan n8n]]></title><description><![CDATA[Workflow ini berfungsi untuk mencatat setiap lamaran pekerjaan yang dikirim melalui pesan Telegram langsung ke Google Sheets secara otomatis menggunakan n8n.Setiap kali kamu mengirim pesan berisi detail lamaran ke bot Telegram, sistem akan menuliskan...]]></description><link>https://razifijazi.me/otomasi-data-dari-telegram-ke-google-sheets-case-pencatatan-lamar-pekerjaan-dengan-bantuan-n8n</link><guid isPermaLink="true">https://razifijazi.me/otomasi-data-dari-telegram-ke-google-sheets-case-pencatatan-lamar-pekerjaan-dengan-bantuan-n8n</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Mon, 27 Oct 2025 06:21:53 GMT</pubDate><content:encoded><![CDATA[<p>Workflow ini berfungsi untuk mencatat setiap lamaran pekerjaan yang dikirim melalui pesan Telegram langsung ke Google Sheets secara otomatis menggunakan n8n.<br />Setiap kali kamu mengirim pesan berisi detail lamaran ke bot Telegram, sistem akan menuliskannya ke spreadsheet secara otomatis, sehingga dapat membantu men-tracking kamu dan mendokumentasikan lamaran kerja mana saja sudah diapply secara efisien tanpa perlu mengetik manual di spreadsheet.</p>
<p>Cukup kirim pesan lewat Telegram seperti ini:</p>
<p>Astra Group, Digital Marketing, Jakarta, 10 mar 2025, Email</p>
<h2 id="heading-persiapan-kredensial">Persiapan Kredensial</h2>
<h3 id="heading-hubungkan-akun-google">Hubungkan Akun Google</h3>
<ol>
<li><p>Buka console.cloud.google.com <strong>→ Create project → Enable Google Sheets API</strong> dan <strong>Google Drive API</strong>.</p>
</li>
<li><p>Pilih <strong>New → Google → Google Sheets API</strong>.</p>
</li>
<li><p>Klik <strong>Connect Account</strong>, login dengan akun Google yang memiliki akses ke Spreadsheet.</p>
</li>
<li><p>Simpan credential dengan nama, misalnya <code>google_sheets_prod</code>.</p>
</li>
</ol>
<blockquote>
<p>Pastikan akun memiliki izin <strong>Editor</strong> pada file Spreadsheet tujuan.</p>
</blockquote>
<h3 id="heading-buat-bot-telegram">Buat Bot Telegram</h3>
<ol>
<li><p>Buka Telegram dan cari <strong>@BotFather</strong>.</p>
</li>
<li><p>Ketik <code>/newbot</code>, beri nama dan username bot.</p>
</li>
<li><p>Salin <strong>API Token</strong> yang diberikan.</p>
</li>
<li><p>Di n8n, buat credential baru dengan tipe <strong>Telegram</strong>.</p>
<ul>
<li><p>Masukkan token.</p>
</li>
<li><p>Simpan dengan nama <code>telegram_notify_bot</code>.</p>
</li>
</ul>
</li>
</ol>
<h2 id="heading-struktur-workflow">Struktur Workflow</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Node</td><td>Fungsi</td></tr>
</thead>
<tbody>
<tr>
<td><strong>Telegram Trigger</strong></td><td>Menerima pesan baru dari bot Telegram</td></tr>
<tr>
<td><strong>Function</strong></td><td>Parsing pesan ke kolom data</td></tr>
<tr>
<td><strong>Append Row in Sheet</strong></td><td>Menulis data ke Google Sheet</td></tr>
<tr>
<td><strong>Send Telegram (✅)</strong></td><td>Mengirim notifikasi sukses ke user</td></tr>
</tbody>
</table>
</div><h2 id="heading-konfigurasi-node">Konfigurasi Node</h2>
<h3 id="heading-1-telegram-trigger">1. Telegram Trigger</h3>
<ul>
<li><p><strong>Resource:</strong> Message</p>
</li>
<li><p><strong>Operation:</strong> On New Message</p>
</li>
<li><p><strong>Credentials:</strong> <code>telegram_notify_bot</code></p>
</li>
</ul>
<p>Bot akan aktif setiap kali pesan baru dikirim.</p>
<h3 id="heading-2-function-parsing-pesan">2. Function (Parsing Pesan)</h3>
<p>Contoh script singkat berikut ini untuk memecah teks menjadi kolom:</p>
<pre><code class="lang-plaintext">const text = $json.message.text || "";
const parts = text.split(",").map(p =&gt; p.trim());

return [{
  company: parts[0] || "",
  position: parts[1] || "",
  location: parts[2] || "",
  date: parts[3] || "",
  source: parts[4] || ""
}];
</code></pre>
<h3 id="heading-3-append-row-in-sheet">3. Append Row in Sheet</h3>
<ul>
<li><p><strong>Credentials:</strong> <code>google_sheets_prod</code></p>
</li>
<li><p><strong>Spreadsheet ID:</strong> (isi dari URL Sheet)</p>
</li>
<li><p><strong>Sheet Name:</strong> <code>Lamaran</code></p>
</li>
<li><p><strong>On Error:</strong> Stop Workflow</p>
</li>
<li><p><strong>Mapping Kolom:</strong></p>
<pre><code class="lang-plaintext">  company → Perusahaan
  position → Posisi
  location → Lokasi
  date → Tanggal
  source → Melamar lewat
</code></pre>
</li>
</ul>
<h3 id="heading-4-send-telegram-notifikasi-sukses">4. Send Telegram (Notifikasi Sukses)</h3>
<ul>
<li><p><strong>Credentials:</strong> <code>telegram_notify_bot</code></p>
</li>
<li><p><strong>Chat ID:</strong> isi dengan chat ID kamu</p>
</li>
<li><p><strong>Parse Mode:</strong> Markdown</p>
</li>
<li><p><strong>Message:</strong> aktifkan Expression lalu isi:</p>
</li>
</ul>
<pre><code class="lang-plaintext">✅ Lamaran berhasil disimpan!
🏢 Perusahaan: {{$json.company}}
👔 Posisi: {{$json.position}}
📍 Lokasi: {{$json.location}}
📅 Tanggal: {{$json.date}}
🌐 Sumber: {{$json.source}}
🕓 {{$now}}
</code></pre>
<h3 id="heading-diagram-alur-workflow"><strong>Diagram Alur Workflow</strong></h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761473637299/6bc55249-4760-42bc-811b-f38cdbce4a9c.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-send-telegram-sukses">Send Telegram (Sukses)</h3>
<pre><code class="lang-plaintext">✅ Lamaran berhasil disimpan!
🏢 {{$json.company}} | 👔 {{$json.position}}
📍 {{$json.location}} | 📅 {{$json.date}}
🌐 {{$json.source}}
🕓 {{$now}}
</code></pre>
<h2 id="heading-pengujian">Pengujian</h2>
<p>Format pesan ditele: clipworks, video editor, bali, 05 jun 2025, mail</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761474530239/6eb17f0a-8783-4221-bb11-08a5a988b262.png" alt class="image--center mx-auto" /></p>
<p>Contoh Table pada Spreedsheet</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1761473967828/306bd929-5de2-4eb3-be0f-c8e3399d58e8.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-kesimpulan">Kesimpulan</h2>
<p>Workflow ini membantu proses pencatatan lamaran kerja menjadi lebih praktis dan otomatis. Semua data dikirim langsung dari Telegram dan tersimpan rapi di Google Sheets tanpa perlu input manual. Sistem dirancang sederhana: setiap pesan dengan format yang benar akan otomatis masuk ke spreadsheet dan bot akan mengirim balasan bahwa data berhasil disimpan. Jika ada kesalahan, seperti format pesan yang tidak sesuai atau koneksi ke Google bermasalah, workflow akan berhenti tanpa mengirim pesan apa pun sehingga tidak mengganggu alur komunikasi.</p>
<p>Pendekatan ini membuat proses pelacakan lamaran menjadi lebih efisien dan stabil. Setiap entri dikirim dalam satu langkah saja, hasilnya bisa langsung dilihat di spreadsheet, dan notifikasi yang dikirim tetap bersih karena hanya muncul ketika benar-benar dibutuhkan. Workflow ini cocok untuk siapa pun yang ingin mengelola catatan lamaran kerja secara otomatis melalui Telegram tanpa harus membuka spreadsheet atau mengetik ulang data secara manual.</p>
<p><a target="_blank" href="https://www.capcut.com/tv2/ZSPWBRSp8/">https://www.capcut.com/tv2/ZSPWBRSp8/</a></p>
]]></content:encoded></item><item><title><![CDATA[Cara Deploy Web React Berbasis Vite/Typescript di aapanel]]></title><description><![CDATA[Bagi banyak developer, aapanel menjadi pilihan populer karena tampilan yang ramah pengguna dan fitur lengkap untuk mengelola server. Jika Anda membangun aplikasi React menggunakan Vite, proses deploy di aapanel sebenarnya sederhana namun cukup sulit ...]]></description><link>https://razifijazi.me/cara-deploy-web-react-berbasis-vitetypescript-di-aapanel</link><guid isPermaLink="true">https://razifijazi.me/cara-deploy-web-react-berbasis-vitetypescript-di-aapanel</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Thu, 16 Oct 2025 00:28:45 GMT</pubDate><content:encoded><![CDATA[<p>Bagi banyak developer, aapanel menjadi pilihan populer karena tampilan yang ramah pengguna dan fitur lengkap untuk mengelola server. Jika Anda membangun aplikasi <strong>React</strong> menggunakan <strong>Vite</strong>, proses deploy di aapanel sebenarnya sederhana namun cukup sulit untuk pemula. Artikel ini akan memandu Anda langkah demi langkah — dari persiapan hingga aplikasi siap online.</p>
<hr />
<h3 id="heading-persiapan-di-aapanel"><strong>Persiapan di aapanel</strong></h3>
<p>Pastikan hal-hal berikut sudah siap:</p>
<ul>
<li><p>aapanel sudah terpasang dan dapat diakses. Untuk menginstall aapanel bisa dilihat di post <a target="_blank" href="https://razifijazi.me/cara-instal-aapanel-di-ubuntu">https://razifijazi.me/cara-instal-aapanel-di-ubuntu</a></p>
</li>
<li><p>Setelah instalasi selesai</p>
<p>  Buka <strong>App Store → Install Node.js + PM2</strong>. Untuk tutorial versi video bisa diliat di <a target="_blank" href="https://www.youtube.com/watch?v=UGFngAQFBH4">https://www.youtube.com/watch?v=UGFngAQFBH4</a></p>
</li>
<li><p>**Ikutin tuturial sampai dengan menginstall module</p>
</li>
</ul>
<hr />
<h3 id="heading-menginstall"><strong>Menginstall</strong></h3>
<p>Pastikan hal-hal berikut sudah siap:</p>
<ul>
<li><p>aapanel sudah terpasang dan dapat diakses. Untuk menginstall aapanel bisa dilihat di post <a target="_blank" href="https://razifijazi.me/cara-instal-aapanel-di-ubuntu">https://razifijazi.me/cara-instal-aapanel-di-ubuntu</a></p>
</li>
<li><p>Web server (seperti <strong>Nginx</strong>) berjalan normal.</p>
</li>
<li><p>Anda bisa membuka menu <strong>Website</strong>, <strong>File Manager</strong>, dan <strong>Terminal</strong>.</p>
</li>
<li><p>Node.js sudah tersedia (jika ingin melakukan proses build di server).</p>
</li>
</ul>
<p>Jika Anda ingin lebih cepat, proses build juga bisa dilakukan di komputer lokal lalu mengunggah hasil akhirnya ke server.</p>
<h3 id="heading-mengunggah-kode-proyek-ke-server">Mengunggah Kode Proyek ke Server</h3>
<ol>
<li><p>Masuk ke dashboard aapanel.</p>
</li>
<li><p>Buka menu <strong>File manager</strong>→ create <strong>folder sesuai dengan nama <em>domain.com</em></strong></p>
</li>
<li><p>Upload file ZIP, lalu klik kanan dan pilih <strong>Unzip</strong>.</p>
</li>
<li><p>Kemudian buka menu <strong>Terminal</strong>→ Jalankan perintah dibawah dan sesuaikan folder file</p>
</li>
</ol>
<pre><code class="lang-plaintext">cd /www/wwwroot/nama_domain
npm install
npm run build
</code></pre>
<hr />
<h3 id="heading-membuat-website-baru"><strong>Membuat Website Baru</strong></h3>
<ol>
<li><p>Kembali ke dashboard aapanel.</p>
</li>
<li><p>Buka menu <strong>Website</strong> → klik <strong>Add Site</strong>.</p>
</li>
<li><p>Isi nama domain (contoh: domain.com).</p>
</li>
<li><p>Pilih tipe situs “Static” jika tersedia.</p>
</li>
<li><p>Arahkan pengaturan root default, misalnya <code>/www/wwwroot/domain.com</code>.</p>
</li>
<li><p>Unchecklist create html file</p>
</li>
<li><p>Klik <strong>Submit</strong> untuk menyimpan.</p>
</li>
</ol>
<hr />
<h3 id="heading-mengatur-root-directory-ke-folder-dist"><strong>Mengatur Root Directory ke Folder dist</strong></h3>
<ol>
<li><p>Buka menu <strong>Website</strong> di aapanel. Klik Conf</p>
</li>
<li><p>Klik domain Anda, lalu buka tab <strong>Site Directory</strong>.</p>
</li>
<li><p>Ubah <strong>Running Directory</strong> menjadi <code>/www/wwwroot/namadomain/dist</code>.</p>
</li>
<li><p>Simpan pengaturan, lalu reload layanan web server jika diminta.</p>
</li>
</ol>
<p>Sekarang situs Anda akan menampilkan hasil build React dengan benar di halaman utama.</p>
<hr />
<h3 id="heading-menambahkan-aturan-spa-single-page-application"><strong>Menambahkan Aturan SPA (Single Page Application)</strong></h3>
<p>Agar rute seperti akses ke folder lain tidak error saat diakses langsung, tambahkan aturan <strong>URL Rewrite</strong>.</p>
<ol>
<li><p>Buka <strong>Website</strong> → pilih domain → <strong>URL Rewrite</strong>.</p>
</li>
<li><p>Masukan kode koniguasi dibawah:</p>
</li>
</ol>
<h3 id="heading-kode-konfigurasi-nginx"><strong>Kode Konfigurasi Nginx</strong></h3>
<p>Ini adalah kode yang Anda butuhkan. Kode ini memberitahu Nginx untuk mengarahkan semua permintaan ke <code>index.html</code> jika file atau direktori yang diminta tidak ditemukan.</p>
<pre><code class="lang-plaintext">nginxCopylocation / {
  try_files $uri $uri/ /index.html;
}
</code></pre>
<hr />
<h3 id="heading-mengaktifkan-ssl-dan-cloudflare"><strong>Mengaktifkan SSL dan Cloudflare</strong></h3>
<p>Jika Anda ingin situs menggunakan HTTPS, Anda memiliki dua opsi:</p>
<h4 id="heading-a-lets-encrypt-dari-aapanel"><strong>A. Let’s Encrypt dari aapanel</strong></h4>
<ol>
<li><p>Buka <strong>Website</strong> → domain → tab <strong>SSL</strong>.</p>
</li>
<li><p>Pilih <strong>Let’s Encrypt</strong> dan jalankan instalasi.</p>
</li>
<li><p>Setelah sukses, sertifikat SSL akan otomatis diterapkan.</p>
</li>
</ol>
<hr />
<h3 id="heading-memperbarui-situs-di-masa-depan"><strong>Memperbarui Situs di Masa Depan</strong></h3>
<p>Setiap kali Anda memperbarui aplikasi:</p>
<ol>
<li><p>Lakukan <em>git pull</em> atau unggah kode terbaru.</p>
</li>
<li><p>Jalankan kembali proses build agar folder <code>dist</code> diperbarui.</p>
</li>
<li><p>Tidak perlu mengubah konfigurasi aapanel lagi.</p>
</li>
<li><p>Jika menggunakan Cloudflare, lakukan <strong>Purge Cache</strong> agar versi baru langsung tampil.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Cara Instal aaPanel di Ubuntu]]></title><description><![CDATA[aaPanel adalah kontrol panel server berbasis web yang memudahkan pengguna dalam mengelola layanan hosting seperti web server, database, FTP, dan SSL tanpa perlu mengetik perintah terminal yang rumit. Panel ini merupakan alternatif populer untuk cPane...]]></description><link>https://razifijazi.me/cara-instal-aapanel-di-ubuntu</link><guid isPermaLink="true">https://razifijazi.me/cara-instal-aapanel-di-ubuntu</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Thu, 16 Oct 2025 00:06:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760574894604/e6c133c9-6dd5-48e1-9a41-a30056c8c186.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>aaPanel adalah kontrol panel server berbasis web yang memudahkan pengguna dalam mengelola layanan hosting seperti web server, database, FTP, dan SSL tanpa perlu mengetik perintah terminal yang rumit. Panel ini merupakan alternatif populer untuk cPanel karena <strong>gratis, ringan, dan mudah digunakan</strong>.</p>
<h2 id="heading-persiapan-awal">Persiapan Awal</h2>
<p>Sebelum instalasi, pastikan server Anda memenuhi syarat berikut:</p>
<ul>
<li><p><strong>Sistem Operasi:</strong> Ubuntu 18.04, 20.04, 22.04, atau versi terbaru</p>
</li>
<li><p><strong>Hak Akses:</strong> Root atau pengguna dengan <code>sudo</code></p>
</li>
<li><p><strong>RAM Minimal:</strong> 512 MB (disarankan 1 GB ke atas)</p>
</li>
<li><p><strong>Penyimpanan:</strong> Minimal 20 GB ruang kosong</p>
</li>
</ul>
<p>Mengakses server melalui aplikasi seperti <strong>Termius</strong>, <strong>PuTTY</strong>, atau terminal Linux</p>
<h2 id="heading-update-dan-install-dependensi">Update dan Install Dependensi</h2>
<p>Sebelum menginstal aaPanel, perbarui sistem agar semua paket berada dalam versi terbaru.</p>
<pre><code class="lang-plaintext">sudo apt update -y &amp;&amp; sudo apt upgrade -y
</code></pre>
<p>Kemudian pastikan <code>wget</code> terinstal:</p>
<pre><code class="lang-plaintext">sudo apt install wget -y
</code></pre>
<h2 id="heading-download-dan-instal-aapanel">Download dan Instal aaPanel</h2>
<p>Gunakan perintah resmi berikut dari situs aaPanel:</p>
<pre><code class="lang-plaintext">wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh
sudo bash install.sh
</code></pre>
<h2 id="heading-akses-dashboard-aapanel">Akses Dashboard aaPanel</h2>
<p>Setelah instalasi selesai, terminal akan menampilkan informasi seperti berikut:</p>
<pre><code class="lang-plaintext">Congratulations! Installed successfully!
aaPanel Internet Address: http://SERVER_IP:7800/xxxxxx
username: ********
password: ********
</code></pre>
<p>Salin URL, username, dan password tersebut.<br />Buka browser lalu akses:</p>
<pre><code class="lang-plaintext">http://IP-SERVER:7800/
</code></pre>
<p>Masukkan username dan password untuk masuk ke panel.</p>
<blockquote>
<p><strong>Tips Keamanan:</strong> Setelah berhasil login, ubah password default dan aktifkan SSL untuk keamanan akses panel.</p>
</blockquote>
<p>Terkadang aapanel tidak bisa diakses karna firewall port belum terbuka, untuk harus disetting di panel dashobard cloud service yang digunakan</p>
<hr />
<h2 id="heading-5-pilih-stack-web-server">5. Pilih Stack Web Server</h2>
<p>Setelah login pertama kali, aaPanel akan menanyakan pilihan stack server:</p>
<ul>
<li><p><strong>LNMP (Linux, Nginx, MySQL, PHP)</strong></p>
</li>
<li><p><strong>LAMP (Linux, Apache, MySQL, PHP)</strong></p>
</li>
</ul>
<p>Untuk performa yang lebih baik, disarankan memilih <strong>LNMP</strong>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1760573447478/4f8acf18-f2eb-46a4-bb28-d9c02a2cd06b.png" alt class="image--center mx-auto" /></p>
<blockquote>
<p><strong>Tips :</strong> Bisa disesuaikan sesuai dengan kebutuhan</p>
</blockquote>
<p>Klik <strong>“One-click Install”</strong> dan tunggu hingga proses selesai.</p>
]]></content:encoded></item><item><title><![CDATA[How to add External SMTP on WHM/cPanel with GSuite Relay SMTP]]></title><description><![CDATA[Have you ever experienced emails from your server not reaching their destination — just disappearing? They've been sent without any errors, but the recipient never gets them. In this case, the issue is most likely in the email delivery process — it c...]]></description><link>https://razifijazi.me/how-to-add-external-smtp-on-whmcpanel-with-gsuite-relay-smtp</link><guid isPermaLink="true">https://razifijazi.me/how-to-add-external-smtp-on-whmcpanel-with-gsuite-relay-smtp</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Wed, 11 Jun 2025 03:40:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1752641168926/baa9b8ba-d849-4ec3-86e4-1f1156273988.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Have you ever experienced emails from your server not reaching their destination — just disappearing? They've been sent without any errors, but the recipient never gets them. In this case, the issue is most likely in the email delivery process — it could be that the VPS where WHM is installed doesn't have port 25 open.</p>
<p>One of the most effective solutions to fix this is: <strong>Smarthost SMTP Relay</strong>. Here's how to set it up in WHM/cPanel:</p>
<ol>
<li><p>Login to WHM as root / Administrator. Then go to the menu:<br /> <strong>Home &gt;&gt; Service Configuration &gt;&gt; Exim Configuration Manager</strong>.</p>
</li>
<li><p>Click on <strong>Advanced Editor</strong>.</p>
</li>
<li><p>In the <strong>Section: AUTH</strong>, add the following code</p>
<pre><code class="lang-plaintext"> excrelay_login:
 driver = plaintext
 public_name = LOGIN
 client_send = : USERNAME : PASSWORD
</code></pre>
</li>
<li><p>In the <strong>Section: ROUTERSTART</strong>, add the following code:</p>
<pre><code class="lang-plaintext"> send_via_excrelay:
 driver = manualroute
 domains = ! +local_domains
 transport = excrelay_smtp
 route_list = * smtp-relay.gmail.com
</code></pre>
</li>
<li><p>In the <strong>Section: TRANSPORTSTART</strong>, add the following code:</p>
<pre><code class="lang-plaintext"> excrelay_smtp:
 driver = smtp
 port = 587
 hosts = smtp-relay.gmail.com
 hosts_require_auth = smtp-relay.gmail.com
</code></pre>
</li>
<li><p>Click the <strong>Save</strong> button to apply the changes.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Key For Upgrade Windows Server trial version to Full version (2012/ 2016/ 2019/ 2022)]]></title><description><![CDATA[Upgrade Datacenter Evaluation to Full Version
Run the following command:
DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula
Replace XXXXX-XXXXX-XXXXX-XXXXX-XXXXX with the key corresponding to the version ...]]></description><link>https://razifijazi.me/upgrade-windows-server-trial-version-to-full-version-2012-2016-2019-2022</link><guid isPermaLink="true">https://razifijazi.me/upgrade-windows-server-trial-version-to-full-version-2012-2016-2019-2022</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Sun, 18 May 2025 01:32:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1752642026674/2edc0fcb-39c8-4c46-977f-b07dd6d2a518.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-upgrade-datacenter-evaluation-to-full-version"><strong>Upgrade Datacenter Evaluation to Full Version</strong></h1>
<p>Run the following command:</p>
<p><code>DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula</code></p>
<p><em>Replace</em> <strong><em>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</em></strong> <em>with the key corresponding to the version you want to upgrade to. The key is at the bottom of the article.</em></p>
<p>After running the command, the system will ask you if you want to restart the computer, enter <strong>Y</strong> to agree, the system will automatically restart.</p>
<p>Example:<code>DISM /online /Set-Edition:ServerDatacenter /ProductKey:WMDGN-G9PQG-XVVXX-R3X43-63DFG /AcceptEula</code></p>
<h1 id="heading-upgrade-standard-from-evaluation-to-full-version"><strong>Upgrade Standard from Evaluation to Full Version</strong></h1>
<p><code>DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula</code></p>
<h1 id="heading-upgrade-enterprise-from-evaluation-to-full-version"><strong>Upgrade Enterprise from Evaluation to Full Version</strong></h1>
<p><code>DISM /online /Set-Edition:ServerEnterprise /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula</code></p>
<h1 id="heading-windows-server-upgrade-key"><strong>WINDOWS SERVER UPGRADE KEY</strong></h1>
<p><strong>Windows Server 2022 Datacenter</strong></p>
<p><code>WX4NM-KYWYW-QJJR4-XV3QB-6VM33</code></p>
<p><strong>Windows Server 2022 Standard</strong></p>
<p><code>VDYBN-27WPP-V4HQT-9VMD4-VMK7H</code></p>
<p><strong>Windows Server 2019 Datacenter</strong></p>
<p><code>WMDGN-G9PQG-XVVXX-R3X43-63DFG</code></p>
<p><strong>Windows Server 2019 Standard</strong></p>
<p><code>N69G4-B89J2-4G8F4-WWYCC-J464C</code></p>
<p><strong>Windows Server 2016 Datacenter</strong></p>
<p><code>CB7KF-BWN84-R7R2Y-793K2-8XDDG</code></p>
<p><strong>Windows Server 2016 Standard</strong></p>
<p><code>WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY</code></p>
<p><strong>Windows Server 2012 R2 Datacenter</strong></p>
<p><code>W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9</code></p>
<p><strong>Windows Server 2012 R2 Standard</strong></p>
<p><code>D2N9P-3P6X9-2R39C-7RTCD-MDVJX</code></p>
<p><strong>Windows Server 2012 Datacenter</strong></p>
<p><code>48HP8-DN98B-MYWDG-T2DCC-8W83P</code></p>
<p><strong>Windows Server 2012 Standard</strong></p>
<p><code>XC9B7-NBPP2-83J2H-RHMBY-92BT4</code></p>
<p><strong>Windows Server 2008 R2 Datacenter</strong></p>
<p><code>74YFP-3QFB3-KQT8W-PMXWJ-7M648</code></p>
<p><strong>Windows Server 2008 R2 Standard</strong></p>
<p><code>YC6KT-GKW9T-YTKYR-T4X34-R7VHC</code></p>
<p><strong>Windows Server 2008 R2 Enterprise</strong></p>
<p><code>489J6-VHDMP-X63PK-3K798-CPX3Y</code></p>
<p><strong>Windows Server 2008 Datacenter</strong></p>
<p><code>7M67G-PC374-GR742-YH8V4-TCBY3</code></p>
<p><strong>Windows Server 2008 Standard</strong></p>
<p><code>TM24T-X9RMF-VWXK6-X8JC9-BFGM2</code></p>
<p><strong>Windows Server 2008 Enterprise</strong></p>
<p><code>YQGMW-MPWTJ-34KDK-48M3W-X4Q6V</code></p>
]]></content:encoded></item><item><title><![CDATA[StreamFlow: Aplikasi Live Streaming Multi-Window dengan auto cronjobs delete cache videodata agar disk tidak penuh]]></title><description><![CDATA[Install https://github.com/bangtutorial/streamflow/

Buat file script /root/clean_streamflow_data.sh:
 sudo nano /root/clean_streamflow_data.sh

isi dengan script dibawah:
 #!/bin/bash

 # Log waktu pembersihan
 echo "=== Pembersihan otomatis dimulai...]]></description><link>https://razifijazi.me/streamflow-aplikasi-live-streaming-multi-window-dengan-auto-cronjobs-delete-videodata-agar-tak-disk-tidak-penuh</link><guid isPermaLink="true">https://razifijazi.me/streamflow-aplikasi-live-streaming-multi-window-dengan-auto-cronjobs-delete-videodata-agar-tak-disk-tidak-penuh</guid><dc:creator><![CDATA[Razif Ijazi]]></dc:creator><pubDate>Sun, 27 Apr 2025 16:46:10 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1760574858539/a16f75c1-e085-4dac-b5a0-8888734a2dc1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<ol>
<li><p>Install <a target="_blank" href="https://github.com/bangtutorial/streamflow/tree/main">https://github.com/bangtutorial/streamflow/</a></p>
</li>
<li><p>Buat file script /root/clean_streamflow_data.sh:</p>
<p> <code>sudo nano /root/clean_streamflow_</code><a target="_blank" href="http://data.sh"><code>data.sh</code></a></p>
</li>
<li><p>isi dengan script dibawah:</p>
<pre><code class="lang-bash"> <span class="hljs-comment">#!/bin/bash</span>

 <span class="hljs-comment"># Log waktu pembersihan</span>
 <span class="hljs-built_in">echo</span> <span class="hljs-string">"=== Pembersihan otomatis dimulai pada <span class="hljs-subst">$(date)</span> ==="</span>

 <span class="hljs-comment"># Hapus file streamflow_videodata_*.mp4 di folder uploads</span>
 find /root/streamflow/src/uploads -<span class="hljs-built_in">type</span> f -name <span class="hljs-string">'streamflow_videodata_*.mp4'</span> -<span class="hljs-built_in">exec</span> rm -fv {} \;

 <span class="hljs-comment"># Catat hasil pembersihan ke log</span>
 <span class="hljs-built_in">echo</span> <span class="hljs-string">"File yang dihapus:"</span>
 find /root/streamflow/src/uploads -<span class="hljs-built_in">type</span> f -name <span class="hljs-string">'streamflow_videodata_*.mp4'</span> | <span class="hljs-keyword">while</span> <span class="hljs-built_in">read</span> file; <span class="hljs-keyword">do</span>
   <span class="hljs-built_in">echo</span> <span class="hljs-string">"- <span class="hljs-variable">$file</span>"</span>
 <span class="hljs-keyword">done</span>

 <span class="hljs-built_in">echo</span> <span class="hljs-string">"=== Pembersihan selesai ==="</span>
</code></pre>
</li>
<li><p>Beri izin eksekusi</p>
<p> <code>chmod +x /root/clean_streamflow_</code><a target="_blank" href="http://data.sh"><code>data.sh</code></a></p>
</li>
<li><p>Tes Script</p>
<p> <code>sudo /root/clean_streamflow_</code><a target="_blank" href="http://data.sh"><code>data.sh</code></a></p>
</li>
<li><p>Output contoh jika berhasil:</p>
<pre><code class="lang-plaintext"> === Pembersihan otomatis dimulai pada Sen 8 Apr 10:00:00 WIB ===  
 File yang dihapus:  
 - /root/streamflow/src/uploads/streamflow_videodata_38cfc782b95dd5c716f19cde762fb9ac.mp4  
 === Pembersihan selesai ===
</code></pre>
</li>
<li><p>Tambahkan ke Cronjob Setiap 12 Jam</p>
<p> <code>sudo crontab -e</code></p>
</li>
<li><p>Lalu ini masukan dibagian paling bawah:.</p>
<p> <code>0 /12 /root/clean_streamflow_</code><a target="_blank" href="http://data.sh"><code>data.sh</code></a> <code>&gt;&gt; /root/streamflow_cleanup.log 2&gt;&amp;1</code></p>
</li>
</ol>
<ul>
<li><p><strong>Penjelasan</strong>:<br />  <code>*/12</code> = Jalankan <strong>setiap 12 jam</strong> (misal: jam 00:00, 12:00, 00:00, dst).<br />  <code>0</code> = Menit ke-0 (tepat pada jam tersebut).</p>
</li>
<li><p><code>&gt;&gt; /root/streamflow_cleanup.log</code> untuk menyimpan log.</p>
</li>
</ul>
<ol start="9">
<li><p>Verifikasi Cronjob</p>
<p> Cek log setelah cronjob berjalan:</p>
<p> <code>cat /root/streamflow_cleanup.log</code></p>
<p> Cek daftar cronjob aktif:</p>
<p> <code>sudo crontab -l</code></p>
<p> Contoh Hasil Log<br /> Jika cronjob berjalan sukses, isi /root/streamflow_cleanup.log akan seperti ini:</p>
<pre><code class="lang-plaintext"> === Pembersihan otomatis dimulai pada Sen 8 Apr 06:00:00 WIB ===  
 File yang dihapus:  
 - /root/streamflow/src/uploads/streamflow_videodata_123456.mp4  
 === Pembersihan selesai ===
</code></pre>
</li>
</ol>
]]></content:encoded></item></channel></rss>