Build & Deploy¶
Build¶
No build step. package.json:
{
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js",
"dev": "nodemon server.js"
}
}
Both start and dev invoke nodemon. In production, this is a smell — nodemon is a dev-only watcher; for production you'd want node server.js (likely under PM2). Verify production actually overrides this.
Deploy artefacts present in this repo¶
- No
Dockerfile - No
Jenkinsfile - No
.github/workflows/ - No
nginx.conf - No
ecosystem.config.js(PM2) - No deploy script (no
push.sh, no shell script)
Compared to siblings:
| Repo | Dockerfile | Jenkinsfile | nginx.conf | PM2 ecosystem | GH Actions |
|------|:---:|:---:|:---:|:---:|:---:|
| someli-api | ✅ | ✅ | ✅ | ✅ | ✅ |
| someli-platform | ✅ | ✅ | ✅ | (start.sh + EFS) | ❌ |
| designer-api | ✅ | ❌ | ✅ | ❌ | ❌ |
| Someli-Designer | ✅ | ❌ | ❌ | ❌ | ❌ |
| admin_console_R | ❌ | ❌ | ❌ | ❌ | ❌ |
| Someli-admin-api (this) | ❌ | ❌ | ❌ | ❌ | ❌ |
| someli-dashboard-be | ❌ | ❌ | ❌ | ❌ | ❌ |
This repo has the least deploy infrastructure of the four backends. Either:
- Production deploy happens via a process owned outside the repo (manual
git pull+pm2 start server.json the Lightsail box), or - The repo is awaiting a copy of the
someli-apideploy scaffolding
In either case, this is a gap. Audit recommendation: copy someli-api/Dockerfile, someli-api/Jenkinsfile, and someli-api/nginx.conf here, adapt port numbers (5002 → whatever the admin API uses in prod), and commit.
How it runs in practice¶
Working assumption (verify with the ops owner):
- SSH to the admin-API Lightsail box
cd /path/to/Someli-admin-api && git pullpm2 restart admin-api(orpm2 start server.js --name admin-api)- nginx (configured at OS level, not in this repo) proxies the admin hostname to port 5002
This works but it's fragile — every step is human action with no audit trail. A typical PR that lands here is not deployed automatically.
Branch model¶
Inferred from sibling repo READMEs (someli-dashboard-be/README.md documents this pattern most clearly):
feature → dev → uat → main. PRs into dev. Merge dev to uat for QA. Merge uat to main for prod.
This repo's branch list (audit-time view) was not enumerated in detail. The HEAD commit at audit time is b82df49 on main (2026-01-12).
What "build & deploy" should look like¶
A reasonable target state (Phase 0 in enterprise-readiness.md):
- Dockerfile —
FROM node:20-slim→WORKDIR /app→COPY package*.json→RUN yarn install --production→COPY .→EXPOSE 5002→CMD ["node", "server.js"] - CI — GitHub Actions (or Jenkins) that on push to
dev_admin_apideploys to dev; on push tomaindeploys to prod - PM2 ecosystem — declare the process, log paths, env file, restart policy
- nginx config —
server { … proxy_pass http://127.0.0.1:5002; … } - Documented manual rollback —
pm2 reloadwith the previous commit; ordocker stop && docker run <previous-tag>
None of this is hard. ~1 day of engineer time.