GoTTH is designed to quickly spin up a Full-Stack Golang Web Application with database support.
Includes following Languages and Technologies:
- Golang with ServeMux.
- TailwindCSS Standalone Executable.
- Turso LibSQL (SQLite for Production).
- HTMX with Templ as Templating Engine.
air
- Using Docker
docker pull amitsuthar69/gotth:1.0
docker run -p 8080:8080 amitsuthar69/gotth:1.0
OR
- Build from source
git clone https://github.com/amitsuthar69/GoTTH.git
go install github.com/cosmtrek/air@latest
go install github.com/a-h/templ/cmd/templ@latest
You can add templ
to your local bashrc or zshrc profile config to avoid absolute path while using templ
command.
-
Install the executable binary for your platform from the latest release from GitHub in the root of project.
-
Make sure to give it executable permissions:
chmod +x ./tailwindcss
go get github.com/tursodatabase/libsql-client-go/libsql
- Then Install the Turso CLI, create your database, generate the AuthToken & DB_URL and add them in the
.env
file. - You can refer this awesome Turso Quickstart Go Docs if you get stuck anywhere.
PORT=8080
DB_URL=libsql://yourDBName-tursoUserName.turso.io?authToken=yourAuthToken
GOTTH
│
├── /internal/ # Private application and business logic
│ ├── /server/ # Server-specific logic
│ │ ├── server.go # Core server logic
│ │ └── routes.go # Route definitions
│ ├── /database/ # Database-related logic
│ | └── database.go # Database connection and queries
│ └── /middleware/ # Middlewares
│ └── logger.go # Logger middleware
│
├── /static/ # Static assets (CSS, JS, images, etc.)
│ ├── /css/ # CSS files
│ │ ├── input.css # Tailwind input file
│ │ └── style.css # Generated CSS file
│ └── /scripts/ # JavaScript files
│ └── htmx.min.js # HTMX JavaScript library
│
├── /web/ # Web UI-related handlers
│ ├── hello.templ # Templating file for the hello page
│ └── hello.go # Hello handler logic
│
├── main.go # Application entry point
├── Makefile # Build automation scripts
├── .air.toml # Air live reloading config file
├── tailwind.config.js # Tailwind CSS configuration
└── tailwindcss # Tailwind CSS binary
If you really appreciate the efforts :