-
Notifications
You must be signed in to change notification settings - Fork 2
Add CHANGELOG, Vercel deployment config, Web3 libraries, and bootstrap script for v0.1.0 #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,68 @@ | ||
| name: Deploy to Vercel | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| deploy-public: | ||
| name: Deploy public app (Astro) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
| cache: 'npm' | ||
|
|
||
| - name: Install dependencies | ||
| run: npm install --legacy-peer-deps | ||
| working-directory: apps/public | ||
|
|
||
|
Comment on lines
+23
to
+25
|
||
| - name: Build public app | ||
| run: npm run build | ||
| working-directory: apps/public | ||
| env: | ||
| PUBLIC_API_URL: ${{ secrets.PUBLIC_API_URL }} | ||
|
|
||
| - name: Deploy public app to Vercel | ||
| uses: amondnet/vercel-action@v25 | ||
| with: | ||
| vercel-token: ${{ secrets.VERCEL_TOKEN }} | ||
| vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} | ||
| vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID_PUBLIC }} | ||
| working-directory: apps/public | ||
| vercel-args: '--prod' | ||
|
Comment on lines
+26
to
+38
|
||
|
|
||
|
Comment on lines
+23
to
+39
|
||
| deploy-admin: | ||
| name: Deploy admin app (Angular) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
| cache: 'npm' | ||
|
|
||
| - name: Install dependencies | ||
| run: npm install --legacy-peer-deps | ||
| working-directory: apps/admin | ||
|
|
||
|
Comment on lines
+51
to
+53
|
||
| - name: Build admin app | ||
| run: npm run build | ||
| working-directory: apps/admin | ||
|
|
||
| - name: Deploy admin app to Vercel | ||
| uses: amondnet/vercel-action@v25 | ||
| with: | ||
| vercel-token: ${{ secrets.VERCEL_TOKEN }} | ||
| vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} | ||
| vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID_ADMIN }} | ||
| working-directory: apps/admin | ||
| vercel-args: '--prod' | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this project will be documented in this file. | ||
|
|
||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), | ||
| and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
|
||
| ## [Unreleased] | ||
|
|
||
| ### Added | ||
|
|
||
| - Web3 wallet integration via RainbowKit, Wagmi and Viem in `apps/public` | ||
|
|
||
| - Vercel deployment configuration (`vercel.json`) for `apps/public` (Astro SSR) and `apps/admin` (Angular) | ||
| - GitHub Actions workflow for automated Vercel deployment on push to `main` | ||
| - `bootstrap.ps1` PowerShell script for one-command local development setup | ||
|
|
||
| ## [0.1.0] - 2026-03-11 | ||
|
|
||
| ### Added | ||
|
|
||
| - Monorepo structure with `apps/public` (Astro SSR frontend), `apps/admin` (Angular dashboard), `node` (API server) and `workers` directories | ||
| - `apps/public` Astro 5 frontend with identity claim, profile and timeline pages | ||
| - `apps/admin` Angular 19 admin dashboard isolated from the public frontend | ||
| - Node.js API server (`node/socialai.node.js`) with REST endpoints | ||
| - Background workers for AI, Ethereum, Farcaster, Reddit, Solana and search indexing | ||
| - Solidity smart contracts in `contracts/` (core, interfaces, libraries, storage, verifiers) | ||
| - PostgreSQL database schema (`db/schema.sql`) | ||
| - CI workflow (`.github/workflows/ci.yml`) running lint, typecheck and build on every PR | ||
| - `ARCHITECTURE.md`, `IMPLEMENTATION.md` and `SECURITY.md` project documentation | ||
| - `docs/` directory with API, deployment, development, installation, testing and troubleshooting guides | ||
| - MIT licence | ||
|
|
||
| [Unreleased]: https://github.com/SMSDAO/SocialAi/compare/v0.1.0...HEAD | ||
| [0.1.0]: https://github.com/SMSDAO/SocialAi/releases/tag/v0.1.0 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -9,11 +9,21 @@ | |
| "preview": "astro preview" | ||
| }, | ||
| "dependencies": { | ||
| "astro": "^5.15.8" | ||
| "@rainbow-me/rainbowkit": "^2.2.7", | ||
| "@tanstack/react-query": "^5.66.9", | ||
| "@wagmi/core": "^2.16.5", | ||
| "astro": "^5.15.8", | ||
| "react": "^18.3.1", | ||
| "react-dom": "^18.3.1", | ||
| "viem": "^2.23.10", | ||
| "wagmi": "^2.14.11" | ||
|
Comment on lines
+12
to
+19
|
||
| }, | ||
| "devDependencies": { | ||
| "@astrojs/node": "^8.0.0", | ||
| "@astrojs/react": "^4.2.1", | ||
| "@types/node": "^20.10.5", | ||
| "@types/react": "^18.3.18", | ||
| "@types/react-dom": "^18.3.5", | ||
|
||
| "typescript": "^5.3.3" | ||
|
Comment on lines
21
to
27
|
||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,40 @@ | ||||||||||||||
| # SocialAi Bootstrap Script | ||||||||||||||
| # Run this script from the repository root to set up and start the project locally. | ||||||||||||||
| # .\bootstrap.ps1 | ||||||||||||||
|
|
||||||||||||||
| Set-StrictMode -Version Latest | ||||||||||||||
| $ErrorActionPreference = 'Stop' | ||||||||||||||
|
||||||||||||||
| $ErrorActionPreference = 'Stop' | |
| $ErrorActionPreference = 'Stop' | |
| Set-Location -Path $PSScriptRoot |
Copilot
AI
Mar 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After retrying npm install --legacy-peer-deps, the script doesn’t check $LASTEXITCODE again. Since external commands won’t throw under $ErrorActionPreference = 'Stop', a failed second install would still print “Dependencies installed” and continue. Add an explicit exit-code check after the retry (and abort on failure).
| npm install --legacy-peer-deps | |
| npm install --legacy-peer-deps | |
| if ($LASTEXITCODE -ne 0) { | |
| Write-Host "npm install failed even with --legacy-peer-deps. Aborting." -ForegroundColor Red | |
| exit $LASTEXITCODE | |
| } |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,30 @@ | ||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||
| "version": 2, | ||||||||||||||||||||||||||||||||||||||||
| "builds": [ | ||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||
| "src": "apps/public/astro.config.mjs", | ||||||||||||||||||||||||||||||||||||||||
| "use": "@vercel/astro", | ||||||||||||||||||||||||||||||||||||||||
| "config": { | ||||||||||||||||||||||||||||||||||||||||
| "installCommand": "npm install --legacy-peer-deps" | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||
| "src": "apps/admin/package.json", | ||||||||||||||||||||||||||||||||||||||||
| "use": "@vercel/static-build", | ||||||||||||||||||||||||||||||||||||||||
| "config": { | ||||||||||||||||||||||||||||||||||||||||
| "distDir": "apps/admin/dist/socialai-admin/browser", | ||||||||||||||||||||||||||||||||||||||||
| "buildCommand": "npm run build:admin" | ||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+12
to
+17
|
||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||
| ], | ||||||||||||||||||||||||||||||||||||||||
| "routes": [ | ||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||
| "src": "/admin(.*)", | ||||||||||||||||||||||||||||||||||||||||
| "dest": "/apps/admin/dist/socialai-admin/browser$1" | ||||||||||||||||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||||||||||||||||
| "src": "/(.*)", | ||||||||||||||||||||||||||||||||||||||||
| "dest": "/apps/public/$1" | ||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||
| "dest": "/apps/admin/dist/socialai-admin/browser$1" | |
| }, | |
| { | |
| "src": "/(.*)", | |
| "dest": "/apps/public/$1" | |
| "dest": "/$1" | |
| }, | |
| { | |
| "src": "/(.*)", | |
| "dest": "/$1" |
Copilot
AI
Mar 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vercel.json is in the repo root, but the GitHub Actions workflow deploys using working-directory: apps/public / apps/admin, so Vercel CLI will not read this root-level config. This makes the build/dist settings here ineffective for those deployments. Consider either moving/duplicating vercel.json into each app directory, or updating the workflow to deploy from the repo root (or relying solely on Vercel project settings for each app).
| "version": 2, | |
| "builds": [ | |
| { | |
| "src": "apps/public/astro.config.mjs", | |
| "use": "@vercel/astro", | |
| "config": { | |
| "installCommand": "npm install --legacy-peer-deps" | |
| } | |
| }, | |
| { | |
| "src": "apps/admin/package.json", | |
| "use": "@vercel/static-build", | |
| "config": { | |
| "distDir": "dist/socialai-admin", | |
| "buildCommand": "npm run build" | |
| } | |
| } | |
| ] | |
| "version": 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workflow uses
npm installfor deployments, but the repository doesn’t include a lockfile (package-lock.json). That makes deployments non-deterministic and can lead to “works yesterday, breaks today” builds. Consider committing a lockfile and switching these steps tonpm cifor reproducible deploys.