Skip to content

xiaoluoboding/self-hosted-app-starter

Repository files navigation

Self Hosted App Starter

A starter for the self-hosted app, help you to build your next full-stack project.

Live DemoDocumentation

GitHub stars Docker pull

Preview

Preview

Features

SHA is built on top of GSVT Stack, which stands for Go、SQLite、Vue 3、Tailwind CSS

  • 🪄 Full-stack starter with GSVT Stack
  • ⚓️ Self-hosted with Dockerfile on the fly
  • 💾 Store your data using the SQLite database
  • 🖖 Choosing your familiar Front-end Tech Stack, default is Vue 3
  • 🚄 Deploy your app easily on the Railway / Render

Deploy Services

⚓️ Deploy with Docker

docker run --name sha --publish 3399:8080 --volume ~/.getsha/:/var/opt/sha -e mode=prod getsha/sha:0.1.0

SHA should now be running at http://localhost:3399.

🚄 Deploy on Railway

Deploy on Railway

☁️ Deploy to Render

Deploy to Render

Tech Stack

Back-end

  • Go
  • Air
  • SQLite

Front-end

Generate by vue3-starter

  • Vue 3
  • Vite
  • Shadcn Vue
  • Tailwind CSS

Prerequisites

  • Go (1.16 or later)
  • Air (1.27.10 or later). This is for backend live reload.
  • pnpm

Setup

  1. Install Air.

  2. Pull source.

    npx degit xiaoluoboding/self-hosted-app-starter my-self-hosted-app
  3. Start backend using air (with live reload).

    pnpm run dev:be
    or
    air -c backend/scripts/.air.toml

    Change the open file limit if you encounter "error: too many open files".

    ulimit -n 10240
  4. Start frontend (with live reload).

    pnpm run dev:fe
    or
    cd frontend && pnpm i && pnpm run dev

The app should now be running at https://localhost:3000 and change either frontend or backend code would trigger live reload.

Inspired by

Bytebase

License

MIT @xiaoluoboding