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
Copy file name to clipboardExpand all lines: README.md
+27-3Lines changed: 27 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -18,8 +18,6 @@ Arduino Create exposes a set of rest api hosted on a variable port on localhost
18
18
19
19
It also allows to open a websocket connection to a board connected through the serial port.
20
20
21
-
22
-
23
21
## Security
24
22
A web server running on localhost makes a lot of people nervous. That's why we thought hard about security:
25
23
@@ -28,6 +26,9 @@ A web server running on localhost makes a lot of people nervous. That's why we t
28
26
- Every url that needs to be downloaded, or command that needs to be ran has to be signed by a trusted party. You can control who is trusted through the `trusted` folder: see [Configure](#configure)
29
27
- Commands are whitelisted, so even a trusted party can't execute a malicious command. You can control which commands are whitelisted through the `whitelist` field of the configuration file: see [Configure](#configure)
30
28
29
+
## SSL Certificates
30
+
The agent creates is available in https thanks to a certificate created by a self-signed certification authority. This doesn't improve directly security, but allows the Agent to be contacted by website running in https.
31
+
31
32
# Configure
32
33
## config.ini
33
34
Arduino Create Agent uses `.ini` files to read its options. In your install folder you'll find a configuration files that's already tuned for everyday use with create:
@@ -41,4 +42,27 @@ whitelist: avrdude,bossac
41
42
- whitelist is the list of commands they are allowed to perform on your machine
42
43
43
44
## trusted folder
44
-
The trusted folder contains the public keys of the trusted origins. So if you have `https://create.arduino.cc` you should have its public key on the trusted folder.
45
+
The trusted folder contains the public keys of the trusted origins. So if you have `https://create.arduino.cc` you should have its public key on the trusted folder.
46
+
47
+
# Development
48
+
You need to clone this repository in your workspace according to [Go Specifications](https://golang.org/doc/code.html#Workspaces)
49
+
50
+
Then note that the main binary is in `cli/agent/main.go`. That's because the whole agent is packaged as a library, and so can be extended and reused.
51
+
52
+
Before compiling and running the agent you need to:
53
+
54
+
- Install go: https://golang.org/
55
+
- Generate the certificates:
56
+
57
+
$ go run cli/certificates/main.go
58
+
59
+
Finally you can run the Agent:
60
+
61
+
$ go run cli/agent/main.go
62
+
63
+
## Tips
64
+
- Arduino Create Agent uses Goa, so if you want to contribute you'll better get familiar with it: https://goa.design/
65
+
66
+
- Use gofmt and gometalinter to produce good code
67
+
68
+
- Vendor dependencies with dep: https://golang.github.io/dep/ . Yes, they need to be committed in the repository. Our continuous integration tools depend on it.
0 commit comments