Skip to content

Minimal boilerplate with a golang server using Fiber and ViteJS for static pages

Notifications You must be signed in to change notification settings

aziis98/go-vite-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Minimal boilerplate with a golang server using Fiber and ViteJS for static pages

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published