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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.