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 start
If 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.
🔔 Make sure that you have Python 3.8+ and
Ansible 2.9+ installed on your computer.
| Option |
Description |
Type |
Default |
Required? |
-k |
Prompt you to provide the remote user sudo password (a standard Ansible --ask-become-pass option). |
bool |
false |
No |

📝 Production-ready project templates
- Backend template with Golang built-in net/http package:
net/http — simple REST API with CRUD
and JWT auth.
- Backend template with Fiber:
fiber — complex REST API with CRUD, JWT auth
with renew token, DB and cache.
- Backend template with go-chi:
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 app |
vanilla |
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.
| Name |
Description |
JavaScript |
Typescript |
| Next.js |
A common Next.js app |
next |
next-ts |
| Nuxt |
A common Nuxt v3 app |
- |
nuxt |
| Sveltekit |
A common Sveltekit app |
- |
sveltekit |
❗️ Please make sure that you have npm version 7 or higher installed to
create the frontend part of the project correctly. If you run the
cgapp -create command using our Docker image, npm of the
correct version is already included.
🚚 Pre-configured Ansible roles
- Roles for run Docker container with Traefik Proxy:
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.
- Roles for run Docker container with Nginx:
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.
- Roles for run Docker container with PostgreSQL:
postgres — configured PostgreSQL container with apply migrations for
backend.
Cache (key-value storage)
- Roles for run Docker container with Redis:
redis — configured Redis container for backend.
If you want to say thank you or/and support active development of
Create Go App CLI:
- Add a GitHub Star to the project.
- Write interesting articles about project on Dev.to, or
personal blog.
- Leave a review on our ProductHunt page.
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.
- Issues: ask questions and submit your features.
- Pull requests: send your improvements to the current.
Together, we can make this project better every day! 😘
🔥 Other projects from the author

Create 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).