Skip to content

Latest commit

 

History

History
83 lines (60 loc) · 2.11 KB

File metadata and controls

83 lines (60 loc) · 2.11 KB

Yozgat

Yozgat is a simple self-hosted deployment platform.

Installation

Install (latest release) — root required

curl -fsSL https://raw.githubusercontent.com/GroophyLifefor/yozgat-mrt/main/install.sh | sudo bash

Update to the latest release (with automatic rollback if fails)

curl -fsSL https://raw.githubusercontent.com/GroophyLifefor/yozgat-mrt/main/update.sh | sudo bash

Uninstall (removes everything incl. data)

curl -fsSL https://raw.githubusercontent.com/GroophyLifefor/yozgat-mrt/main/uninstall.sh | sudo bash

Uninstall but keep the data directory

curl -fsSL https://raw.githubusercontent.com/GroophyLifefor/yozgat-mrt/main/uninstall.sh -o uninstall.sh \
  && sudo bash uninstall.sh --keep-data

The service listens on <your-ip>:6637 by default.


Development in Local

Requirements

  • Crystal >= 1.15
  • Shards
  • Native libraries (see below)
shards install
just build     # Windows: vendor/libata/win-x64, Linux: vendor/libata/linux-x64

Or manually (note: use absolute LIBPATHs — the compiler resolves them in the link phase):

# PowerShell
$root = (Get-Location).Path
crystal build src/main.cr -o bin/yozgat.exe --link-flags "/LIBPATH:$root/vendor/libata/win-x64 /LIBPATH:$root/libsqlite"
# Linux
crystal build src/main.cr -o bin/yozgat --link-flags "-Lvendor/libata/linux-x64 -Llibsqlite"

Run (DLLs must be findable at runtime):

$env:PATH = "$PWD/vendor/libata/win-x64;$PWD/libsqlite;$env:PATH"
.\bin\yozgat.exe      # or: just run

Open http://localhost:3000 — the first visit leads to the admin registration page.

API docs are at http://localhost:3000/docs (Scalar UI) and the raw spec at /openapi.json.

Configuration

Env var Default Purpose
PORT 3000 HTTP listen port
YOZGAT_PUBLIC_DIR ./public Where the static pages live
YOZGAT_DATA_DIR ./data Where the SQLite file lives
YOZGAT_JWT_SECRET random per boot Token signing secret. Set it in production; otherwise tokens invalidate on every restart