| @@ -6,7 +6,7 @@ Clone the repository, keep what you need and delete everything else! | |||
| ## Go Directories | |||
| * `/cmd` | |||
| ### `/cmd` | |||
| Main applications for this project. | |||
| @@ -16,19 +16,19 @@ Don't put a lot of code in the application directory unless you think that code | |||
| It's common to have a small main function that imports and invokes the code from the `/internal` and `/pkg` directories. | |||
| * `/internal` | |||
| ### `/internal` | |||
| Private application and library code. | |||
| Put your actual application code in the `/internal/app` directory (e.g., `/internal/app/myapp`) and the code shared by those apps in the `/internal/pkg` directory (e.g., `/internal/pkg/myprivlib`). | |||
| * `/pkg` | |||
| ### `/pkg` | |||
| Library code that's safe to use by external applications (e.g., `/pkg/mypubliclib`). | |||
| Other projects will import these libraries expecting them to work, so think twice before you put something here :-) | |||
| * `/vendor` | |||
| ### `/vendor` | |||
| Application dependencies (managed manually or by your favorite dependency management tool). | |||
| @@ -36,35 +36,35 @@ Don't commit your application dependencies if you are building a library. | |||
| ## Service Application Directories | |||
| * `/api` | |||
| ### `/api` | |||
| OpenAPI/Swagger specs, JSON schema files, protocol definition files. | |||
| ## Web Application Directories | |||
| * `/web` | |||
| ### `/web` | |||
| Web application specific components: static web assets, server side templates and SPAs. | |||
| ## Common Application Directories | |||
| * `/configs` | |||
| ### `/configs` | |||
| Configuration file templates or default configs. | |||
| Put your `confd` or `consule-template` template files here. | |||
| * `/init` | |||
| ### `/init` | |||
| System init (systemd, upstart, sysv) and process manager/supervisor (runit, supervisord) configs. | |||
| * `/scripts` | |||
| ### `/scripts` | |||
| Scripts to perform various build, install, analysis, etc operations. | |||
| These scripts keep the root level Makefile small and simple. | |||
| * `/build` | |||
| ### `/build` | |||
| Packaging and Continous Integration. | |||
| @@ -72,37 +72,37 @@ Put your cloud (AMI), container (Docker), OS (deb, rpm, pkg) package configurati | |||
| Put your CI (travis, circle, drone) configurations and scripts in the `/build/ci` directory. | |||
| * `/deployments` | |||
| ### `/deployments` | |||
| IaaS, PaaS, system and container orchestration deployment configurations and templates (docker-compose, kubernetes/helm, mesos, terraform, bosh). | |||
| * `/test` | |||
| ### `/test` | |||
| Additional external test apps and test data. | |||
| ## Other Directories | |||
| * `/docs` | |||
| ### `/docs` | |||
| Design and user documents (in addition to your godoc generated documentation). | |||
| * `/tools` | |||
| ### `/tools` | |||
| Supporting tools for this project. Note that these tools can import code from the `/pkg` and `/internal` directories. | |||
| * `/examples` | |||
| ### `/examples` | |||
| Examples for your applications and/or public libraries. | |||
| * `/third_party` | |||
| ### `/third_party` | |||
| External helper tools, forked code and other 3rd party utilities (e.g., Swagger UI). | |||
| * `/githooks` | |||
| ### `/githooks` | |||
| Git hooks. | |||
| * `/assets` | |||
| ### `/assets` | |||
| Other assets to go along with your repository. | |||