Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryanbekhen/feserve
A lightweight application serving frontend applications and load balancer.
https://github.com/ryanbekhen/feserve
frontend-server letsencrypt-certificates loadbalancer spa-server static-server
Last synced: 3 months ago
JSON representation
A lightweight application serving frontend applications and load balancer.
- Host: GitHub
- URL: https://github.com/ryanbekhen/feserve
- Owner: ryanbekhen
- License: mit
- Created: 2023-01-15T20:27:38.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-19T00:12:54.000Z (11 months ago)
- Last Synced: 2024-06-20T10:13:20.386Z (5 months ago)
- Topics: frontend-server, letsencrypt-certificates, loadbalancer, spa-server, static-server
- Language: Go
- Homepage:
- Size: 228 KB
- Stars: 8
- Watchers: 1
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README-id.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY-id.md
Awesome Lists containing this project
- awesome-fiber - ryanbekhen/feserve - Feserve is a lightweight application or docker image to serve frontend and load balancer applications. (🛠️ Tools / 🌱 Third Party)
README
# Feserve
[![Mentioned in Awesome Fiber](https://awesome.re/mentioned-badge.svg)](https://github.com/gofiber/awesome-fiber#%EF%B8%8F-tools)
[![Go Report Card](https://goreportcard.com/badge/github.com/ryanbekhen/feserve)](https://goreportcard.com/report/github.com/ryanbekhen/feserve)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ryanbekhen/feserve/release.yml?style=flat-square)
![Release](https://img.shields.io/github/v/release/ryanbekhen/feserve?display_name=release&style=flat-square)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fryanbekhen%2Ffeserve.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fryanbekhen%2Ffeserve?ref=badge_shield)[English](README.md) | Indonesia
Feserve adalah aplikasi ringan yang dibuat untuk memudahkan para Frontend Developer dalam men-deploy aplikasinya, tanpa harus menggunakan Nginx, Node.js atau sejenisnya yang memakan banyak ruang penyimpanan.
## Fitur
- Sajikan file statis
- Url path khusus ke file
- Load balancer (HTTP)
- Hasilkan sertifikat SSL dan pembaruan otomatis (Let's Encrypt)## Instalasi
### File Biner
Disini saya menggunakan linux dengan arsitektur amd64 sebagai contoh. Harap sesuaikan dengan OS dan Arsitektur Anda [di sini](https://github.com/ryanbekhen/feserve/releases). Kemudian unduh, verifikasi tanda tangan, dan ekstrak seperti contoh berikut.
```shell
wget https://github.com/ryanbekhen/feserve/releases/download/v0.1.0/feserve_0.1.0_linux_amd64.zip
wget https://github.com/ryanbekhen/feserve/releases/download/v0.1.0/checksums.txt
unzip feserve_0.1.0_linux_amd64.zip
sha256sum --ignore-missing -c checksums.txt
```Setelah menjalankan perintah di atas, pindahkan file biner ke `/usr/local/bin` dengan perintah berikut.
```shell
sudo mv feserve /usr/local/bin# permission for 80/443
sudo setcap 'cap_net_bind_service=+ep' ./usr/local/bin
```### Melalui `go install`
```shell
go install github.com/ryanbekhen/feserve
```> **Catatan**: go version go1.19.5 atau lebih
## Mempersiapkan
### Struktur Direktori
```text
root-directory/
|- build/
|- app.yaml
```### Konfigurasi `app.yaml`
```yaml
version: 1
port: 8000
publicDir: build
```Dengan konfigurasi di atas, feserve akan berjalan di port `8000` dan `public/` sebagai direktori publiknya. Untuk melihat detail lebih lanjut [di sini](docs/configuration-id.md).
## Penggunaan
### Lokal
Untuk menjalankannya secara lokal, jalankan saja `feserve` di direktori root Anda dengan perintah berikut.
```shell
feserve
```Kemudian buka browser di .
### Docker
Sebelum menjalankan perintah di bawah ini, buat dulu file config `app.yaml`.
```shell
docker run --name feserve -d \
-p 80:80 \
-p 443:443 \
-v $(pwd)/certs:/certs \
-v $(pwd)/app.yaml:/app.yaml \
ghcr.io/ryanbekhen/feserve:latest
```### Dockerfile
Untuk menjalankannya di dalam docker, buat file `Dockerfile` seperti contoh berikut.
```Dockerfile
# pembuatan aplikasi
FROM node:16-alpine As build
WORKDIR /app
COPY . .
RUN npm ci
RUN npm run build
ENV NODE_ENV production# pembuatan serve
FROM ghcr.io/ryanbekhen/feserve:latest
WORKDIR /app
COPY app.yaml .
COPY --from=build /app/build /app/build
EXPOSE 8000
ENTRYPOINT ["feserve"]
```Bisa juga dengan cara berikut jika sudah kita build terlebih dahulu.
```Dockerfile
FROM ghcr.io/ryanbekhen/feserve:latest
WORKDIR /app
COPY app.yaml .
COPY build ./build
EXPOSE 8000
ENTRYPOINT ["feserve"]
```Untuk mencoba menjalankannya cukup dengan perintah berikut.
```shell
docker build -t image-name .
docker run --rm -p 8000:8000 image-name
```Kemudian buka browser di .
## Keamanan
Jika Anda menemukan kerentanan keamanan dalam Feserve, silakan kirim email ke [email protected].
## Lisensi
Program ini adalah perangkat lunak gratis. Anda dapat mendistribusikan ulang dan/atau memodifikasinya di bawah ketentuan lisensi MIT. Feserve dan kontribusi apapun adalah hak cipta © oleh Achmad Irianto Eka Putra 2023.