RC
DEV1
fleet.rickyscontrolcenter.com
Production · Live
Back to DEV1
4
R
VPS · 187.124.246.154
online srv1544393 · Ubuntu
CPU
34%
RAM
58%
Disk
42%
Processes
API :3025 running
Caddy · Stalwart :587
PM2 stores 9/10
Uptime
99.9%
30-day avg
Fleet summary
SaaS ×2 Sites ×22 Stores 9/10 4 alerts
2 critical issues need your attention now
phonecasesforcharity site is dark (no app dir)  ·  scopesuite SMTP sending as wrong account (mail bouncing)
Fix store → Fix email →
SaaS Products
both live
SignCast
up · 99.9%
pm2 signcast-ai running on :3055
18 customers · $612 MRR
Stripe webhooks active · signcast.app 200 OK
What should happen
Monitor customer growth — target 25 by end of Q3
Review /saas console for any failed downloads or AI relay errors
No action needed
SignCast is healthy. View full console for detailed customer & product data.
Open SAAS console
ShiftDeck
up · 99.1%
storectl :3001 · shiftdeck.tech serving 200
7 companies · $230 MRR · Stripe live mode
Postgres live · 22 tables · 8 users · 7 companies
3-round pre-launch review done (2026-06-12)
What should happen
Clock-in race condition — needs DB partial-unique migration (post-launch)
Token exp/iat hardening deferred — schedule for next sprint
Ready to go-live — push marketing
Pre-launch checklist complete. Sales-ready. Begin customer acquisition.
View live site
Phone Case Stores
9/10 online
storectl registry — 10 stores
9 online · 1 dark
phonecasesforall:3002online
galaxycaseco:3005online
phonecasegift:3006online
titancase:3007online
phonecasesforher:3008online
casepop:3009online
phonecaselabs:3010online
inklings:3400online
phonecasesforkidsstaticCaddy
phonecasesforcharity:3003DARK!
phonecasesforcharity
site dark
Port :3003 reserved in storectl registry
No app directory at /var/www/phonecasesforcharity
Caddy has no process to proxy — site returns nothing
What needs to happen
Clone the phone-case store repo into /var/www/phonecasesforcharity, run prebuild + build for charity variant, then storectl start phonecasesforcharity
Fix command sequence
cd /var/www && git clone <store-repo> phonecasesforcharity cd phonecasesforcharity && npm run prebuild:charity && npm run build:charity storectl start phonecasesforcharity
AAB — Affiliate Sites (22)
13 untagged
Site fleet status
all serving
22 sites live on VPS — Astro + Tailwind stack
FastAPI :3025 serving /api/* routes — running
Factory build_site.py auto-provisions GA4 on new builds
DB: /opt/factory/phonescale.db — 22 rows in aab_sites
What should happen
Backfill GA4 on remaining 13 sites — auto-provisioning is built, just needs running
GA4 backfill — 13 sites
13 untagged
9 top sites already tagged (ids 1,4,5,6,10,11,12,13,14)
13 sites: traffic going untracked — no GA4 ID in aab_sites.ga4_id
factory/ga4_admin.py ensure_ga4() already built and idempotent
SA ga-traffic-reader@decoded-vision-381123 has Editor on account
Run backfill on VPS
This will auto-create GA4 properties for all 13 remaining sites and rebuild them. Idempotent — safe to re-run.
cd /var/www/aiaffiliate/factory python3 -c " from ga4_admin import ensure_ga4 import sqlite3 db = sqlite3.connect('/opt/factory/phonescale.db') sites = db.execute(\"SELECT id,slug,display_title FROM aab_sites WHERE ga4_id IS NULL OR ga4_id=''\").fetchall() for sid,slug,title in sites: mid = ensure_ga4(slug, title, f'https://{slug}.com') db.execute('UPDATE aab_sites SET ga4_id=? WHERE id=?',[mid,sid]) db.commit() print(f'{slug} -> {mid}') " Open shell to run
GA4-tagged sites (9)
tracking
ergonomic-office-chairs
G-LKSYTJB6P0
best-air-purifiers
G-TQ2VZM34B4
camping-gear
G-MMM3KZ3RYY
dog-grooming
G-QSX6ZKK49C
scentscape
G-HZS86EC466
earnvista
G-Y185DBR3G6
nibblenook
G-8ZQT2PKVCD
drawerlogic
G-ZKT53Z4WJF
cookingwise
G-9T979FTR11
Email / SMTP — Stalwart
1 misconfigured
Stalwart SMTP — v0.16.5
live · :587
Stalwart running on :587 STARTTLS, :8082 JMAP admin
hello@shiftdeck.tech — DKIM/SPF/DMARC/MX live ✓
ShiftDeck sends as hello@shiftdeck.tech — verified 250 OK
scopesuite.app still using admin account — 501 errors
Working mailboxes
hello@shiftdeck.tech ✓
hello@scopesuite.app ✗ (wrong creds)
scopesuite SMTP broken
501 errors
scopesuite .env has SMTP_USER=admin — admin can't send-as any address
All scopesuite transactional email is bouncing right now
Fix: create hello@scopesuite.app mailbox in Stalwart, update .env
2-step fix
Step 1 — Create the Stalwart mailbox via JMAP:
curl -s -X POST http://127.0.0.1:8082/jmap \ -u admin:Ricky2026\!MailAdmin \ -H 'Content-Type: application/json' \ -d '{"using":["urn:stalwart:jmap"],"methodCalls":[["x:Account/set",{"accountId":"d333333","create":{"1":{"@type":"User","name":"hello","domainId":"scopesuite.app","credentials":{"0":{"@type":"Password","secret":"YourPassword123!"}}}}},"0"]]}'
Step 2 — Update scopesuite .env on VPS:
sed -i 's/SMTP_USER=admin/SMTP_USER=hello@scopesuite.app/' /var/www/scopesuite/.env sed -i 's/SMTP_PASS=.*/SMTP_PASS=YourPassword123!/' /var/www/scopesuite/.env pm2 restart scopesuite Open shell
Affiliate Networks
2 pending approval
CJ Affiliate
active
PID 7662017 — activated and wired
nibblenook (site_id 12) linked and serving CJ links
Other sites not yet wired to CJ — opportunity to expand
Expand CJ to more sites
Wire additional AAB sites to CJ deep links — start with high-traffic sites (ergonomic-office-chairs, camping-gear).
CJ dashboard
Awin
pending approval
Application submitted — waiting on Awin review team
Approval email will go to reasner196@gmail.com
Check your inbox
Awin typically approves within 3–5 business days. Check Gmail for approval or requests for more info.
Search Gmail for Awin
ShareASale
pending approval
Application submitted — waiting on ShareASale review
Approval email will go to reasner196@gmail.com
Check your inbox
ShareASale approvals can take up to a week. Once approved, wire links into AAB sites via the affiliate catalog.
Search Gmail for ShareASale