Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xiaoluoboding/self-hosted-app-starter

πŸͺ„ A starter for the self-hosted app, help you to build your next full-stack project. https://sha-starter.onrender.com
https://github.com/xiaoluoboding/self-hosted-app-starter

docker-image golang self-hosted starter starter-kit starter-project tailwindcss vue3

Last synced: 10 days ago
JSON representation

πŸͺ„ A starter for the self-hosted app, help you to build your next full-stack project. https://sha-starter.onrender.com

Awesome Lists containing this project

README

        





Self Hosted App Starter

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


Live Demo β€’
Documentation


GitHub stars
Docker pull





## Preview

![Preview](public/preview.png)

## 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
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](https://railway.app/button.svg)](https://railway.app/new/template/prX7No?referralCode=UEM9NF)

### ☁️ Deploy to Render

[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://dashboard.render.com/web/new)

## Tech Stack

### Back-end

- Go
- Air
- SQLite

### Front-end

Generate by [vue3-starter](https://github.com/xiaoluoboding/vue3-starter)

- Vue 3
- Vite
- Shadcn Vue
- Tailwind CSS

### Prerequisites

- [Go](https://golang.org/doc/install) (1.16 or later)
- [Air](https://github.com/cosmtrek/air#installation) (1.27.10 or later). This is for backend live reload.
- [pnpm](https://pnpm.io/installation)

## Setup

1. Install [Air](https://github.com/cosmtrek/air#installation).

2. Pull source.

```bash
npx degit xiaoluoboding/self-hosted-app-starter my-self-hosted-app
```

3. Start backend using air (with live reload).

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

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

```bash
ulimit -n 10240
```

4. Start frontend (with live reload).

```bash
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](https://github.com/bytebase/bytebase)

## License

MIT [@xiaoluoboding](https://github.com/xiaoluoboding)