Об этом проекте
Create Go App CLI (cgapp) — это инструмент командной строки для генерации новых проектов, объединяющих бэкенд на Go, фронтенд на JavaScript или TypeScript и автоматизацию развертывания. Он позволяет разработчикам сосредоточиться на коде приложения и бизнес-логике, беря на себя создание структуры проекта и настройку деплоя.
Варианты установки:
- go install github.com/create-go-app/cli/v4/cmd/cgapp@latest (требуется Go 1.21 или выше)
- Homebrew (brew tap create-go-app/tap; brew install create-go-app/tap/cgapp)
- Готовые пакеты deb, rpm, apk или Arch Linux со страницы релизов
- Docker-образ для изолированного использования (команда deploy в этом образе недоступна)
Основные команды:
- cgapp create [OPTION]: создает новый проект через интерактивный консольный интерфейс. Опция -t позволяет использовать пользовательские шаблоны бэкенда и фронтенда.
- cgapp deploy [OPTION]: развертывает Docker-контейнеры на удаленном сервере через Ansible. Требует наличия Python 3.8+ и Ansible 2.9+ на локальной машине. Опция -k запрашивает пароль sudo удаленного пользователя.
Шаблоны бэкенда:
- net/http: простой REST API с CRUD и JWT-авторизацией
- Fiber: сложный REST API с CRUD, JWT-авторизацией с обновлением токена, БД и кэшем
- go-chi: базовое приложение с проверкой состояния (health check)
Шаблоны фронтенда:
Фронтенд генерируется с помощью Vite.js, поэтому могут использоваться актуальные версии React, Preact, Vue, Svelte, Solid, Lit, Qwik или чистый JavaScript/TypeScript. Next.js и Nuxt генерируются с помощью create-next-app и nuxi. Для большинства опций доступны варианты на JavaScript и TypeScript, включая react, react-swc, preact, vue, svelte, solid, lit, qwik, vanilla, next, nuxt и sveltekit. Для генерации фронтенда требуется npm версии 7 или выше.
Преднастроенные роли Ansible:
- Веб/прокси-сервер: Traefik (traefik, traefik-acme-dns) и Nginx (nginx). Traefik рекомендуется начиная с версии v2.0.0 для автоматического получения SSL-сертификатов от Let's Encrypt и наличия веб-интерфейса.
- База данных: PostgreSQL (postgres) с применением миграций бэкенда.
- Кэш: Redis (redis) для использования бэкендом.
Документация проекта, FAQ, обсуждения и ошибки доступны через wiki и репозиторий GitHub. Проект распространяется под лицензией Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.