S
StarCustomPrinting — Panduan Instalasi

Panduan Instalasi Lengkap

StarCustomPrinting — platform custom printing & print-on-demand (Laravel 12).
Paket starcustomeprinting-full.zip sudah include library PHP — tidak perlu Composer.

1 Upload zip ke server
2 Arahkan domain ke folder public/
3 Buka /install
4 Selesai — login admin

Persyaratan server

Pastikan hosting/VPS memenuhi syarat ini sebelum upload.

KomponenMinimumKeterangan
PHP8.2 atau 8.3Tidak support PHP 7.x / 8.0 / 8.1
Ekstensi PHPopenssl, pdo, mbstring, tokenizer, xml, json, bcmath, fileinfo, curlCentang di cPanel MultiPHP
DatabaseSQLite atau MySQL 5.7+Minimal salah satu PDO driver aktif
ComposerTidak wajibPaket FULL sudah ada folder vendor/
Web serverApache / Nginx / LiteSpeedDocument root harus folder public/
SSLDisarankanGratis via Let's Encrypt (cPanel / Certbot)
Node.jsTidak wajibUI pakai Tailwind CDN
💡 Rekomendasi pemula Gunakan paket 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.

Buka URL ini di browser: https://domain-anda.com/install
1

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.

2

Pilih database

SQLite — tanpa buat database di panel. MySQL — database harus sudah dibuat kosong. Klik Tes koneksi sampai sukses.

3

Toko & akun admin

Isi nama toko, URL website (pakai https jika SSL sudah aktif), email admin, password admin (min. 8 karakter).

4

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?

SQLiteMySQL
Kesulitan⭐ Mudah⭐⭐ Sedang
Setup di cPanelTidak perlu buat DBBuat database + user dulu
Cocok untukToko kecil, demo, shared hosting entryTraffic tinggi, VPS, banyak order
BackupCopy file database/database.sqliteExport via phpMyAdmin / mysqldump

🌐 Instalasi di Shared Hosting cPanel

Niagahoster · Hostinger · Rumahweb · Dewaweb · Domainsia · idCloudHost · dan hosting cPanel lainnya.

Ringkasan hosting: Upload zip → set PHP 8.2 → arahkan domain ke public/ → buka /install → SSL → cron.

1 Upload file ke hosting

A. Via cPanel File Manager (paling mudah)

  1. Login cPanel hosting Anda
  2. Buka menu File Manager
  3. Masuk ke folder home (/home/username/)
  4. Klik + Folder → buat folder starcustom (nama bebas)
  5. Masuk ke folder starcustom
  6. Klik Upload → pilih starcustomeprinting-full.zip
  7. Tunggu upload selesai (2–15 menit, ukuran ~36 MB)
  8. Klik kanan file zip → Extract
  9. 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
⚠️ Penting: Extract harus menghasilkan folder di atas. Jangan sampai file masuk ke subfolder ganda seperti starcustom/starcustom/.

B. Via FTP (FileZilla)

  1. Download FileZilla Client (gratis)
  2. Data FTP dari cPanel → FTP Accounts:
    • Host: ftp.domainanda.com
    • Username & password FTP
    • Port: 21 (FTP) atau 22 (SFTP jika tersedia)
  3. Extract zip di komputer dulu
  4. Upload semua isi folder extract ke /starcustom/ di server
  5. Jangan upload folder zip saja — harus isi di dalamnya

2 Set PHP 8.2 atau 8.3

  1. cPanel → Select PHP Version atau MultiPHP Manager
  2. Pilih domain/subdomain yang dipakai
  3. Pilih versi PHP 8.2 atau 8.3
  4. Di tab Extensions, pastikan aktif: openssl pdo pdo_sqlite pdo_mysql mbstring tokenizer xml json bcmath fileinfo curl
  5. Klik Save
Halaman blank putih? Hampir pasti PHP versi lama. Upgrade ke 8.2+.

3 Arahkan domain ke folder public PALING PENTING

⚠️ Error 403/500 paling sering karena langkah ini salah! Domain harus mengarah ke folder 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)

  1. cPanel → DomainsCreate Subdomain atau klik domain → Manage
  2. Untuk subdomain toko.domain.com atau domain utama
  3. Field Document Root isi:
    /home/username/starcustom/public
    Ganti username dengan username cPanel Anda
  4. 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.

  1. cPanel → MySQL Databases
  2. Create New Database: misal username_starcustom
  3. MySQL Users → Create User: buat username + password kuat
  4. Add User To Database → pilih user & database → centang ALL PRIVILEGES
  5. Catat data berikut untuk wizard:
Field wizardIsi (contoh cPanel)
Hostlocalhost
Port3306
Databaseusername_starcustom
Usernameusername_dbuser
Passwordpassword yang Anda buat

5 Set permission folder (jika error 500)

Via File Manager

  1. Klik kanan folder storageChange Permissions775
  2. Ulangi untuk bootstrap/cache775
  3. Folder database775

Via Terminal cPanel (jika ada)

cd ~/starcustom
bash scripts/set-permissions.sh

6 Aktifkan SSL / HTTPS

  1. cPanel → SSL/TLS Status atau Let's Encrypt SSL
  2. Pilih domain → Issue / Install certificate (gratis)
  3. cPanel → Domains → aktifkan Force HTTPS Redirect
  4. Di wizard instalasi, pastikan APP_URL pakai https://
Tripay wajib HTTPS untuk callback pembayaran online.

7 Cron job di cPanel

Wajib untuk pengingat pembayaran otomatis (email/WA).

  1. cPanel → Cron Jobs
  2. Common Settings: Once Per Minute (* * * * *)
  3. 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):

  1. Upload project ke /home/username/starcustom/ (di luar public_html)
  2. Buka file install/cpanel-public_html-index.php.example di paket zip
  3. Edit baris $laravelRoot:
$laravelRoot = '/home/username/starcustom';  // ganti path Anda
  1. Copy isi file tersebut ke /home/username/public_html/index.php (ganti index.php default)
  2. Buka https://domain.com/install

🖥 Instalasi di VPS / Cloud Server Ubuntu

DigitalOcean · Vultr · Contabo · AWS Lightsave · Niagahoster VPS · Tencent Cloud · dll.

Ringkasan VPS: Install stack → upload zip → Nginx config → SSL → buka /install → cron.

1 Upload file ke VPS

A. Via SFTP (FileZilla / WinSCP) — disarankan pemula

  1. Buka FileZilla → Protocol: SFTP
  2. Host: IP VPS · User: root atau ubuntu · Port: 22
  3. Di server, buat folder: /var/www/namadomain.com
  4. Upload starcustomeprinting-full.zip
  5. 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

URLFungsi
https://domain.com/Homepage toko
https://domain.com/loginLogin pelanggan & admin
https://domain.com/adminPanel admin

Checklist setelah login admin

  1. Ganti password admin segera
  2. Admin → Pengaturan → Toko & Kontak — nama, WA, email
  3. Admin → Pengaturan → Pembayaran — rekening bank + Tripay
  4. Admin → Ongkir & ekspedisi — RajaOngkir (opsional)
  5. Admin → Pengaturan → Notifikasi — email & WhatsApp
  6. Pastikan cron job sudah aktif
  7. Tes checkout end-to-end (produk → keranjang → bayar)

💳 Konfigurasi Tripay Payment Gateway

  1. Daftar merchant di tripay.co.id
  2. Ambil API Key, Private Key, Merchant Code (sandbox untuk testing)
  3. Aktifkan channel: QRIS, VA, Indomaret, dll. di dashboard Tripay
  4. Admin → Pengaturan → Pembayaran → aktifkan Tripay, isi credential
  5. Set Callback URL di dashboard Tripay:
https://domain-anda.com/callback/tripay
HTTPS wajib. Tripay tidak menerima callback HTTP biasa.

🔧 Troubleshooting

GejalaPenyebabSolusi
403 ForbiddenDocument root salahArahkan ke folder public/ atau pakai alternatif public_html
500 Internal Server ErrorPermission storagechmod 775 storage & bootstrap/cache
Halaman blank putihPHP < 8.2Upgrade PHP di cPanel / VPS
/install 404Route cache lamaHapus semua .php di bootstrap/cache/
.env tidak writablePermission rootBuat file .env kosong (copy .env.example), chmod 664
MySQL gagalDB/user salahCek ALL PRIVILEGES, host=localhost, prefix cPanel
SQLite gagalFolder databasechmod 775 folder database/
Sudah terinstalFlag installed adaHapus storage/app/installed + .env → /install lagi
Tripay tidak updateCallback/SSLPastikan HTTPS + URL callback exact
CSS anehCDN diblokirHosting harus bisa akses cdn.tailwindcss.com

Cek log error

Download & buka file storage/logs/laravel.log via File Manager / SFTP.

Reinstall dari awal

  1. Hapus storage/app/installed
  2. Hapus atau rename .env
  3. (Opsional) Hapus database/database.sqlite
  4. Buka /install lagi