diff options
Diffstat (limited to 'README-WIN.md')
| -rw-r--r-- | README-WIN.md | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/README-WIN.md b/README-WIN.md new file mode 100644 index 0000000..6ea2e3f --- /dev/null +++ b/README-WIN.md @@ -0,0 +1,85 @@ +# BeepZone Setup Guide for Windows + +Windows-specific setup instructions for BeepZone Inventory System using PowerShell. + +## what you need + +install these tools (download from official websites, winget is unreliable): + +### required dependencies: +1. **Podman Desktop** (for containers) + - download from: https://podman-desktop.io/downloads + - includes podman CLI and WSL2 machine + - after install, open Podman Desktop and initialize the machine + +2. **Rust & Cargo** (for building binaries) + - download rustup from: https://rustup.rs/ + - run the installer and follow prompts + - open Visual Studio Installer via Windows menu + - select modify + - make sure "Desktop Developement with C++" and "Linux, Mac, and Embedded Developement with C++" are checked + - press the modify button with windows shield of deceipt + - restart terminal after installation + +3. **Git** (for cloning repositories) + - download from: https://git-scm.com/download/win + - use default settings during installation other than default editor ... i recommend nano as vim is for more advanded linux nerds id say + +4. **MariaDB Client** (for database access) + - download from: https://mariadb.org/download/ + - during install make sure to not install database instance lol unless you want to run a database on your laptop + - script auto-detects at: `C:\Program Files\MariaDB *\bin\mysql.exe` + +## how to use + +1. open PowerShell in the BeepZone directory +2. allow script execution (one-time): + ```powershell + Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + ``` +3. run the helper script: + ```powershell + .\beepzone-helper.ps1 + ``` + +## what the script does + +provides an interactive menu 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 as a podman container + - uses proper port mapping 5777:5777 and host gateway for db access + - auto-configures database connection settings +- compiling the desktop client natively on Windows + - produces native `.exe` binary for Windows + +## setup workflow + +1. **configure & run mariadb container** + - set database credentials + - creates and starts mariadb:12 container + - exposes port 3306 + +2. **import database schema** + - choose between: + - full dump (includes live dev sample data, admin:admin123 are the logins btw) + - clean schema (empty tables) + - automatically creates database and imports + +3. **create admin user & role** + - create a role with power level 100 (admin) + - create your first adminier user + - experience me compiling a fucking bcrypt tool that ive embedded into the powershell code because windows is stinky and wont let me encrypt the passwords for use in the db bruh + +4. **setup SeckelAPI backend** + - automatically clones SeckelAPI source from https://git.teleco.ch/crt/seckelapi.git + - auto updates config for container networking (once, after that it dont for some reason on my computer) + - builds container image and starts on port 5777 + +5. **build desktop client** + - clones client source from https://git.teleco.ch/crt/beepzone-client-egui-emo.git + - compiles native Windows binary with cargo + - executable location: `frontend\desktop-client\sources\target\release\` (ignore the debug terminal that opens along with the app, will be removed someday tm) |
