# Configuración ## Fichero config.yml ```yaml server: port: 6789 verifactu: production: false certificates: storage_path: ./data/certs/ crypto: keys_path: ./keys/ name: "VeriFactu API" email: "admin@ejemplo.com" ``` ## Explicación de Parametros ### server.port Puerto TCP donde escucha la API. ### verifactu.production - `false`: Entorno de testing (prewww2.aeat.es) - `true`: Entorno de producción (www2.agenciatributaria.gob.es) ### certificates.storage_path Directorio donde se almacenan los certificados registrados. ### crypto.keys_path Directorio donde se almacenan las claves RSA. ### crypto.name Nombre para generar nuevas claves RSA (si no existen). ### crypto.email Email para generar nuevas claves RSA. ## Variables de Entorno ```bash # Sobrescribir configuración VERIFACTU_PORT=8080 VERIFACTU_PRODUCTION=true ``` ## Estructura de Directorios ``` proyecto/ ├── api/ ├── internal/ ├── verifactu/ ├── documentacion/ ├── test/ ├── data/ │ └── certs/ # Certificados registrados ├── keys/ # Claves RSA ├── config.yml # Configuración ├── validate_cert.ps1 # Script de validación └── main.go ``` ## Primera Ejecución 1. Compilar: `go build -o verifactu-api.exe ./main.go` 2. Ejecutar: `./verifactu-api.exe` 3. La API genera claves RSA automaticamente 4. Crea estructura de directorios ## Cambio de Entorno Para cambiar de test a producción: 1. Editar `config.yml`: ```yaml verifactu: production: true ``` 2. Reiniciar la API ## Puertos - 6789: Puerto por defecto - 443: HTTPS producción - 80: HTTP (no recomendado)