You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Commit0 intends to be a multi-language service generator. The intention is to create a modular monolith, which is easy to seperate at a later stage when the boundries are completely understood.
7
+
Commit0 is an open source Push-To-Deploy tool designed to provide an amazing deployment process for developers while not compromising on dev ops best practices. Instead of using a Platform as a Service that simplifies your development but locks you in, we recreate the entire seamless workflow using open source technolgies and generate the infrastructure code for you while providing you with a simple interface.
8
+
9
+
With Commit0:
10
+
- You get the same simple Push-To-Deploy workflow that you are accustomed to with premium PaaS offerings
11
+
- Based on your configurations we'll generate all the infrastructure code that is needed to deploy and scale your application (Kubenetes manifests, Terraform, CI/CI configs etc.) and deploy to your own cloud provider.
12
+
- There's no vendor lock-in. It's all done with open source tools and generated code
13
+
- You don't need to know any dev ops to use Commit0 but if you are a dev ops engineer you can rest assured that you have a solid starting point and you can customize it as your project grows.
14
+
- We also include a set of commonly used open source microservices for tasks like authentication, user management, image resizing etc. so you can start developing the core application right away.
15
+
16
+
## Installation
17
+
18
+
As there alot of dependencies it will be easier to use this tool within the provided image, clone the repo and then run `make build-docker-local`.
19
+
The best way then to use this is to add an alias, then you can use the CLI as if it was installed as usual on your machine:
20
+
`alias commit0='docker run -v "$(pwd):/project" commit0:v0'`
21
+
22
+
## Usage
23
+
24
+
1) To create a project run `commit0 create [PROJECT_NAME]`
25
+
2) A folder will be created and within that update the `commit0.yml` and then run `commit0 generate -l=[LANGUAGE OF CHOICE] eg. go`
26
+
3) You will see that there is now an idl folder created.
27
+
4) Within the idl folder modify the the protobuf services generated with your desired methods
28
+
5) Go up to the parent directory and re run `commit0 generate -l=[LANGUAGE OF CHOICE]`
29
+
6) You will now see a `server` folder navigate to your service folder within that directory and implement the methods generated for it
30
+
7) Once you have tested your implementation and are happy with it return to the idl repo push that directory up to git
31
+
8) Return to the parent directory and check the depency file, for go it will be the go.mod file remove the lines that point it to your local directory, this will now point it to the version on git that was pushed up previously
32
+
10) Test and push up your implementation!
33
+
9) When you feel the need to add more services add them to the commit0 config and re-run `commit0 generate` and repeat steps 4 - 7.
34
+
35
+
36
+
## What does it generate?
37
+
38
+
The generation will create project folder, within this there will be your implementation and an IDL folder
39
+
40
+
* A parent directory that implements a skeleton and sets up your service implementation of the generated artifacts
41
+
* A child directory for the IDL's, this folder will also contain generated artifacts from the IDL under 'gen'
8
42
9
43
Based on specified config it will generate:
10
44
* Proto files [Done]
@@ -18,33 +52,35 @@ Based on specified config it will generate:
18
52
19
53
It will also live with your project, when you add a new service to the config it will generate everything needed for that new service.
20
54
21
-
## What does it generate?
22
55
23
-
The generation will create project folder, within this there will be your implementation and an IDL folder
56
+
## Development
57
+
We are looking for contributors!
24
58
25
-
* A parent directory that implements a skeleton and sets up your service implementation of the generated artifacts
26
-
* A child directory for the IDL's, this folder will also contain generated artifacts from the IDL under 'gen'
59
+
Building from the source
60
+
```
61
+
make build-deps
62
+
make deps-go
63
+
```
64
+
this will create a commit0 executable in your working direcory. To install install it into your go path use:
65
+
```
66
+
make install-go
67
+
```
27
68
28
-
## The development cycle
69
+
### Architecture
70
+
The project is built with GoLang and requires Docker
71
+
- /cmd - the CLI command entry points
72
+
- /internal/generate
73
+
- /internal/config
74
+
- /internal/templator - the templating service
29
75
30
-
1) To create a project run `commit0 create [PROJECT_NAME]`
31
-
2) A folder will be created and within that update the `commit0.yml` and then run `commit0 generate -l=[LANGUAGE OF CHOICE] eg. go`
32
-
3) You will see that there is now an idl folder created.
33
-
4) Within the idl folder modify the the protobuf services generated with your desired methods
34
-
5) Go up to the parent directory and re run `commit0 generate -l=[LANGUAGE OF CHOICE]`
35
-
6) You will now see a `server` folder navigate to your service folder within that directory and implement the methods generated for it
36
-
7) Once you have tested your implementation and are happy with it return to the idl repo push that directory up to git
37
-
8) Return to the parent directory and check the depency file, for go it will be the go.mod file remove the lines that point it to your local directory, this will now point it to the version on git that was pushed up previously
38
-
10) Test and push up your implementation!
39
-
9) When you feel the need to add more services add them to the commit0 config and re-run `commit0 generate` and repeat steps 4 - 7.
76
+
### Building locally
40
77
41
-
## Usage & installation
78
+
As the templates are embeded into the binary you will need to ensure packr2 is installed.
79
+
80
+
You can run `make deps-go` to install this.
42
81
43
-
As there alot of dependencies it will be easier to use this tool within the provided image, clone the repo and then run `make build-docker-local`.
44
-
The best way then to use this is to add an alias, then you can use the CLI as if it was installed as usual on your machine:
45
-
`alias commit0='docker run -v "$(pwd):/project" commit0:v0'`
46
82
47
-
## Dependencies
83
+
###Dependencies
48
84
49
85
In order to use this you need ensure you have these installed.
50
86
* protoc
@@ -53,9 +89,4 @@ In order to use this you need ensure you have these installed.
53
89
* protoc-gen-gateway [Http]
54
90
* protoc-gen-swagger [Swagger]
55
91
56
-
## Building locally
57
-
58
-
As the templates are embeded into the binary you will need to ensure packr2 is installed.
0 commit comments