Antonio De Lucreziis a72f543346 | 2 years ago | |
---|---|---|
backend | 2 years ago | |
cmd | 2 years ago | |
frontend | 2 years ago | |
meta | 2 years ago | |
.env.default | 2 years ago | |
.gitignore | 2 years ago | |
README.md | 2 years ago | |
go.mod | 2 years ago | |
go.sum | 2 years ago | |
package.json | 2 years ago | |
vite.config.js | 2 years ago |
README.md
Go Vite Kit
Minimal boilerplate project for a Golang server using Fiber and ViteJS for static pages
Features
Architecture
-
frontend/
This is a Vite project for building all the static pages used by this app.
-
backend/
This keeps all server related files
-
config/
Loads env variables and keeps them as globals
-
database/
Module with a
Database
interface and two implementation:memDB
is an in-memory database for testing purposes.sqliteDB
is a wrapper for working with an SQLite database. -
routes/
Various functions for configuring all the server routes.
A very important file is
backend/routes/router.go
that contains theHtmlEntrypoints
variable that is used both by the backend and ViteJS to mount HTML entrypoints.When building the frontend ViteJS will call
go run ./cmd/routes
to read the content of this variabile, while during development a special route called/dev/routes
gets mounted on the backend server and this lets Vite add all necessary entrypoints to the dev server.
-
Usage
To setup the project first install the required npm packages
$ npm install
then you can start versioning the lock file of your package manager.
Development
# Development
$ MODE=dev go run -v ./cmd/server
# Development with watcher
$ fd -e go | MODE=dev entr -r go run -v ./cmd/server
Production
You can build everything with the following command, it will build first the frontend and then the backend and generate ./out/server
.
# Build
$ go run -v ./cmd/build
# Run
$ ./out/server