BeepZone Inventory System database setup and deployment scripts

crt 37e83815f0 whoopsie há 1 mês atrás
backend 8f4e7ae7e0 made it somewhat run on windows kinda há 1 mês atrás
frontend ff187ef944 great há 1 mês atrás
.gitignore ff187ef944 great há 1 mês atrás
README.md 37e83815f0 whoopsie há 1 mês atrás
WINDOWS.md 37e83815f0 whoopsie há 1 mês atrás
beepzone-helper.ps1 8f4e7ae7e0 made it somewhat run on windows kinda há 1 mês atrás
beepzone-helper.sh b51d33cb37 committing to insanit há 1 mês atrás
run-client.sh b51d33cb37 committing to insanit há 1 mês atrás
run-seckelapi.sh b51d33cb37 committing to insanit há 1 mês atrás

README.md

BeepZone Inverory System

Huh so you want to actually try beepzone? (Oh god)

Well then since I have no setup guides tbh I'll provide a bash script here to build and get you started, do not use this in Prod like at all I dont recommend my own software for such things in general tbh.

Windows Users: See WINDOWS.md for Windows specific setup instructions using PowerShell.

Whats in this repository?

  • Database Schema and Dumps from Dev Environement
  • Helper Script to get you started and do some basic user management as no client can do so yet lol

what does the script do ?

helps you get started by priividing an assistive TUI for :

  • running a podman container with mariadb and
    • letting you configure access details
    • importing the schema
    • managing users and roles in the db (create/delete both with bcrypt password hashing)
    • optionally import some seeding data
  • compiling and setting up SeckelAPI to be able to talk with mariadb
    • either as a podman container (recommended, uses proper port mapping 5777:5777 and host gateway for db access)
    • or natively on the system (for dev work)
    • auto-configures database connection settings
  • compiling the desktop client so you can start beepin

someday once i consider em release worthy it will also obviously be able to compile the terminal/kiosk/embedded client aswell as the mobile app

a real installer that is not just a setup bash script is planned but thats far into the future idk when

requirements for script:

  • mac
    • podman installed and configured (podman-desktop recommended for dev work)
    • brew installed
    • mysql-client installed (brew install mysql-client -> script auto detects /opt/homebrew/opt/mysql-client/bin/)
    • rust and tools installed via rustup
    • dialog for TUI (brew install dialog)
  • linux
    • any debian based distro (if not, install dependencies yourself)
    • mariadb-client installed (apt-get install mariadb-client)
    • rust and tools installed via rustup
    • podman installed and configured (podman-desktop recommended for dev work)
    • dialog for TUI (apt-get install dialog)

internet access too obviously to pull em sources : https://git.teleco.ch/crt/beepzone-client-egui-emo.git https://git.teleco.ch/crt/seckelapi.git

how to use

just run the helper script:

./beepzone-helper.sh

it will guide you through:

  1. configuring and running mariadb in podman
  2. importing the database schema (dumped version with all updates)
  3. very basics of managing users and roles (create/delete users/roles with power level 1-100)
  4. setting up SeckelAPI (container deployment recommended)
  5. building the desktop client

the script stores config in .env file and auto-detects installed tools in common locations

container stuff

  • mariadb container: exposes port 3306, persists data
  • seckelapi container: uses rust 1.92 + debian trixie, port 5777:5777, connects to mariadb via host.containers.internal
  • both use latest stable base images

notes

  • passwords are hashed with bcrypt cost 12 using htpasswd or python bcrypt fallback
  • database config auto-updates when building containers (uses host.containers.internal for db host)
  • native builds use localhost for db access
  • run scripts provided: ./run-seckelapi.sh and ./run-client.sh (execute from sources/ dir)