---
name: wg_client_config
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type WGClientConfigInput struct {
      DevicePrivateKey string
      DeviceAddress    string
      HubPublicKey     string
      HubEndpoint      string
      HubAllowedIPs    string
      PresharedKey     string
      PersistentKA     int
      DNS              string
  }
  type WGClientConfig struct {
      INI      string
      QR       string
      Filename string
  }
description: "Par de tipos producto para generar wg0.conf del peer cliente: WGClientConfigInput reune todos los parametros de configuracion del device, WGClientConfig devuelve el .conf listo para instalar, el QR unicode y el filename sugerido."
tags: [wireguard, client, config, qr, mesh, vpn]
uses_types: []
file_path: "functions/infra/wg_client_config_types.go"
---

## Notas

`WGClientConfigInput.PersistentKA` con valor 0 se interpreta como "usar default 25s". Valor 25 es el recomendado para peers detras de NAT carrier-grade (movil/4G).

`WGClientConfigInput.PresharedKey` vacio omite la linea PSK del .conf. Si se usa, debe coincidir exactamente con el valor configurado en el hub para este peer.

`WGClientConfig.QR` usa bloques unicode (skip2/go-qrcode ToString) — visible en terminal y en mensajes Element. Para display en pantallas pequenas, considerar `ToSmallString`.
