github.com/GroophyLifefor/yozgat-mrt

Yozgat is a simple self-hosted deployment platform.

1 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  yozgat-crystal:
    github: GroophyLifefor/yozgat-mrt
    version: ~> 0.2.48

Then run:

shards install

shard.yml

Crystal
>= 1.15.0
License
MIT
Author
Murat Kirazkaya
Target
  • yozgat-crystal from src/main.cr

Dependencies

Runtime Dependencies

  • jwt~> 1.6.0github: crystal-community/jwt
  • kemal1.12.0github: kemalcr/kemal
  • sqlite30.23.0github: crystal-lang/crystal-sqlite3
  • ata-validator-crystal0.2.0github: groophylifefor/ata-validator-crystal

README

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 varDefaultPurpose
PORT3000HTTP listen port
YOZGAT_PUBLIC_DIR./publicWhere the static pages live
YOZGAT_DATA_DIR./dataWhere the SQLite file lives
YOZGAT_JWT_SECRETrandom per bootToken signing secret. Set it in production; otherwise tokens invalidate on every restart