61 lines
908 B
Markdown
61 lines
908 B
Markdown
# Development
|
|
|
|
## Prerequisites
|
|
|
|
- Go 1.26.2 (pinned in `mise.toml`)
|
|
- `mise` (https://mise.jdx.dev) — run `mise install` to install toolchain
|
|
|
|
## Build
|
|
|
|
```bash
|
|
go build ./...
|
|
go build -o mygo .
|
|
```
|
|
|
|
## Test
|
|
|
|
```bash
|
|
go test ./...
|
|
go test -v -run TestName ./internal/...
|
|
```
|
|
|
|
## Lint & Format
|
|
|
|
```bash
|
|
go vet ./...
|
|
go fmt ./...
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
```bash
|
|
go mod tidy # after adding/removing imports
|
|
```
|
|
|
|
## Config
|
|
|
|
Server config is loaded via viper from `config.yaml` (defaults in `internal/config/load.go`).
|
|
|
|
```yaml
|
|
server:
|
|
host: 0.0.0.0
|
|
port: 10086
|
|
|
|
database:
|
|
driver: sqlite3
|
|
sqlite:
|
|
path: data/mygo.db
|
|
|
|
storage:
|
|
driver: local
|
|
local:
|
|
path: data/files
|
|
|
|
jwt:
|
|
secret: changeme-in-production
|
|
access_ttl: 15m
|
|
refresh_ttl: 168h
|
|
```
|
|
|
|
Environment variables use `MYGO_` prefix with underscore separators: `MYGO_SERVER_PORT=8080`, `MYGO_JWT_SECRET=...`
|