Lewati ke konten
RazinSaid

Setup VPS Ubuntu dari Nol: User, SSH Key, Database, nginx & PHP

RS
Razin Said
4 menit baca

Baru sewa VPS terus bengong nggak tahu mau diapain? Santai, wajar kok. Di sini kita bakal ambil VPS Ubuntu yang masih polos dan nyiapin dari nol sampai siap dipakai buat development atau produksi — pelan-pelan, dengan perintah yang tinggal kamu copy.

Semua contoh di sini pakai Ubuntu (22.04/24.04). Login pertama kali biasanya masuk sebagai root lewat SSH.

1. Bikin user baru

Kerja sehari-hari sebagai root itu bahaya, jadi mending hindari. Bikin dulu user biasa:

adduser newuser

Isi password pas diminta. Nah, user inilah yang bakal kita pakai buat kerja sehari-hari.

2. Masukin user ke grup sudo

Biar user tadi bisa jalanin perintah admin (pakai sudo):

usermod -aG sudo newuser

3. Login SSH tanpa password (SSH key ed25519)

Login pakai SSH key itu jauh lebih aman daripada password — bonusnya, kamu nggak perlu ngetik password tiap mau masuk.

Di komputer lokalmu

Bikin dulu pasangan kunci (kalau belum punya):

ssh-keygen -t ed25519 -C "newuser key"

Terus salin kunci publiknya ke VPS:

ssh-copy-id -i ~/.ssh/id_ed25519.pub newuser@IP_VPS_KAMU

Cara manual (di VPS)

Kalau ssh-copy-id nggak ada, kamu bisa lakuin manual:

mkdir -p /home/newuser/.ssh
nano /home/newuser/.ssh/authorized_keys

Tempel isi kunci publikmu, simpan, lalu set izinnya yang bener:

chmod 700 /home/newuser/.ssh
chmod 600 /home/newuser/.ssh/authorized_keys
chown -R newuser:newuser /home/newuser/.ssh

💡 Begitu SSH key udah jalan, sangat disarankan matiin login password di /etc/ssh/sshd_config (PasswordAuthentication no) biar bot nggak bisa brute-force.

4. Sudo tanpa password (opsional)

Biar nggak ditanyain password tiap kali sudo:

sudo visudo

Tambahin baris ini:

newuser ALL=(ALL) NOPASSWD:ALL

⚠️ Ini ngilangin lapisan password buat sudo. Aman cuma kalau SSH key-mu bener-bener kejaga. Buat server yang penting, mending tetap pakai password sudo.

5. Install & setup MySQL

sudo apt update
sudo apt install -y mysql-server

Sekarang bikin user database. Pakai password yang kuat, dan kasih akses cuma ke database yang emang dibutuhin (least privilege) — jangan ke semua-semua:

sudo mysql -e "CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'PASSWORD_KUAT_DI_SINI';"
sudo mysql -e "CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mysql -e "GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';"
sudo mysql -e "FLUSH PRIVILEGES;"

🔒 Jangan pakai password yang gampang ketebak (kayak secure atau 123456). Generate yang acak aja, misalnya openssl rand -hex 16.

6. Install & setup PostgreSQL (opsional)

Kalau kamu butuh PostgreSQL:

sudo apt install -y postgresql postgresql-contrib
sudo -u postgres psql -c "CREATE USER appuser WITH PASSWORD 'PASSWORD_KUAT_DI_SINI';"
sudo -u postgres psql -c "CREATE DATABASE appdb OWNER appuser;"

Jangan kasih SUPERUSER kalau nggak bener-bener perlu — cukup jadiin dia owner database-nya aja.

7. Install nginx

sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

Coba buka IP VPS di browser — harusnya muncul halaman default nginx.

8. Install PHP terbaru

Buat dapetin versi PHP paling baru, pakai PPA-nya Ondřej:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y php php-fpm php-cli php-mysql php-pgsql php-curl php-xml php-mbstring php-zip

9. Install Node.js lewat NVM

Enaknya pakai NVM, gonta-ganti versi Node jadi gampang:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

Terus install Node-nya (misalnya versi LTS):

nvm install --lts
node -v

10. Ganti password user

Kalau mau ganti password user lain (butuh sudo):

sudo passwd username

Kalau ganti password sendiri:

passwd

11. Lihat semua user

Buat nampilin semua akun di sistem:

cut -d: -f1 /etc/passwd

Sedangkan buat lihat siapa aja yang lagi login sekarang:

who

12. Hapus user

Hapus user-nya doang:

sudo deluser username

Hapus user sekalian sama folder home-nya:

sudo deluser --remove-home username

Penutup

Nah, VPS-mu sekarang udah punya fondasi yang lengkap: user yang aman, login SSH key, database, web server, PHP, sampai Node. Tinggal deploy aplikasimu deh.

Buat keamanan lanjutan, ada beberapa hal yang sangat kusaranin: aktifin firewall (UFW), pasang fail2ban, dan matiin login password SSH. Tapi itu kita bahas di tutorial berikutnya. 🔐

💡 Simpen baik-baik perintah-perintah di atas — bakal sering kamu pakai tiap nyiapin server baru.

Langkah selanjutnya

VPS-mu udah siap pakai. Sekarang giliran ngamanin dan ngoptimalin:

Bagikan: XWhatsAppFacebookLinkedIn

Artikel terkait