- GCE e2-small with Ubuntu 24.04 + Docker - Static IP, firewall rules, SSD boot disk - Startup script: installs Docker, clones repo, creates .env, starts compose - Outputs: IP, SSH command, API URL, bootstrap command, CLI setup - ~7$/month for always-on server
78 lines
1.5 KiB
HCL
78 lines
1.5 KiB
HCL
variable "project_id" {
|
|
description = "GCP project ID"
|
|
type = string
|
|
}
|
|
|
|
variable "region" {
|
|
description = "GCP region"
|
|
type = string
|
|
default = "europe-west1"
|
|
}
|
|
|
|
variable "zone" {
|
|
description = "GCP zone"
|
|
type = string
|
|
default = "europe-west1-b"
|
|
}
|
|
|
|
variable "machine_type" {
|
|
description = "VM machine type"
|
|
type = string
|
|
default = "e2-small"
|
|
}
|
|
|
|
variable "disk_size_gb" {
|
|
description = "Boot disk size in GB"
|
|
type = number
|
|
default = 30
|
|
}
|
|
|
|
variable "instance_name" {
|
|
description = "Name for the VM instance"
|
|
type = string
|
|
default = "data-analyst"
|
|
}
|
|
|
|
variable "ssh_user" {
|
|
description = "SSH username"
|
|
type = string
|
|
default = "deploy"
|
|
}
|
|
|
|
variable "ssh_public_key_path" {
|
|
description = "Path to SSH public key file"
|
|
type = string
|
|
default = "~/.ssh/id_ed25519.pub"
|
|
}
|
|
|
|
# App config
|
|
variable "jwt_secret" {
|
|
description = "JWT secret key (min 32 chars)"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "keboola_token" {
|
|
description = "Keboola Storage API token"
|
|
type = string
|
|
sensitive = true
|
|
default = ""
|
|
}
|
|
|
|
variable "keboola_stack_url" {
|
|
description = "Keboola Stack URL"
|
|
type = string
|
|
default = "https://connection.keboola.com"
|
|
}
|
|
|
|
variable "keboola_project_id" {
|
|
description = "Keboola project ID"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "domain" {
|
|
description = "Domain name for SSL (optional, empty = IP only)"
|
|
type = string
|
|
default = ""
|
|
}
|