Create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript) and deploy automation (Ansible, Docker) by running only one command. Focus on writing your code and thinking of the business-logic! The CLI will take care of the rest.
First, download and install Go. Version 1.21
or higher is required.
π You can also use Create Go App CLI via other Go versions:
1.16
,1.17
.
Installation is done by using the go install
command:
go install github.com/create-go-app/cli/v4/cmd/cgapp@latest
Or see the repository's Release page, if you want to download a ready-made deb
, rpm
, apk
or Arch Linux
package.
Also, GNU/Linux and macOS users available way to install via Homebrew:
# Tap a new formula: brew tap create-go-app/tap # Installation: brew install create-go-app/tap/cgapp
Let's create a new project via interactive console UI (or CUI for short) in current folder:
Next, open the generated Ansible inventory file (called hosts.ini
) and fill in the variables according to your server configuration. And you're ready to automatically deploy this project:
That's all you need to know to start! π
π³ Docker-way to quick startIf you don't want to install Create Go App CLI to your system, you feel free to using our official Docker image and run CLI from isolated container:
docker run --rm -it -v ${PWD}:${PWD} -w ${PWD} koddr/cgapp:latest [COMMAND]
π Please note: the
deploy
command is currently unavailable in this image.
The best way to better explore all the features of the Create Go App CLI is to read the project Wiki and take part in Discussions and/or Issues.
Yes, the most frequently asked questions (FAQ) are also here.
CLI command for create a new project with the interactive console UI.
Option Description Type Default Required?-t
Enables to define custom backend and frontend templates. bool
false
No
CLI command for deploy Docker containers with your project via Ansible to the remote server.
Option Description Type Default Required?π Make sure that you have Python 3.8+ and Ansible 2.9+ installed on your computer.
-k
Prompt you to provide the remote user sudo password (a standard Ansible --ask-become-pass
option). bool
false
No
net/http
β simple REST API with CRUD and JWT auth.fiber
β complex REST API with CRUD, JWT auth with renew token, DB and cache.chi
β a basic application with health check.Frontend part will be generated using awesome tool Vite.js under the hood.
So, you'll always get the latest version of React, Preact, Vue, Svelte, Solid, Lit, Qwik, or pure JavaScript/TypeScript templates for your project.
Name Description JavaScript Typescript Pure A pure JavaScript/Typescript appvanilla
vanilla-ts
React A common React app react
react-ts
React (with SWC) A React app with SWC react-swc
react-swc-ts
Preact A common Preact app preact
preact-ts
Vue.js A common Vue.js app vue
vue-ts
Svelte A common Svelte app svelte
svelte-ts
Solid A common Solid app solid
solid-ts
Lit A common Lit app lit
lit-ts
Qwik A common Qwik app qwik
qwik-ts
The Next.js
and Nuxt
frontend parts will be generated using the latest create-next-app
and nuxi
utilities.
next
next-ts
Nuxt A common Nuxt v3 app - nuxt
Sveltekit A common Sveltekit app - sveltekit
π Pre-configured Ansible rolesβοΈ Please make sure that you have
npm
version7
or higher installed to create the frontend part of the project correctly. If you run thecgapp -create
command using our Docker image,npm
of the correct version is already included.
traefik
β configured Traefik container with a simple ACME challenge via CA server.traefik-acme-dns
β configured Traefik container with a complex ACME challenge via DNS provider.nginx
β pure Nginx container with "the best practice" configuration.βοΈ Since Create Go App CLI
v2.0.0
, we're recommended to use Traefik Proxy as default proxy server for your projects. The main reason: this proxy provides automatic SSL certificates from Let's Encrypt out of the box. Also, Traefik was built on the Docker ecosystem and has a really good-looking and useful Web UI.
postgres
β configured PostgreSQL container with apply migrations for backend.redis
β configured Redis container for backend.If you want to say thank you or/and support active development of Create Go App CLI
:
You can support the author on Boosty, both on a permanent and on a one-time basis.
All proceeds from this way will go to support my OSS projects and will energize me to create new products and articles for the community.
And now, I invite you to participate in this project! Let's work together to create the most useful tool for developers on the web today.
Together, we can make this project better every day! π
π₯ Other projects from the authorCreate Go App CLI
is free and open-source software licensed under the Apache 2.0 License. Official logo was created by Vic ShΓ³stak and distributed under Creative Commons license (CC BY-SA 4.0 International).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4