BeepZone Inventory System database setup and deployment scripts

UMTS at Teleco 79a4be4a0b whoopsie 10 månader sedan
backend 79a4be4a0b whoopsie 10 månader sedan
frontend ff187ef944 great 11 månader sedan
.gitignore 14efd7487c yes? 10 månader sedan
README.md a29302a0a7 bruh 11 månader sedan
WINDOWS.md 9c6d439237 i am tiered 11 månader sedan
beepzone-helper.ps1 6052b9d20b great 10 månader sedan
beepzone-helper.sh a57dbcda73 ughhhh 10 månader sedan

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