Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기s
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Multi-tenant SaaS ERP for Elite Innovation Solutions — sales documents, purchasing, accounting/ledger, banking, HR/payroll, and projects, with Saudi Arabia (ZATCA) e-invoicing fields on invoices.
Next.js (App Router) full-stack app, PostgreSQL via Drizzle ORM, custom JWT-cookie auth. No external services required to run it — everything (including this README's setup) is self-contained and portable to any server that can run Node.js and Postgres.
• Node.js 20 or later
• PostgreSQL 16 or later
2. Create a database and a role for the app (adjust names/password as you like):README 전문 보기 ↗Multi-tenant SaaS ERP for Elite Innovation Solutions — sales documents, purchasing, accounting/ledger, banking, HR/payroll, and projects, with Saudi Arabia (ZATCA) e-invoicing fields on invoices.
Next.js (App Router) full-stack app, PostgreSQL via Drizzle ORM, custom JWT-cookie auth. No external services required to run it — everything (including this README's setup) is self-contained and portable to any server that can run Node.js and Postgres.
Install dependencies:
npm install
Create a database and a role for the app (adjust names/password as you like):
sudo -u postgres psql -c "CREATE ROLE erp_app WITH LOGIN PASSWORD 'choose-a-strong-password';"
sudo -u postgres psql -c "CREATE DATABASE elite_erp OWNER erp_app;"
Copy the env template and fill it in:
cp .env.example .env
DATABASE_URL — point this at the database you just created, e.g. postgresql://erp_app:choose-a-strong-password@localhost:5432/elite_erp.
AUTH_SECRET — required. The app refuses to start (and every request fails) if it's unset — there is no insecure fallback. Generate a fresh one, don't reuse any value that shipped in this repo's history:
openssl rand -hex 32
Changing AUTH_SECRET later invalidates every existing session (all users get logged out) — expected the first time you deploy, worth knowing if you ever rotate it afterward.
Uploaded branding (logos, seals, signatures) is stored under an uploads/ directory in the project root (gitignored) and served through an authenticated, org-scoped route — keep that directory writable and persistent across deploys, or move it to object storage for a multi-instance setup.
Push the schema to your database:
npm run db:push
(db:generate and db:studio are also available if you want versioned migration files or a DB browser UI — day-to-day setup only needs db:push.)
Build and start:
npm run build
npm start
The app listens on port 3000 by default (PORT=3000 env var to change it).
Visit /register in your browser. The first person to register creates the organization and becomes its owner — there's no separate seed script to run; chart of accounts, document numbering, and starter presets are seeded automatically for every new organization.
Keep the Node process alive and restart it on crash/reboot with a process manager. Either of these works:
pm2
npm install -g pm2
pm2 start npm --name elite-erp -- start
pm2 save
pm2 startup
systemd — /etc/systemd/system/elite-erp.service:
[Unit]
Description=Elite ERP
After=network.target postgresql.service
[Service]
WorkingDirectory=/path/to/elite-erp
ExecStart=/usr/bin/npm start
Restart=always
User=www-data
EnvironmentFile=/path/to/elite-erp/.env
[Install]
WantedBy=multi-user.target
Then systemctl enable --now elite-erp.
Put a reverse proxy in front of it for TLS and a normal domain. Nginx example:
server {
listen 80;
server_name erp.yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
(Add TLS with certbot/Let's Encrypt or your own certificates as usual.)
npm run dev
Open http://localhost:3000.