Generate scaffold project layout for Go.

scaffold

Build Status codecov Go Report Card GoDoc

Scaffold generates starter Go project layout. Let you can focus on buesiness logic implemeted.

asciicast

The following is Go project layout scaffold generated:

├── Dockerfile
├── Makefile
├── README.md
├── cmd
│   └── main.go
├── config
│   ├── config.go
│   ├── config.yml
│   ├── database.go
│   ├── http.go
│   └── release.go
├── docker-compose.yml
├── model
│   └── model.go
└── web
    ├── routes.go
    ├── server.go
    └── version.go

Installation

Download scaffold by using:

$ go get -u github.com/catchplay/scaffold

Create a new project

  1. Going to your new project folder:
# change to project directory
$ cd $GOPATH/src/path/to/project
  1. Run scaffold init in the new project folder:
$ scaffold init
  1. That will generate a whole new starter project files like:
Create Dockerfile
Create README.md
Create cmd/main.go
Create config/config.go
Create config/database.go
Create config/http.go
Create config/release.go
Create docker-compose.yml
Create model/model.go
Create web/routes.go
Create web/server.go
Create web/version.go
Create Makefile
Create config/config.yml
Success Created. Please excute `make up` to start service.

  1. And you can run the new project by using:
$ make run 
Similar Resources

Go Todo Backend example using modular project layout for product microservice.

go-todo-backend Go Todo Backend Example Using Modular Project Layout for Product Microservice. It's suitable as starting point for a medium to larger

Dec 29, 2022

Standard Go Project Layout

Standard Go Project Layout Translations: 한국어 문서 简体中文 正體中文 简体中文 - ??? Français 日本語 Español Overview This is a basic layout for Go application projects.

Jan 5, 2023

Standard Go Project Layout

Standard Go Project Layout Translations: 한국어 문서 简体中文 正體中文 简体中文 - ??? Français 日本語 Portuguese Español Overview This is a basic layout for Go applicatio

Jan 2, 2023

Standard Go Project Layout

Standard Go Project Layout

This is a basic layout for Go application projects. It's not an official standard defined by the core Go dev team; however, it is a set of common historical and emerging project layout patterns in the Go ecosystem. Some of these patterns are more popular than others. It also has a number of small enhancements along with several supporting directories common to any large enough real world application.

Jan 3, 2023

go:embed and the golang-standards project layout

An example of using the golang-standards project layout and the go:embed directive.

May 17, 2022

A practical Golang project layout

Golayout Golayout is a boilerplate project that containing the usage of the best practice and popular components. The code organization follows the st

Jul 12, 2022

🔑A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout (LSM+WAL) similar to Riak.

bitcask A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout

Sep 26, 2022

Kratos Service Layout

Kratos Layout Install Kratos

Jan 1, 2023

Go structure annotations that supports encoding and decoding; similar to C-style bitfields. Supports bitfield packing, self-describing layout parameters, and alignment.

Go structure annotations that supports encoding and decoding; similar to C-style bitfields. Supports bitfield packing, self-describing layout parameters, and alignment.

STRUCTure EXtensions structex provides annotation rules that extend Go structures for implementation of encoding and decoding of byte backed data fram

Oct 13, 2022

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path

Grab is a tool that downloads source code repositories into a convenient directory layout created from the repo's URL's domain and path. It supports Git, Mercurial (hg), Subversion, and Bazaar repositories.

Jun 2, 2022

This is an example of a keep-it-simple directory layout for Go projects that was created using DDD principles, please copy and share if you like it.

DDD Go Template This project was created to illustrate a great architectural structure I developed together with @fabiorodrigues in the period I was w

Dec 5, 2022

🔮 Graph Layout Algorithms in Go

Graph Layout Algorithms in Go This module provides algorithms for graph visualization in native Go. As of 2021-11-20, virtually all graph visualizatio

Dec 4, 2022

Memory-Alignment: a tool to help analyze layout of fields in struct in memory

Memory-Alignment: a tool to help analyze layout of fields in struct in memory

Memory Alignment Memory-Alignment is a tool to help analyze layout of fields in struct in memory. Usage go get github.com/vearne/mem-aligin Example p

Oct 26, 2022

Helps you enforce a layout per workspace

i3-layout-per-workspace This tool will allow you to force a layout on a workspac

Feb 16, 2022

✨ Generate unique IDs (Port of Node package "generate-snowflake" to Golang)

✨ Generate Snowflake Generate unique IDs. Inspired by Twitter's Snowflake system. 📦 Installation Initialize your project (go mod init example.com/exa

Feb 11, 2022

Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀

Generate a modern Web project with Go and Angular, React or Vue in seconds 🚀

Goxygen Generate a Web project with Go and Angular, React or Vue. Goxygen aims at saving your time while setting up a new project. It creates a skelet

Jan 5, 2023

Show Languages In Code. A fast and lightweight CLI to generate stats on the languages inside your project

Show Languages In Code. A fast and lightweight CLI to generate stats on the languages inside your project

slic Show Languages In Code. Usage Run it with an -h flag to list all commands. -d flag can be used to specify the directory of search -i flag can be

Dec 25, 2021

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 8, 2023

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

The Moby Project Moby is an open-source project created by Docker to enable and accelerate software containerization. It provides a "Lego set" of tool

Jan 2, 2023
Comments
  • is not support for go mod

    is not support for go mod

    run:

     ../scaffold/scaffold/scaffold init
    ````
    
    will see: 
    ````
    panic: cannot find $GOPATH environment variable
    
    goroutine 1 [running]:
    github.com/catchplay/scaffold/scaffold.init.0()
    	/Users/zhihu/private_project/scaffold/scaffold/scaffold.go:21 +0x99
    ````
    
    except: 
    ````
    can generate code in any path
    ````
  • panic: runtime error: invalid memory address or nil pointer dereference

    panic: runtime error: invalid memory address or nil pointer dereference

    [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x113e0c5]

    goroutine 1 [running]: github.com/catchplay/scaffold/scaffold.(*scaffold).genFormStaticFle.func1(0xc0000aa580, 0x3b, 0x0, 0x0, 0x12328d8, 0xc0000988a0, 0x0, 0x0)

Go Todo Backend example using modular project layout for product microservice.

go-todo-backend Go Todo Backend Example Using Modular Project Layout for Product Microservice. It's suitable as starting point for a medium to larger

Dec 29, 2022
Standard Go Project Layout

Standard Go Project Layout Translations: 한국어 문서 简体中文 正體中文 简体中文 - ??? Français 日本語 Español Overview This is a basic layout for Go application projects.

Jan 5, 2023
go:embed and the golang-standards project layout

An example of using the golang-standards project layout and the go:embed directive.

May 17, 2022
A go project generator, which aims to simplify building and releasing go projects by storing all project configuration in a single file called gojen.json, and creates appropriate workflow/git files using that config.

gojen Define your go project's configuration using a json config. This config can be used to generate a new go project for you, and can also create co

Mar 8, 2022
Go-web-scaffold - A simple scaffold for building web app quickly

Go-web-scaffold A simple scaffold for building web app quickly. features This sc

Jan 21, 2022
A scaffold to quickly create a go project

OpenMix 出品:https://openmix.org Mix CLI 一个快速创建 go 项目的脚手架 A scaffold to quickly create a go project Installation 安装 go get -u github.com/mix-go/mixcli

Nov 16, 2022
A template repository to quickly scaffold a Kubewarden policy written with Go language

go-policy-template This is a template repository that can be used to to quickly scaffold a Kubewarden policy written with Go language. Don't forget to

Sep 7, 2022
Scaffold to help building Terraform Providers using AWS IAM authentication.

Terraform Provider Scaffolding This repository is a template for a Terraform provider. It is intended as a starting point for creating Terraform provi

Mar 31, 2022
Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies.
Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies.

Sensible and fast command-line flag parsing with excellent support for subcommands and positional values. Flags can be at any position. Flaggy has no

Jan 1, 2023
Go Project Sample Layout

go-sample A sample layout for Go application projects with the real code. Where it all comes from? Ideas used to create the architecture and structure

Dec 26, 2022