diff --git a/README.md b/README.md index e69de29..243349c 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,92 @@ +# Deploy Terraform - Naliia Web + +Infraestructura como código para desplegar recursos en Hetzner Cloud. + +## Tecnología Utilizada + +- **Terraform**: >= 0.13 +- **Provider**: hcloud (Hetzner Cloud) +- **Recursos**: SSH Key, Server, Volume + +## Estructura del Proyecto + +``` +Deploy/ +├── terraform/ +│ ├── hcloud.tf # Definición de recursos +│ ├── variables.tf # Variables disponibles +│ ├── config.auto.tfvars # Configuración (contiene secrets) +│ ├── .terraform/ # Proveedores descargados +│ └── .terraform.lock.hcl # Lock de proveedores +├── config.auto.tfvars.example # Template de configuración +├── .gitignore +└── README.md +``` + +## Variables a Actualizar + +| Variable | Descripción | Valor por defecto | +|----------|-------------|-------------------| +| `hcloud_token` | Token API de Hetzner | (requerido) | +| `hcloud_ssh_key_name` | Nombre de la clave SSH | default-ssh-key | +| `hcloud_ssh_key_file_path` | Ruta a clave pública | ~/.ssh/id_rsa.pub | +| `hcloud_server_name` | Nombre del servidor | app | +| `hcloud_server_image` | Imagen del SO | ubuntu-24.04 | +| `hcloud_server_type` | Tipo de instancia | cx23 | +| `hcloud_volume_name` | Nombre del volumen | web_volume | +| `hcloud_volume_size` | Tamaño en GB | 10 | + +## Comandos Terraform + +```bash +# Inicializar el directorio de trabajo +terraform init + +# Mostrar el plan de cambios +terraform plan + +# Aplicar los cambios definidos +terraform apply + +# Mostrar el estado actual de los recursos +terraform show + +# Destruir todos los recursos creados +terraform destroy + +# Formatear los archivos de configuración +terraform fmt + +# Validar la configuración +terraform validate +``` + +## Requisitos Previos + +1. Terraform instalado (>= 0.13) +2. Cuenta en [Hetzner Cloud](https://console.hetzner.cloud) +3. Token API generado en Hetzner Robot > Access > API Tokens +4. Clave SSH pública generada (`~/.ssh/id_rsa.pub`) + +## Configuración Inicial + +1. Copiar el archivo de ejemplo de configuración: + +```bash +cp config.auto.tfvars.example terraform/config.auto.tfvars +``` + +2. Editar `terraform/config.auto.tfvars` con los valores deseados + +3. Inicializar Terraform: + +```bash +cd terraform +terraform init +``` + +4. Aplicar la configuración: + +```bash +terraform apply +``` \ No newline at end of file