BeepZone Inventory System database setup and deployment scripts

UMTS at Teleco b51d33cb37 committing to insanit 11 kuukautta sitten
backend b51d33cb37 committing to insanit 11 kuukautta sitten
.gitignore b51d33cb37 committing to insanit 11 kuukautta sitten
README.md b51d33cb37 committing to insanit 11 kuukautta sitten
beepzone-helper.sh b51d33cb37 committing to insanit 11 kuukautta sitten
run-client.sh b51d33cb37 committing to insanit 11 kuukautta sitten
run-seckelapi.sh b51d33cb37 committing to insanit 11 kuukautta sitten

README.md

BeepZone Inverory Setup Helper Scripts and Database Files

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.

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

Setup Scripts currently do not support windows

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)