aboutsummaryrefslogtreecommitdiff
path: root/WINDOWS.md
diff options
context:
space:
mode:
Diffstat (limited to 'WINDOWS.md')
-rw-r--r--WINDOWS.md85
1 files changed, 85 insertions, 0 deletions
diff --git a/WINDOWS.md b/WINDOWS.md
new file mode 100644
index 0000000..6ea2e3f
--- /dev/null
+++ b/WINDOWS.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)