Panduan Instalasi Lengkap
StarCustomPrinting — platform custom printing & print-on-demand (Laravel 12).
Paket starcustomeprinting-full.zip sudah include library PHP — tidak perlu Composer.
public//installNiagahoster, Hostinger, Rumahweb…
Shared hosting dengan cPanel. Upload via File Manager atau FTP. Tanpa terminal.
VPS / CloudDigitalOcean, Vultr, Contabo…
Ubuntu + Nginx. Kontrol penuh server. Panduan command lengkap disertakan.
✓ Persyaratan server
Pastikan hosting/VPS memenuhi syarat ini sebelum upload.
| Komponen | Minimum | Keterangan |
|---|---|---|
| PHP | 8.2 atau 8.3 | Tidak support PHP 7.x / 8.0 / 8.1 |
| Ekstensi PHP | openssl, pdo, mbstring, tokenizer, xml, json, bcmath, fileinfo, curl | Centang di cPanel MultiPHP |
| Database | SQLite atau MySQL 5.7+ | Minimal salah satu PDO driver aktif |
| Composer | Tidak wajib | Paket FULL sudah ada folder vendor/ |
| Web server | Apache / Nginx / LiteSpeed | Document root harus folder public/ |
| SSL | Disarankan | Gratis via Let's Encrypt (cPanel / Certbot) |
| Node.js | Tidak wajib | UI pakai Tailwind CDN |
starcustomeprinting-full.zip + database SQLite di wizard — paling sedikit langkah manual.
⚡ Wizard instalasi Browser — wajib
Setelah upload & document root benar, instalasi utama dilakukan di browser. Tidak perlu ketik perintah artisan.
https://domain-anda.com/install
Cek persyaratan server
Wizard otomatis mengecek PHP, ekstensi, dan permission folder. Semua item harus hijau (✓). Item kuning untuk PDO SQLite/MySQL — minimal satu harus aktif.
Pilih database
SQLite — tanpa buat database di panel. MySQL — database harus sudah dibuat kosong. Klik Tes koneksi sampai sukses.
Toko & akun admin
Isi nama toko, URL website (pakai https jika SSL sudah aktif), email admin, password admin (min. 8 karakter).
Instal sekarang
Wizard menulis .env, migrate database, seed produk demo, buat admin Anda. Redirect ke halaman login saat selesai.
🗄 SQLite vs MySQL — pilih yang mana?
| SQLite | MySQL | |
|---|---|---|
| Kesulitan | ⭐ Mudah | ⭐⭐ Sedang |
| Setup di cPanel | Tidak perlu buat DB | Buat database + user dulu |
| Cocok untuk | Toko kecil, demo, shared hosting entry | Traffic tinggi, VPS, banyak order |
| Backup | Copy file database/database.sqlite | Export via phpMyAdmin / mysqldump |
🌐 Instalasi di Shared Hosting cPanel
Niagahoster · Hostinger · Rumahweb · Dewaweb · Domainsia · idCloudHost · dan hosting cPanel lainnya.
public/ → buka /install → SSL → cron.1 Upload file ke hosting
A. Via cPanel File Manager (paling mudah)
- Login cPanel hosting Anda
- Buka menu File Manager
- Masuk ke folder home (
/home/username/) - Klik + Folder → buat folder
starcustom(nama bebas) - Masuk ke folder
starcustom - Klik Upload → pilih
starcustomeprinting-full.zip - Tunggu upload selesai (2–15 menit, ukuran ~36 MB)
- Klik kanan file zip → Extract
- Verifikasi struktur folder:
starcustom/ ├── app/ ├── bootstrap/ ├── config/ ├── database/ ├── docs/ ├── public/ ← document root mengarah ke sini ├── resources/ ├── routes/ ├── scripts/ ├── storage/ ├── vendor/ ← sudah ada di paket FULL ├── artisan ├── BACA-DULU.txt └── .env.example
starcustom/starcustom/.B. Via FTP (FileZilla)
- Download FileZilla Client (gratis)
- Data FTP dari cPanel → FTP Accounts:
- Host:
ftp.domainanda.com - Username & password FTP
- Port: 21 (FTP) atau 22 (SFTP jika tersedia)
- Host:
- Extract zip di komputer dulu
- Upload semua isi folder extract ke
/starcustom/di server - Jangan upload folder zip saja — harus isi di dalamnya
2 Set PHP 8.2 atau 8.3
- cPanel → Select PHP Version atau MultiPHP Manager
- Pilih domain/subdomain yang dipakai
- Pilih versi PHP 8.2 atau 8.3
- Di tab Extensions, pastikan aktif:
opensslpdopdo_sqlitepdo_mysqlmbstringtokenizerxmljsonbcmathfileinfocurl - Klik Save
3 Arahkan domain ke folder public PALING PENTING
public, BUKAN root project.
| Benar ✓ | Salah ✗ |
|---|---|
/home/username/starcustom/public | /home/username/starcustom |
/home/username/starcustom/public | /home/username/public_html (tanpa symlink) |
Cara A — Edit Document Root (disarankan)
- cPanel → Domains → Create Subdomain atau klik domain → Manage
- Untuk subdomain
toko.domain.comatau domain utama - Field Document Root isi:
Ganti
/home/username/starcustom/public
usernamedengan username cPanel Anda - Save / Create
Cara B — Tidak bisa ubah document root?
Lihat section Alternatif public_html di bawah.
4 Buat database MySQL (jika pilih MySQL di wizard)
Lewati section ini jika pilih SQLite di wizard.
- cPanel → MySQL Databases
- Create New Database: misal
username_starcustom - MySQL Users → Create User: buat username + password kuat
- Add User To Database → pilih user & database → centang ALL PRIVILEGES
- Catat data berikut untuk wizard:
| Field wizard | Isi (contoh cPanel) |
|---|---|
| Host | localhost |
| Port | 3306 |
| Database | username_starcustom |
| Username | username_dbuser |
| Password | password yang Anda buat |
5 Set permission folder (jika error 500)
Via File Manager
- Klik kanan folder
storage→ Change Permissions →775 - Ulangi untuk
bootstrap/cache→775 - Folder
database→775
Via Terminal cPanel (jika ada)
cd ~/starcustom bash scripts/set-permissions.sh
6 Aktifkan SSL / HTTPS
- cPanel → SSL/TLS Status atau Let's Encrypt SSL
- Pilih domain → Issue / Install certificate (gratis)
- cPanel → Domains → aktifkan Force HTTPS Redirect
- Di wizard instalasi, pastikan APP_URL pakai
https://
7 Cron job di cPanel
Wajib untuk pengingat pembayaran otomatis (email/WA).
- cPanel → Cron Jobs
- Common Settings: Once Per Minute (* * * * *)
- Command (sesuaikan path):
cd /home/username/starcustom && php artisan schedule:run >> /dev/null 2>&1
Ganti username dengan username cPanel Anda.
8 Alternatif: hosting tanpa ubah document root
Jika hosting tidak mengizinkan ubah document root (hanya public_html):
- Upload project ke
/home/username/starcustom/(di luar public_html) - Buka file
install/cpanel-public_html-index.php.exampledi paket zip - Edit baris
$laravelRoot:
$laravelRoot = '/home/username/starcustom'; // ganti path Anda
- Copy isi file tersebut ke
/home/username/public_html/index.php(ganti index.php default) - Buka
https://domain.com/install
🖥 Instalasi di VPS / Cloud Server Ubuntu
DigitalOcean · Vultr · Contabo · AWS Lightsave · Niagahoster VPS · Tencent Cloud · dll.
/install → cron.1 Upload file ke VPS
A. Via SFTP (FileZilla / WinSCP) — disarankan pemula
- Buka FileZilla → Protocol: SFTP
- Host: IP VPS · User:
rootatauubuntu· Port: 22 - Di server, buat folder:
/var/www/namadomain.com - Upload
starcustomeprinting-full.zip - Via SSH, extract:
sudo mkdir -p /var/www/namadomain.com sudo unzip /path/to/starcustomeprinting-full.zip -d /var/www/namadomain.com # atau jika upload ke /tmp: sudo unzip /tmp/starcustomeprinting-full.zip -d /var/www/namadomain.com
B. Via SCP dari komputer
scp starcustomeprinting-full.zip user@IP_VPS:/tmp/ ssh user@IP_VPS sudo mkdir -p /var/www/namadomain.com sudo unzip /tmp/starcustomeprinting-full.zip -d /var/www/namadomain.com
C. Script permission (opsional)
cd /var/www/namadomain.com chmod +x scripts/install-vps.sh sudo bash scripts/install-vps.sh
Script ini set permission & cek PHP. Instalasi database tetap lewat wizard browser.
2 Install PHP, Nginx & MySQL (VPS fresh Ubuntu 22/24)
Jalankan sekali di VPS baru:
sudo apt update && sudo apt upgrade -y # PHP 8.3 + ekstensi sudo apt install -y nginx php8.3-fpm php8.3-cli php8.3-sqlite3 php8.3-mysql \ php8.3-mbstring php8.3-xml php8.3-curl php8.3-bcmath php8.3-zip unzip # MySQL (opsional — lewati jika pakai SQLite) sudo apt install -y mysql-server sudo mysql_secure_installation # Verifikasi php -v nginx -v
3 Konfigurasi Nginx
Buat file config (ganti namadomain.com):
sudo nano /etc/nginx/sites-available/namadomain.com
Isi dengan:
server {
listen 80;
listen [::]:80;
server_name namadomain.com www.namadomain.com;
root /var/www/namadomain.com/public;
index index.php;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Aktifkan site:
sudo ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
Permission & ownership
sudo chown -R www-data:www-data /var/www/namadomain.com/storage sudo chown -R www-data:www-data /var/www/namadomain.com/bootstrap/cache sudo chmod -R ug+rwx /var/www/namadomain.com/storage sudo chmod -R ug+rwx /var/www/namadomain.com/bootstrap/cache touch /var/www/namadomain.com/database/database.sqlite sudo chown www-data:www-data /var/www/namadomain.com/database/database.sqlite
Alt Alternatif Apache (jika tidak pakai Nginx)
sudo apt install -y apache2 libapache2-mod-php8.3 sudo a2enmod rewrite sudo nano /etc/apache2/sites-available/namadomain.com.conf
<VirtualHost *:80>
ServerName namadomain.com
DocumentRoot /var/www/namadomain.com/public
<Directory /var/www/namadomain.com/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/namadomain-error.log
CustomLog ${APACHE_LOG_DIR}/namadomain-access.log combined
</VirtualHost>
sudo a2ensite namadomain.com.conf sudo a2dissite 000-default.conf sudo systemctl reload apache2
4 SSL dengan Certbot (VPS)
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d namadomain.com -d www.namadomain.com
Ikuti prompt Certbot. HTTPS otomatis aktif + redirect HTTP→HTTPS.
5 Buat database MySQL di VPS (opsional)
Lewati jika pilih SQLite di wizard.
sudo mysql -e "CREATE DATABASE starcustom CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" sudo mysql -e "CREATE USER 'starcustom'@'localhost' IDENTIFIED BY 'PasswordKuat123!';" sudo mysql -e "GRANT ALL PRIVILEGES ON starcustom.* TO 'starcustom'@'localhost';" sudo mysql -e "FLUSH PRIVILEGES;"
Isi data ini di wizard: Host 127.0.0.1, Port 3306, DB/User/Password sesuai di atas.
6 Cron job di VPS
sudo crontab -e -u www-data
Tambahkan baris:
* * * * * cd /var/www/namadomain.com && php artisan schedule:run >> /dev/null 2>&1
7 Wizard instalasi VPS
Setelah Nginx + SSL aktif, buka browser:
https://namadomain.com/install
Ikuti wizard 4 langkah (sama dengan hosting). Login admin → selesai.
✅ Setelah instalasi berhasil
| URL | Fungsi |
|---|---|
https://domain.com/ | Homepage toko |
https://domain.com/login | Login pelanggan & admin |
https://domain.com/admin | Panel admin |
Checklist setelah login admin
- Ganti password admin segera
- Admin → Pengaturan → Toko & Kontak — nama, WA, email
- Admin → Pengaturan → Pembayaran — rekening bank + Tripay
- Admin → Ongkir & ekspedisi — RajaOngkir (opsional)
- Admin → Pengaturan → Notifikasi — email & WhatsApp
- Pastikan cron job sudah aktif
- Tes checkout end-to-end (produk → keranjang → bayar)
💳 Konfigurasi Tripay Payment Gateway
- Daftar merchant di tripay.co.id
- Ambil API Key, Private Key, Merchant Code (sandbox untuk testing)
- Aktifkan channel: QRIS, VA, Indomaret, dll. di dashboard Tripay
- Admin → Pengaturan → Pembayaran → aktifkan Tripay, isi credential
- Set Callback URL di dashboard Tripay:
https://domain-anda.com/callback/tripay
🔧 Troubleshooting
| Gejala | Penyebab | Solusi |
|---|---|---|
| 403 Forbidden | Document root salah | Arahkan ke folder public/ atau pakai alternatif public_html |
| 500 Internal Server Error | Permission storage | chmod 775 storage & bootstrap/cache |
| Halaman blank putih | PHP < 8.2 | Upgrade PHP di cPanel / VPS |
| /install 404 | Route cache lama | Hapus semua .php di bootstrap/cache/ |
| .env tidak writable | Permission root | Buat file .env kosong (copy .env.example), chmod 664 |
| MySQL gagal | DB/user salah | Cek ALL PRIVILEGES, host=localhost, prefix cPanel |
| SQLite gagal | Folder database | chmod 775 folder database/ |
| Sudah terinstal | Flag installed ada | Hapus storage/app/installed + .env → /install lagi |
| Tripay tidak update | Callback/SSL | Pastikan HTTPS + URL callback exact |
| CSS aneh | CDN diblokir | Hosting harus bisa akses cdn.tailwindcss.com |
Cek log error
Download & buka file storage/logs/laravel.log via File Manager / SFTP.
Reinstall dari awal
- Hapus
storage/app/installed - Hapus atau rename
.env - (Opsional) Hapus
database/database.sqlite - Buka
/installlagi