Create a new production-ready project with backend (Golang), frontend (JavaScript, TypeScript)
and deploy automation (Ansible, Docker) by running one CLI command.
Focus on writing code and thinking of business-logic! The CLI will take care of the rest.
First of all, download and install Go. Version 1.16 or higher is required.
Installation is done by using the go install command and rename installed binary in $GOPATH/bin:
go install github.com/create-go-app/cli/v2/cmd/cgappLet's create a new project via interactive console UI (or CUI for short) in current folder:
cgapp createNext, 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:
cgapp deployThat's all you need to know to 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
deploycommand 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.
cgapp create [OPTION]| Option | Description | Type | Default | Required? |
|---|---|---|---|---|
-t |
Enables to define custom backend and frontend templates. | bool |
false |
No |
- πΊ Full demo video: https://recordit.co/OQAwkZBrjN
- π Docs: https://github.com/create-go-app/cli/wiki/Command-create
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.
cgapp deploy [OPTION]| 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 |
- πΊ Full demo video: https://recordit.co/ishTf0Au1x
- π Docs: https://github.com/create-go-app/cli/wiki/Command-deploy
- 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.
- Pure JavaScript frontend template:
vanillaβ generated template with pure JavaScript app.vanilla-tsβ generated template with pure TypeScript app.
- Frontend template with React:
reactβ generated template with a common React app.react-tsβ generated template with a TypeScript version of the React app.
- Frontend template with Preact:
preactβ generated template with a common Preact app.preact-tsβ generated template with a TypeScript version of the Preact app.
- Frontend template with Vue.js:
vueβ generated template with a common Vue.js app.vue-tsβ generated template with a TypeScript version of the Vue.js app.
- Frontend template with Svelte:
svelteβ generated template with a common Svelte app.svelte-tsβ generated template with a TypeScript version of the Svelte app.
- Frontend template with Lit web components:
lit-elementβ generated template with a common Lit app.lit-element-tsβ generated template a TypeScript version of the Lit app.
βοΈ Frontend part will be generate using awesome tool Vite.js under the hood. So, you'll always get the latest version of
React,Preact,Vue,Svelte,Litor pure JavaScript/TypeScript templates for your project!
- 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 recommend 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.
- 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.
- Tweet about project on your Twitter.
- Write interesting articles about project on Dev.to, Medium or personal blog.
- Join DigitalOcean at our referral link (your profit is $100 and we get $25).
Together, we can make this project better every day! π
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).


