2020-10-09 18:26:58 +02:00
|
|
|
# Development
|
|
|
|
|
|
|
|
|
|
Screego requires:
|
|
|
|
|
|
|
|
|
|
- Go 1.15+
|
|
|
|
|
- Node 13.x
|
|
|
|
|
- Yarn 9+
|
|
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
|
|
### Clone Repository
|
|
|
|
|
|
|
|
|
|
Clone screego/server source from git:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ git clone https://github.com/screego/server.git && cd server
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### GOPATH
|
|
|
|
|
|
|
|
|
|
If you are in GOPATH, enable [go modules](https://github.com/golang/go/wiki/Modules) explicitly:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ export GO111MODULE=on
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Download Dependencies:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Server
|
|
|
|
|
$ go mod download
|
|
|
|
|
# UI
|
|
|
|
|
$ (cd ui && yarn install)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Start / Linting
|
|
|
|
|
|
|
|
|
|
### Backend
|
|
|
|
|
|
|
|
|
|
Create a file named `screego.config.development.local` inside the screego folder with the content:
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
SCREEGO_EXTERNAL_IP=YOURIP
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
and replace `YOURIP` with your external ip.
|
|
|
|
|
|
|
|
|
|
Start the server in development mode.
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ go run . serve
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The backend is available on [http://localhost:5050](http://localhost:5050)
|
|
|
|
|
|
|
|
|
|
?> When accessing `localhost:5050` it is normal that there are panics with `no such file or directory`.
|
|
|
|
|
The UI will be started separately.
|
|
|
|
|
|
|
|
|
|
### Frontend
|
|
|
|
|
|
|
|
|
|
Start the UI development server.
|
|
|
|
|
|
|
|
|
|
_Commands must be executed inside the ui directory._
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ yarn start
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Open [http://localhost:3000](http://localhost:3000) inside your favorite browser.
|
|
|
|
|
|
|
|
|
|
### Lint
|
|
|
|
|
|
|
|
|
|
Screego uses [golangci-lint](https://github.com/golangci/golangci-lint) for linting.
|
|
|
|
|
|
|
|
|
|
After installation you can check the source code with:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ golangci-lint run
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Build
|
|
|
|
|
|
2020-10-11 11:25:43 +02:00
|
|
|
1. [Setup](#setup)
|
|
|
|
|
|
2020-10-09 18:26:58 +02:00
|
|
|
1. Build the UI
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
$ (cd ui && yarn build)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
1. Build the binary
|
|
|
|
|
```bash
|
2022-07-02 17:52:14 +02:00
|
|
|
go build -ldflags "-X main.version=$(git describe --tags HEAD) -X main.mode=prod" -o screego ./main.go
|
2020-10-09 18:26:58 +02:00
|
|
|
```
|