BeepZone Inventory System database setup and deployment scripts

UMTS at Teleco a29302a0a7 bruh 1 mese fa
backend 8f4e7ae7e0 made it somewhat run on windows kinda 1 mese fa
frontend ff187ef944 great 1 mese fa
.gitignore ff187ef944 great 1 mese fa
README.md a29302a0a7 bruh 1 mese fa
WINDOWS.md 9c6d439237 i am tiered 1 mese fa
beepzone-helper.ps1 a3ed430f25 slight goofy update 1 mese fa
beepzone-helper.sh a3ed430f25 slight goofy update 1 mese fa
run-client.sh b51d33cb37 committing to insanit 1 mese fa
run-seckelapi.sh b51d33cb37 committing to insanit 1 mese fa

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

mac + pinguin requirements

macdonalds operating system:

  • podman installed and configured (podman-desktop recommended for dev work)
  • homebrew installed
  • mysql-client installed (brew install mysql-client -> script auto detects /opt/homebrew/opt/mysql-client/bin/)
  • rust + tools via rustup (https://rustup.rs/)
  • dialog for TUI (brew install dialog)

das linux pinguin:

  • debian/trixie tested
  • mariadb-client installed (sudo apt install mariadb-client)
  • rust + tools via rustup (https://rustup.rs/)
  • podman installed and configured (podman-desktop optional but recommend for dev work yk)
  • dialog for TUI (sudo apt install dialog)

optional but nice:

  • htpasswd (apache2-utils) for bcrypt hashing on linux: sudo apt install apache2-utils
  • python3 + pip install bcrypt as fallback

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 (mac + linux)

just run the helper script:

./beepzone-helper.sh

it will guide you through the needed steps kinda:

  1. configure and run mariadb (podman)
    • set db creds
    • start mariadb:12 premio server
    • logs go to /tmp/beepzone-helper.log if the helper script acts goofy
  2. import database schema
    • choose full dev dump (with sample data, login admin:admin123) or clean schema
  3. add admin user and role (if clean schema)
    • create admin role (power 100)
    • create admin user
  4. setup seckelapi (container recommended)
    • port mapping 5777:5777, DB via host.containers.internal
    • auto-updates sources/config/basics.toml [database] section
  5. build desktop client
    • cargo build with live output
    • run via ./run-client.sh because we’re both lazy

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