Prerequisites
Sebelum memulai development, pastikan tools berikut sudah terinstall di sistem Anda.
1. Go (Backend)
# Via Homebrew
brew install [email protected]
# Verifikasi
go version # harus >= 1.22
Minimum Version : Go 1.22 atau lebih baru
2. Flutter (Frontend)
# 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
# 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
Recommended IDEs
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 PATHexport PATH = $PATH :/ usr / local / go / bin
source ~/.bashrc # atau ~/.zshrc
Flutter doctor menunjukkan error
Docker: permission denied
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!