Minimal boilerplate with a golang server using Fiber and ViteJS for static pages
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Antonio De Lucreziis 6ff903fb06 fix: simplified development server architecture 2 years ago
backend New multi page architecture 2 years ago
cmd fix: simplified development server architecture 2 years ago
frontend New multi page architecture 2 years ago
meta fix: simplified development server architecture 2 years ago
.env.default New multi page architecture 2 years ago
.gitignore New multi page architecture 2 years ago
README.md fix: simplified development server architecture 2 years ago
go.mod New multi page architecture 2 years ago
go.sum New multi page architecture 2 years ago
package.json New multi page architecture 2 years ago
vite.config.js fix: simplified development server architecture 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 the HtmlEntrypoints 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. This is also used while developing to let Vite know 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