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 02b9fbcca5 fix: typo 12 months ago
backend New multi page architecture 12 months ago
cmd fix: simplified development server architecture 12 months ago
frontend New multi page architecture 12 months ago
meta fix: simplified development server architecture 12 months ago
.env.default New multi page architecture 12 months ago
.gitignore New multi page architecture 12 months ago
README.md fix: typo 12 months ago
go.mod New multi page architecture 12 months ago
go.sum New multi page architecture 12 months ago
package.json New multi page architecture 12 months ago
vite.config.js fix: simplified development server architecture 12 months 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 ./meta/routes to read the content of the HtmlEntrypoints variable. 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

# Install all JS dependencies
$ 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