diff --git a/INSTALLER_README.md b/INSTALLER_README.md
deleted file mode 100644
index 64313fd..0000000
--- a/INSTALLER_README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# Prole Service Dependencies Installer
-
-A desktop application for installing, deploying, and validating Prole services.
-
-## Features
-
-### 1. Install Screen
-- Check installation status of required dependencies:
- - Docker
- - Homebrew
- - k3d
- - kubectl
- - Helm
- - krew
- - cmctl
-- Download links to each project's homepage
-- Generate installer script (`install_dependencies.sh`) with all installation commands
-
-### 2. Deploy Screen
-- Single "Build and Deploy" button that:
- - Checks Docker is running
- - Creates or restarts k3d `prole-service-cluster`
- - Builds the local `prole-db` Docker image
- - Tags the image for the registry
- - Pushes the image to the registry
- - Imports the image to the k3d cluster
-- Real-time progress tracking with visual indicators (pending, running, completed, error)
-- Green checkmarks for completed steps
-
-### 3. Validate Screen
-- Displays `kubectl cnpg status prole-db` output
-- Shows k3d cluster list status
-- Auto-refreshes every 10 seconds (can be toggled)
-- Manual refresh button
-- Link to Prometheus (http://localhost:9090)
-
-## Usage
-
-### Running the Installer
-
-```bash
-python3 install.py
-```
-
-Or make it executable and run directly:
-
-```bash
-chmod +x install.py
-./install.py
-```
-
-### Requirements
-
-- Python 3.6+
-- tkinter (usually included with Python on macOS/Linux)
-- macOS (for Homebrew installation)
-
-### Installation Steps
-
-1. **Install Dependencies**: Use the Install screen to check and install required dependencies
-2. **Deploy Services**: Use the Deploy screen to build and deploy Prole services
-3. **Validate**: Use the Validate screen to monitor the deployment status
-
-## Notes
-
-- The installer requires Docker Desktop to be running for deployment
-- The k3d cluster name is `prole-service-cluster` as specified in README.md
-- The Docker image version is `prole-db:17.5-027`
-- The registry is configured as `k8s-prole-org-registry:k8s.prole.org:5000`
-
-## Apple Silicon Support
-
-The installer automatically detects if running on Apple Silicon (ARM64) and:
-- Sets `--platform linux/amd64` flag for Docker builds
-- Ensures mssql Docker images are built for AMD64 platform (required for MSSQL Server)
-- Ensures prole-db images are built for AMD64 platform for compatibility
-
-This ensures compatibility with services that require AMD64 architecture, such as MSSQL Server.
-
diff --git a/gcp/terraform/vpn.tf b/gcp/terraform/vpn.tf
index c47fa91..7e36012 100644
--- a/gcp/terraform/vpn.tf
+++ b/gcp/terraform/vpn.tf
@@ -53,13 +53,13 @@ module "cs-prod-prod-us-west1-gateway" {
}
]
}
- router_asn =
+ router_asn = 64514
keepalive_interval = 20
tunnels = {
tnl0 = {
bgp_peer = {
address = cidrhost("${local.bgp_ips.prod-prod-us-west1-gateway-tnl0}/30", 2)
- asn =
+ asn = 65001
}
bgp_session_name = "prod-us-west1-gateway-tnl0"
bgp_peer_options = {
@@ -73,7 +73,7 @@ module "cs-prod-prod-us-west1-gateway" {
tnl1 = {
bgp_peer = {
address = cidrhost("${local.bgp_ips.prod-prod-us-west1-gateway-tnl1}/30", 2)
- asn =
+ asn = 65001
}
bgp_session_name = "prod-us-west1-gateway-tnl1"
bgp_peer_options = {
diff --git a/img/proleLogo.png b/img/proleLogo.png
new file mode 100644
index 0000000..1ec8295
Binary files /dev/null and b/img/proleLogo.png differ
diff --git a/img/proleLogoBlueprint.png b/img/proleLogoBlueprint.png
new file mode 100644
index 0000000..2529c5d
Binary files /dev/null and b/img/proleLogoBlueprint.png differ
diff --git a/img/proleLogoSepia.png b/img/proleLogoSepia.png
new file mode 100644
index 0000000..78b1705
Binary files /dev/null and b/img/proleLogoSepia.png differ
diff --git a/install.py b/install.py
index fb5e044..b8a8228 100755
--- a/install.py
+++ b/install.py
@@ -45,6 +45,11 @@ class ProleInstaller:
def __init__(self, root):
self.root = root
self.root.title("Prole Installer")
+ # Best-effort: set app identity (menu title / dock icon) early
+ try:
+ self._set_app_identity()
+ except Exception:
+ pass
# Center window on screen
window_width = 1000
@@ -183,6 +188,62 @@ class ProleInstaller:
self.show_page(0)
self.update_footer()
+ # ---------------- App identity (title, Dock icon) ----------------
+ def _set_app_identity(self):
+ """Set the app name shown by Tk and attempt to set the macOS Dock icon.
+
+ Notes:
+ - tk appname affects Tk's internal application name and may improve
+ display in some OS integrations. On macOS, fully changing the menu bar
+ app name from "Python" typically requires running as a bundled app
+ with CFBundleName set, but we still set the Tk appname here.
+ - For the Dock icon on macOS, we try to use the ProleStatus.app icns
+ (capital P icon). If PyObjC (AppKit) isn't available, we fall back to
+ setting a Tk window icon from a PNG/GIF in img/.
+ """
+ # Set Tk application name
+ try:
+ self.root.tk.call('tk', 'appname', 'Prole Installer')
+ except Exception:
+ pass
+
+ # macOS Dock icon via AppKit (preferred)
+ if platform.system() == 'Darwin':
+ icns_candidates = [
+ PROJECT_ROOT / 'proleStatus' / 'dist' / 'ProleStatus.app' / 'Contents' / 'Resources' / 'AppIcon.icns',
+ PROJECT_ROOT / 'proleStatus' / 'dist' / 'ProleStatus.app' / 'Contents' / 'Resources' / 'ProleStatus.icns',
+ ]
+ icns_path = next((p for p in icns_candidates if p.exists()), None)
+ if icns_path is not None:
+ try:
+ # Use PyObjC if available
+ from AppKit import NSApplication, NSImage
+ img = NSImage.alloc().initWithContentsOfFile_(str(icns_path))
+ if img is not None:
+ NSApplication.sharedApplication().setApplicationIconImage_(img)
+ return
+ except Exception:
+ pass
+
+ # Fallback: Tk icon from image assets (PNG/GIF)
+ img_candidates = [
+ PROJECT_ROOT / 'img' / 'prole-type.gif',
+ PROJECT_ROOT / 'img' / 'prole-type.png',
+ PROJECT_ROOT / 'img' / 'ProleStatus.png',
+ PROJECT_ROOT / 'img' / 'proleLogoSepia.png',
+ ]
+ for p in img_candidates:
+ try:
+ if p.exists():
+ self._app_iconphoto = tk.PhotoImage(file=str(p))
+ try:
+ self.root.iconphoto(True, self._app_iconphoto)
+ except Exception:
+ pass
+ break
+ except Exception:
+ continue
+
def configure_styles(self):
"""Configure ttk styles"""
base_bg = '#f5f5f7'
@@ -225,6 +286,7 @@ class ProleInstaller:
# Hide any legacy frames if they exist
for _, f in self.pages:
try:
+
if f is not None:
f.place_forget()
f.pack_forget()
diff --git a/installer/README.md b/installer/README.md
new file mode 100644
index 0000000..7633b8c
--- /dev/null
+++ b/installer/README.md
@@ -0,0 +1,8 @@
+# Moved
+
+This document has moved. Please see the up-to-date installer guide at:
+
+installer/README.md
+
+The root-level file is kept only as a pointer to avoid breaking links during the refactor.
+
diff --git a/k3s/create_k3d_join_remote_agents.sh b/k3s/create_k3d_join_remote_agents.sh
old mode 100644
new mode 100755
diff --git a/proleStatus/dist/ProleStatus.app/Contents/MacOS/ProleStatus b/proleStatus/dist/ProleStatus.app/Contents/MacOS/ProleStatus
index e5905ce..9265784 100755
Binary files a/proleStatus/dist/ProleStatus.app/Contents/MacOS/ProleStatus and b/proleStatus/dist/ProleStatus.app/Contents/MacOS/ProleStatus differ
diff --git a/proleStatus/dist/ProleStatus.app/Contents/_CodeSignature/CodeResources b/proleStatus/dist/ProleStatus.app/Contents/_CodeSignature/CodeResources
index 3a10fb1..b3fefd8 100644
--- a/proleStatus/dist/ProleStatus.app/Contents/_CodeSignature/CodeResources
+++ b/proleStatus/dist/ProleStatus.app/Contents/_CodeSignature/CodeResources
@@ -6,7 +6,7 @@
Resources/ProleStatus.icns
- +cdQzwSUcmjm7+xsMSNENM8UmDs=
+ aScVfsEFHQVphfcvzhC9dp1TB0Q=
Resources/prole-type.gif
@@ -14,11 +14,11 @@
Resources/prole.properties
- DrOicjCcsYx0qpecyvrGCknJU/0=
+ Cj9W/KW+Rny/lDw/SJDfNdPFjVY=
Resources/statusIcon.png
- Tdx6sY6fxRnTUTFufZjqK0ciHCQ=
+ 3FV12k9vnMTt/OUzA+8MwBJsC4c=
files2
@@ -27,7 +27,7 @@
hash2
- Gw6vHKwQDAYnqybQs82BVotLuxQPfeFRosM58Z9veXI=
+ 1tKOrjdtGcfGEuLS6EnEdE0lfLpfwgI+Wcq6j8etOUY=
Resources/prole-type.gif
@@ -41,14 +41,14 @@
hash2
- 2c+rUHdA13baSVtHIm0CS92ZHfI9jkSJME/tuRSD5Qs=
+ rShwRtFhpcuZ6wbDkVmNg/vd3XzWvL/v8BX6pzk1tdg=
Resources/statusIcon.png
hash2
- ryjfhxseGqvWZt2dsVgqZU21o0yPUCsTxHleEpJoo/g=
+ WPDWAmMYDCd1OomngoN/U/IFnTsX1tZsuAZTJhEPtOc=
diff --git a/www/installer.html b/www/installer.html
index f75d1bb..3660d8f 100644
--- a/www/installer.html
+++ b/www/installer.html
@@ -757,3 +757,6 @@ Clusters found: 1`;