Repository navigation
Releases
v0.5.1
v0.5.0
New Feature
pxnship packkomutu: upload edilecek dosyaları sunucuya göndermeden zipleyip local'e kaydeder-oflag ile çıktı dosya yolu belirlenebilir
Refactor
collectFilesfonksiyonu ortak hale getirildi, SFTP upload'daki duplicate mantık kaldırıldı
v0.4.1
Bug Fix
- SFTP fallback'te symlink'lerden kaynaklanan EISDIR hatasını düzelt
- sshpass yüklü değilse kullanıcıyı uyar ve kurulum komutu göster
v0.4.0
feat(build): Pass pm2.env to build process for NEXT_PUBLIC vars
- pm2.env values are now passed to the build process
- This enables NEXT_PUBLIC_* environment variables to be embedded at build time
- Useful for Next.js apps that need public env vars during static generation
v0.3.2
fix(pm2): Apply ecosystem.config.js changes on reload
- When ecosystem file exists, uses
pm2 reload/restart ecosystemFile --update-envcommand - This ensures PORT, env variables and other config changes are applied during deployment
v0.3.1
Bug Fix
Windows CMD Trailing Space Issue
Fixed a critical bug where environment variables on Windows had a trailing space.
Before (broken):
set API_BASE_URL=https://api.example.com && pm2 reload appThe space before && was included in the value: https://api.example.com
After (fixed):
set "API_BASE_URL=https://api.example.com" && pm2 reload appQuotes prevent the trailing space from being included.
Impact
- URLs were malformed:
https://api.example.com /api/v1/... - API requests failed with "Invalid URL" error
Upgrade
bunx @pxilab/nextship@0.3.1 shipv0.3.0
What's New
PM2 Environment Variable Injection
You can now inject environment variables when PM2 starts or reloads:
pm2: {
appName: "myapp",
env: {
NODE_ENV: "production",
API_BASE_URL: process.env.API_BASE_URL,
DATABASE_URL: process.env.DATABASE_URL,
},
}How it works:
- Environment variables are passed via shell environment
- Windows:
set VAR=val && pm2 reload app - Linux:
VAR=val pm2 reload app - Variables persist after
pm2 save
Use case: Deploy from GitHub Actions with secrets:
env:
API_BASE_URL: ${{ secrets.API_BASE_URL }}The config reads process.env.API_BASE_URL and injects it to PM2.
Other Changes
- Added
escapeShellValue()for safe command execution - Dry-run now shows env variable count
- Updated documentation and example config
v0.2.0
What's New
Local Standalone Preparation (prepareLocally)
New prepareLocally option (default: true) that copies public/ and .next/static/ into .next/standalone/ locally after build.
Benefits:
- Upload only
.next/standalone/to server (single folder) - No duplicate
public/,static/, orpackage.jsonon server - Cleaner server directory structure
- Slightly faster uploads (less files)
Breaking Changes
- Default
includelist changed from[".next/standalone/", ".next/static/", "public/", "package.json"]to[".next/standalone/"] - If you have custom
includein your config, you may need to update it
Migration
If you want the old behavior, set prepareLocally: false in your config:
build: {
prepareLocally: false,
},
upload: {
include: [".next/standalone/", ".next/static/", "public/", "package.json"],
}v0.1.7
feat: show build and upload duration separately in deployment summary
v0.1.6 - Upload Size Display
New Features
- Show upload size in progress message (e.g.,
2679 files, 270.9 KB) - Show upload size in deployment summary (
Uploaded: 270.9 KB) - Automatically format bytes to KB/MB/GB
Documentation
- Updated README and ARCHITECTURE with .mjs config file recommendation
- Added all supported config formats to docs