Skip to main content

Prerequisites

Sebelum memulai development, pastikan tools berikut sudah terinstall di sistem Anda.

🔧 Required Tools

1. Go (Backend)

  • macOS
  • Linux
  • Windows
# Via Homebrew
brew install [email protected]

# Verifikasi
go version  # harus >= 1.22
Minimum Version: Go 1.22 atau lebih baru

2. Flutter (Frontend)

  • macOS
  • Linux
  • Windows
# Download Flutter SDK
git clone https://github.com/flutter/flutter.git -b stable

# Add to PATH
export PATH="$PATH:`pwd`/flutter/bin"

# Run flutter doctor
flutter doctor

# Install dependencies
flutter doctor --android-licenses  # untuk Android
xcode-select --install             # untuk iOS
Minimum Version: Flutter 3.22 atau lebih baru

3. Docker & Docker Compose

  • macOS
  • Linux
  • Windows
# Install Docker Desktop
brew install --cask docker

# Start Docker Desktop dari Applications

# Verifikasi
docker --version
docker compose version
Minimum Version: Docker 24+ dan Docker Compose V2

4. Taskfile (Task Runner)

# macOS
brew install go-task/tap/go-task

# Linux
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin

# Windows (via Scoop)
scoop install task

# Verifikasi
task --version
Minimum Version: Task 3.0+

5. Air (Live Reload untuk Go)

go install github.com/cosmtrek/air@latest

# Verifikasi
air -v

6. golangci-lint (Go Linter)

# macOS/Linux
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin

# Verifikasi
golangci-lint --version

7. GoReleaser (Build & Release)

# macOS
brew install goreleaser/tap/goreleaser

# Linux
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list
sudo apt update
sudo apt install goreleaser

# Verifikasi
goreleaser --version

8. Cosign (Container Signing)

# macOS
brew install cosign

# Linux
wget https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64
sudo mv cosign-linux-amd64 /usr/local/bin/cosign
sudo chmod +x /usr/local/bin/cosign

# Verifikasi
cosign version

📦 Database Clients (Optional)

MySQL Client

# macOS
brew install mysql-client

# Linux
sudo apt-get install mysql-client

# Verifikasi
mysql --version

MongoDB Compass (GUI)

Download dari: https://www.mongodb.com/products/compass

Redis CLI

# macOS
brew install redis

# Linux
sudo apt-get install redis-tools

# Verifikasi
redis-cli --version

🎨 IDE & Extensions

VS Code

  • Extensions: Go, Flutter, Docker, GitLens
  • Settings: Format on save, auto import

Cursor / Windsurf

  • AI-powered coding assistant
  • Built-in terminal & git

GoLand

  • JetBrains IDE untuk Go
  • Advanced refactoring

Android Studio

  • Untuk Flutter development
  • Built-in emulator

VS Code Extensions

{
  "recommendations": [
    "golang.go",
    "dart-code.flutter",
    "ms-azuretools.vscode-docker",
    "eamodio.gitlens",
    "esbenp.prettier-vscode",
    "dbaeumer.vscode-eslint",
    "grafana.vscode-jsonnet",
    "redhat.vscode-yaml"
  ]
}

✅ Verification Checklist

Jalankan command berikut untuk memverifikasi semua tools sudah terinstall:
# Go
go version

# Flutter
flutter doctor -v

# Docker
docker --version
docker compose version

# Taskfile
task --version

# Air (optional)
air -v

# golangci-lint (optional)
golangci-lint --version

# GoReleaser (optional)
goreleaser --version
go version go1.22.0 darwin/arm64
Flutter 3.22.0 channel stable
Docker version 24.0.0
Docker Compose version v2.20.0
Task version: v3.30.0
air version: v1.49.0
golangci-lint has version 1.55.0
goreleaser version 1.22.0

🔐 Environment Setup

1. Setup GOPATH & GOBIN

# Add to ~/.bashrc atau ~/.zshrc
export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

2. Setup Flutter PATH

# Add to ~/.bashrc atau ~/.zshrc
export PATH="$PATH:/path/to/flutter/bin"

3. Docker Post-Install (Linux)

# Run docker without sudo
sudo usermod -aG docker $USER
newgrp docker

# Test
docker run hello-world

🚨 Common Issues

Solution: Pastikan Go sudah ditambahkan ke PATH
export PATH=$PATH:/usr/local/go/bin
source ~/.bashrc  # atau ~/.zshrc
Solution: Jalankan command yang disarankan
flutter doctor --android-licenses  # Accept licenses
xcode-select --install            # Install Xcode tools (macOS)
Solution: Add user ke docker group (Linux)
sudo usermod -aG docker $USER
newgrp docker
Solution: Install via package manager atau manual
# macOS
brew install go-task/tap/go-task

# Linux
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d

📚 Next Steps


Pro Tip: Gunakan Docker untuk database development agar tidak perlu install MySQL/MongoDB/Redis secara lokal!