Skip to content

laststance/nsx

Repository files navigation

Build Typecheck Test Lint Chromatic Playwright Admin Tests Playwright Selfhost Tests Playwright Visitor Tests

Project Status: currently under development and scheduled for release in release 2026.

The ultimate goal for this project is release it as a personal blog starter kit for React developers like Minimal Wordpress.
I'm developping essential feature while my spare time, currenty I planning release v1 2026.
All core feature implemented completely, I'm planning distribute repo source directly as similar as Beam. Roadmap

NSX

⚛️ ProductionStorybook

Auto post of web page list you read that day.

Used in combination with nsx-browser-extension.

Prerequisites

  • Node.js v18.x.x
  • pnpm

Getting start local development

  1. git clone https://github.com/laststance/nsx.git
  2. cd nsx
  3. pnpm install
  4. cp .env.sample .env
  5. docker-compose up -d
  6. pnpm db:reset
  7. pnpm validate
  8. pnpm server:start
  9. in other terminal screen pnpm start
  10. pnpm e2e:admin
  11. then, you confirmed local develop environment working fine.

open sidebar press x key DB seeds initial user account is
name: John Doe
pass: popcoon

Enviroment Variables

These are storing .env and evaluate at build time.

Variable Name Role other
VITE_APP_TITLE title
VITE_APP_DESCRIPTION desc
VITE_API_ENDPOINT end
VITE_SENTRY_DNS sentry
VITE_GA_TRACKING_CODE ga
JWT_SECRET server auth
DB_URL Database
BROWSER open via dev server

Playwright

I'm using Playwright for E2E testing.
Before run pnpm playwright, you need to run pnpm build:e2e.

Production Server

  • commands

pm2 start ecosystem.config.js    // Start Server with production mode
pm2 restart ecosystem.config.js  // Restart Server with production mode
pm2 stop 0                       // Stop server
pm2 ps -a                        // Show all processes

Setup Procution Server

  1. Setup Ubuntu server on Digital Ocean or Fly.io
  2. Update ubuntu with apt upgrade
  3. see https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04
  4. cd ~ && git clone https://github.com/laststance/nsx.git
  5. cd nsx and install volta
  6. source ~/.bashrc && volta install node
  7. pnpm
  8. install docker on Ubuntu https://docs.docker.com/engine/install/ubuntu/#set-up-the-repository
  9. docker compose up -d
  10. pnpm db:migrate
  11. touch .env.prod
  12. npm i -g pm2
  13. touch .env && echo "JWT_SECRET=$(openssl rand -base64 60 | tr -d '\n' | cut -c1-60)" >> .env
  14. pm2 start ecosystem.config.js
  15. Access from browser