diff --git a/.github/workflows/rsync-ssr.yml b/.github/workflows/rsync-ssr.yml
new file mode 100644
index 000000000..3462d3084
--- /dev/null
+++ b/.github/workflows/rsync-ssr.yml
@@ -0,0 +1,72 @@
+name: Deploy to EC2
+on:
+ workflow_dispatch: # allow manual run
+ push:
+ branches:
+ - feat/ssr
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+ - uses: actions/setup-node@v1
+ with:
+ node-version: 20
+ - uses: pnpm/action-setup@v3.0.0
+ with:
+ version: 8.15.6
+
+ # --------------------
+ # Setup configuration
+ # --------------------
+ - name: Prepare configuration files
+ run: |
+ git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/infra-config.git configuration --depth 1
+ - name: Copy configuration files
+ run: |
+ cp configuration/dist/github/developer-roadmap.env .env
+
+ # --------------------
+ # Prepare the build
+ # --------------------
+ - name: Install dependencies
+ run: |
+ pnpm install
+ - name: Generate build
+ run: |
+ git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1
+ npm run generate-renderer
+ npm run build
+
+ # --------------------
+ # Deploy to EC2
+ # --------------------
+ - uses: webfactory/ssh-agent@v0.7.0
+ with:
+ ssh-private-key: ${{ secrets.EC2_PRIVATE_KEY }}
+ - name: Deploy app to EC2
+ run: |
+ rsync -apvz --delete --no-times --exclude "configuration" -e "ssh -o StrictHostKeyChecking=no" -p ./ ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }}:/var/www/v2.roadmap.sh/
+ - name: Restart PM2
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.EC2_HOST }}
+ username: ${{ secrets.EC2_USERNAME }}
+ key: ${{ secrets.EC2_PRIVATE_KEY }}
+ script: |
+ cd /var/www/v2.roadmap.sh
+ sudo pm2 restart web-roadmap
+
+ # --------------------
+ # Clear Cloudfront Caching
+ # --------------------
+ - name: Clear Cloudfront Caching
+ run: |
+ curl -L \
+ -X POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
+ -H "X-GitHub-Api-Version: 2022-11-28" \
+ https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \
+ -d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront", "is_verbose": false } }'
\ No newline at end of file
diff --git a/src/components/Navigation/Navigation.astro b/src/components/Navigation/Navigation.astro
index 08d0adf84..86726cfe7 100644
--- a/src/components/Navigation/Navigation.astro
+++ b/src/components/Navigation/Navigation.astro
@@ -17,12 +17,10 @@ import { AccountDropdown } from './AccountDropdown';
- We're Hiring
+ AI Roadmaps
@@ -43,12 +41,10 @@ import { AccountDropdown } from './AccountDropdown';
Teams
- We're Hiring
+ AI Roadmaps
diff --git a/src/data/roadmaps/system-design/content/116-performance-antipatterns/102-chatty-io.md b/src/data/roadmaps/system-design/content/116-performance-antipatterns/102-chatty-io.md
index 9ad1eef27..442fa0aeb 100644
--- a/src/data/roadmaps/system-design/content/116-performance-antipatterns/102-chatty-io.md
+++ b/src/data/roadmaps/system-design/content/116-performance-antipatterns/102-chatty-io.md
@@ -1,4 +1,4 @@
-# Chat I/O
+# Chatty I/O
The cumulative effect of a large number of I/O requests can have a significant impact on performance and responsiveness.
diff --git a/src/pages/account/index.astro b/src/pages/account/index.astro
index 056751212..08fc68c2a 100644
--- a/src/pages/account/index.astro
+++ b/src/pages/account/index.astro
@@ -4,8 +4,12 @@ import { ActivityPage } from '../../components/Activity/ActivityPage';
import AccountLayout from '../../layouts/AccountLayout.astro';
---
-
+
-
+