Skip to content

Commit 1bb874f

Browse files
committed
temp: maintenance mode — platform upgrade in progress
1 parent abb48db commit 1bb874f

3 files changed

Lines changed: 102 additions & 57 deletions

File tree

.github/workflows/deploy-web.yml

Lines changed: 3 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,21 @@
1-
###############################################################################
2-
# CrowByte — Web Deployment to Cloudflare Pages
3-
#
4-
# Triggers:
5-
# push to main → deploy to Cloudflare Pages (production branch)
6-
# v* tags → same, Pages uses branch=main as production
7-
# workflow_dispatch → manual trigger
8-
###############################################################################
9-
101
name: Deploy Web
112

123
on:
134
push:
145
branches: [main]
15-
tags: ['v*']
166
workflow_dispatch:
177

188
jobs:
199
deploy:
20-
name: Build & Deploy to Cloudflare Pages
10+
name: Deploy Maintenance Page
2111
runs-on: ubuntu-latest
22-
2312
steps:
2413
- name: Checkout
2514
uses: actions/checkout@v4
2615

27-
- name: Setup Node.js
28-
uses: actions/setup-node@v4
29-
with:
30-
node-version: '20'
31-
cache: 'npm'
32-
cache-dependency-path: apps/desktop/package.json
33-
34-
- name: Install dependencies
35-
working-directory: apps/desktop
36-
run: npm install --legacy-peer-deps
37-
38-
- name: Build web
39-
working-directory: apps/desktop
40-
run: npm run build:web
41-
env:
42-
VITE_BUILD_TARGET: web
43-
VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
44-
VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }}
45-
VITE_GLITCHTIP_DSN: ${{ secrets.VITE_GLITCHTIP_DSN }}
46-
VITE_MCP_CLOUD_URL: ${{ secrets.VITE_MCP_CLOUD_URL }}
47-
48-
- name: Strip source maps
49-
working-directory: apps/desktop
50-
run: find dist/web/ -name '*.map' -delete
51-
52-
- name: Security audit — no service key in bundle
53-
working-directory: apps/desktop
54-
run: |
55-
if grep -r "service_role" dist/web/; then
56-
echo "::error::Service role key found in web bundle!"
57-
exit 1
58-
fi
59-
60-
- name: Deploy to Cloudflare Pages
16+
- name: Deploy maintenance page to Cloudflare Pages
6117
uses: cloudflare/wrangler-action@v3
6218
with:
6319
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
6420
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
65-
command: pages deploy apps/desktop/dist/web --project-name=crowbyte --branch=main
66-
67-
- name: Smoke test
68-
run: |
69-
sleep 5
70-
STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://crowbyte.io/ || echo "000")
71-
if [ "$STATUS" != "200" ]; then
72-
echo "::warning::Smoke test returned HTTP $STATUS (DNS may still be propagating)"
73-
else
74-
echo "[+] crowbyte.io live — HTTP $STATUS"
75-
fi
21+
command: pages deploy apps/desktop/maintenance --project-name=crowbyte --branch=main
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/* /index.html 200
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>CrowByte — Coming Back Soon</title>
7+
<style>
8+
* { margin: 0; padding: 0; box-sizing: border-box; }
9+
body {
10+
background: #09090b;
11+
color: #fafafa;
12+
font-family: 'Courier New', monospace;
13+
min-height: 100vh;
14+
display: flex;
15+
flex-direction: column;
16+
align-items: center;
17+
justify-content: center;
18+
gap: 2rem;
19+
padding: 2rem;
20+
}
21+
.logo {
22+
font-size: 2.5rem;
23+
font-weight: 900;
24+
letter-spacing: 3px;
25+
color: #a855f7;
26+
}
27+
.crow { font-size: 3rem; }
28+
.line {
29+
width: 280px;
30+
height: 1px;
31+
background: linear-gradient(90deg, transparent, #a855f7, transparent);
32+
}
33+
.title {
34+
font-size: 1.1rem;
35+
color: #71717a;
36+
letter-spacing: 1px;
37+
text-transform: uppercase;
38+
}
39+
.message {
40+
max-width: 480px;
41+
text-align: center;
42+
color: #a1a1aa;
43+
font-family: system-ui, sans-serif;
44+
font-size: 1rem;
45+
line-height: 1.7;
46+
}
47+
.message strong { color: #e4e4e7; }
48+
.badge {
49+
display: inline-flex;
50+
align-items: center;
51+
gap: 0.5rem;
52+
padding: 0.4rem 1rem;
53+
border: 1px solid #a855f720;
54+
border-radius: 999px;
55+
background: #a855f710;
56+
color: #c084fc;
57+
font-size: 0.75rem;
58+
letter-spacing: 1.5px;
59+
text-transform: uppercase;
60+
}
61+
.dot {
62+
width: 6px; height: 6px;
63+
border-radius: 50%;
64+
background: #a855f7;
65+
animation: pulse 2s infinite;
66+
}
67+
@keyframes pulse {
68+
0%, 100% { opacity: 1; }
69+
50% { opacity: 0.3; }
70+
}
71+
.contact {
72+
color: #52525b;
73+
font-size: 0.8rem;
74+
font-family: system-ui, sans-serif;
75+
}
76+
.contact a { color: #71717a; text-decoration: none; }
77+
.contact a:hover { color: #a855f7; }
78+
</style>
79+
</head>
80+
<body>
81+
<div class="crow">🐦‍⬛</div>
82+
<div class="logo">CROWBYTE</div>
83+
<div class="line"></div>
84+
<div class="badge">
85+
<div class="dot"></div>
86+
Maintenance in progress
87+
</div>
88+
<p class="message">
89+
Thank you for your interest in CrowByte.<br/><br/>
90+
We're currently <strong>upgrading the platform</strong> to bring you something significantly better — a unified enterprise security experience built for real teams.<br/><br/>
91+
We'll be back shortly.
92+
</p>
93+
<div class="line"></div>
94+
<p class="contact">
95+
Questions? <a href="mailto:support@crowbyte.io">support@crowbyte.io</a>
96+
</p>
97+
</body>
98+
</html>

0 commit comments

Comments
 (0)