Sobre el proyecto

Create Go App CLI (cgapp) es una herramienta de línea de comandos para generar nuevos proyectos que combinan un backend en Go, un frontend en JavaScript o TypeScript y automatización de despliegue. Su objetivo es permitir que los desarrolladores se centren en el código de la aplicación y la lógica de negocio al encargarse del andamiaje del proyecto y la configuración del despliegue. Las opciones de instalación incluyen: - go install github.com/create-go-app/cli/v4/cmd/cgapp@latest (requiere Go 1.21 o superior) - Homebrew (brew tap create-go-app/tap; brew install create-go-app/tap/cgapp) - Paquetes precompilados deb, rpm, apk o Arch Linux desde la página de lanzamientos - Una imagen de Docker para uso aislado (el comando deploy no está disponible en esa imagen) Comandos principales: - cgapp create [OPTION]: crea un nuevo proyecto a través de una interfaz de consola interactiva. La opción -t permite plantillas personalizadas de backend y frontend. - cgapp deploy [OPTION]: despliega contenedores Docker en un servidor remoto a través de Ansible. Requiere Python 3.8+ y Ansible 2.9+ en la máquina local. La opción -k solicita la contraseña de sudo del usuario remoto. Plantillas de backend: - net/http: API REST simple con CRUD y autenticación JWT - Fiber: API REST compleja con CRUD, autenticación JWT con renovación de token, DB y caché - go-chi: aplicación básica con comprobación de estado (health check) Plantillas de frontend: El frontend se genera con Vite.js, por lo que puede utilizar versiones actuales de React, Preact, Vue, Svelte, Solid, Lit, Qwik o JavaScript/TypeScript puro. Next.js y Nuxt se generan con create-next-app y nuxi. Se enumeran variantes de JavaScript y TypeScript para la mayoría de las opciones, incluyendo react, react-swc, preact, vue, svelte, solid, lit, qwik, vanilla, next, nuxt y sveltekit. Se requiere npm versión 7 o superior para la generación del frontend. Roles de Ansible preconfigurados: - Servidor Web/proxy: Traefik (traefik, traefik-acme-dns) y Nginx (nginx). Se recomienda Traefik desde la v2.0.0 para certificados SSL automáticos de Let's Encrypt y una interfaz web. - Base de datos: PostgreSQL (postgres) con migraciones de backend aplicadas. - Caché: Redis (redis) para uso del backend. La documentación del proyecto, FAQ, discusiones y problemas están disponibles a través de la wiki y el repositorio de GitHub. El proyecto tiene licencia Apache 2.0.