backend-server-v2/README.md

99 lines
2.1 KiB
Markdown

# GoFiber MVC Boilerplate
Boilerplate GoFiber MVC + HTMX + Flowbite + GORM, con auth server-rendered, area private/admin e mail sink in sviluppo.
## Setup Assets + Server
Terminale 1:
```bash
npm i
make assets
make tw-watch
```
Terminale 2:
```bash
make server
```
`make assets` esegue:
- copia di `node_modules/flowbite/dist/flowbite.min.js` in `web/static/vendor/flowbite.js`
- build Tailwind in `web/static/css/app.css`
Dark mode globale:
- toggle nel footer su tutte le pagine
- preferenza persistente in `localStorage` con chiave `theme` (`dark`/`light`)
- fallback automatico a `prefers-color-scheme` quando non c'e una preferenza salvata
## Quickstart SQLite
```bash
cp .env.example .env
npm i
make assets
make server
```
Default SQLite path: `./data/app.sqlite3`.
Comandi utili:
```bash
make test
make fmt
make db-reset
```
## Quickstart Postgres (Docker Compose)
```bash
docker compose up -d
cp .env.example .env
```
Configura `.env` così:
```env
DB_DRIVER=postgres
DB_PG_DSN=postgres://trustcontact:trustcontact@localhost:5432/trustcontact?sslmode=disable
```
`DB_POSTGRES_DSN` è comunque supportato.
## Template Directories
- Public: `web/templates/public`
- Private: `web/templates/private`
- Admin: `web/templates/admin`
## Email in Develop
In `develop`, le email vengono salvate in `./data/emails`.
## Make Targets
- `make tw-build` -> build Tailwind CSS
- `make tw-watch` -> watch Tailwind CSS
- `make flowbite-copy` -> copia `node_modules/flowbite/dist/flowbite.min.js` in `web/static/vendor/flowbite.js`
- `make assets` -> `flowbite-copy` + `tw-build`
- `make server` -> `go run ./cmd/server`
- `make test` -> `go test ./...`
- `make db-reset` -> reset DB sqlite locale (`./data/app.db` / `./data/app.sqlite3`)
- `make fmt` -> `gofmt` su `cmd/` e `internal/`
# Third-Party Notices
This project uses third-party software distributed under the MIT License.
## Flowbite
- Package: `flowbite`
- License: MIT
- Upstream: https://github.com/themesberg/flowbite
- Full text: `licenses/FLOWBITE-MIT.txt`
## Tailwind CSS
- Packages: `tailwindcss`, `@tailwindcss/cli`
- License: MIT
- Upstream: https://github.com/tailwindlabs/tailwindcss