DeployWise
HomeDocumentation

Quick Start

Deploy your first application in under 5 minutes.

1
Sign in with GitHub
Click Continue with GitHub on the login screen. We request read access to your public profile and repositories only.
2
Add a server
Go to Servers → Add Server. Enter your VPS hostname/IP, SSH port (default 22), username and password or private key.
3
Test the connection
Click the status icon on your server card to verify SSH connectivity.
4
Deploy a project
Go to Deploy. Select a GitHub repo, pick your server, configure settings and click Deploy Now.
5
Watch live logs
Logs stream in real time during deployment. Once complete, your app is live via PM2 + Nginx.
Tip
DeployWise auto-detects your package manager (npm, yarn, pnpm, bun) from lock files.

Servers

Connect and manage your VPS servers via SSH.

Adding a server

Navigate to Servers → Add Server. Fill in the connection details and click Add Server. DeployWise saves encrypted credentials and tests the SSH connection automatically.

FieldTypeReqDescription
namestringFriendly label for the UI
hoststringHostname or IP address
portnumberSSH port (default: 22)
usernamestringSSH login user (e.g. root)
authTypepassword | keyAuthentication method
passwordstringSSH password
privateKeystringPEM private key content

FTP server setup

After adding a server, enable FTP for file uploads. Go to Servers → [server] → FTP. DeployWise installs vsftpd and creates FTP accounts automatically.

Default port
21
Max upload
100 MB

Connection status

Each server shows a status dot — green means the last test succeeded. Click the activity icon to run a new test anytime.

Warning
Credentials are encrypted at rest. The encryption key is set via ENCRYPTION_KEY on the API server.

File Manager

Browse, upload, edit and delete files on your server via SFTP.

Navigation

Go to Servers → [server] → File Manager. Defaults to /root. Click folders to navigate, or use the breadcrumb trail.

File operations

Upload Drag & drop or click Upload. Max 100 MB per file.
Edit Double-click text files to open in the browser editor.
Create folder Click New Folder in the toolbar.
Rename / Move Row actions → Rename. Enter a new path to move.
Download Row actions → Download.
Batch delete Enter selection mode, check files, click Delete.

Supported file types for editing

.txt.json.yaml.yml.env.md.conf.ini.log.sh.js.ts.py.css.html.xml.toml.nginx
Note
Files larger than 1 MB cannot be opened in the browser editor.

Projects & Deployments

Connect GitHub repositories and manage live deployments.

Creating a project

Go to Deploy in the sidebar. The deploy wizard has three steps:

1
Repository
Choose a GitHub repo and branch (defaults to main).
2
Server
Select which VPS to deploy to.
3
Configuration
Set technology, build/start commands, env vars, Nginx and SSL.

Deployment process

When a deployment starts, DeployWise runs these steps on your server via SSH:

deploy steps
1. Check/install runtime (Node.js via NVM, or Bun)
2. Check/install package manager (npm / yarn / pnpm)
3. Check/install PM2 (for SSR apps)
4. Clone or pull latest code from GitHub
5. Capture commit hash for rollback tracking
6. Install dependencies
7. Run build command
8. Write PM2 ecosystem.config.js
9. Start / restart app via PM2
10. Configure Nginx reverse proxy
11. Install SSL certificate via Certbot

Deployment modes

SSR Mode

When a Start Command is provided. App runs via PM2 with Nginx as reverse proxy.

Static Mode

When Start Command is empty. Build output served directly by Nginx.

PM2 controls

RestartRestarts the PM2 process without redeploying
StopStops the process (doesn't delete it)
MetricsReal-time CPU, memory, uptime and restart count

Rollback

Every deployment captures the git commit hash. In Deployment History, click the rollback icon on any past successful deployment.

rollback steps
1. git checkout <commit-hash>
2. Install dependencies
3. Run build command
4. Restart PM2 process
Warning
Only deployments that completed successfully with a stored commit hash can be rolled back.

Auto Deploy

Automatically redeploy when you push to a branch.

How it works

DeployWise registers a GitHub webhook on your repo. When you push to the configured branch, GitHub sends a push event that triggers a full deployment automatically.

Setup

Open your project → Auto Deploy card in the sidebar
Toggle the switch to On
The webhook is registered on GitHub automatically via your OAuth token

Webhook security

Each webhook is secured with HMAC-SHA256. DeployWise generates a random secret, stores it with the project, and verifies every incoming request.

http
POST /webhooks/github/:projectId
X-Hub-Signature-256: sha256=<HMAC-SHA256>
X-GitHub-Event: push

Server Tools

Nginx, ports, services and storage — all from the browser.

Nginx Manager

View, create, edit and enable/disable virtual hosts. Reload Nginx and view access/error logs.

Servers → [server] → Nginx
Active Ports

All listening TCP/UDP ports with PID and process name. Debug port conflicts instantly.

Servers → [server] → Ports
Services

Install MySQL, PostgreSQL, MongoDB, Redis, RabbitMQ with one click. Start, stop and restart each.

Servers → [server] → Services
Storage (MinIO)

S3-compatible object storage on your VPS. Create buckets and manage objects.

Servers → [server] → Storage

Server Metrics

Real-time server resource data fetched on demand via SSH.

Viewing metrics

Go to Servers → [server]. Scroll to Resource Usage and click Load Metrics. Data is fetched live via SSH.

CPU
Usage % + cores
Memory
Used / Total
Disk
Root partition %
Uptime
Days + load avg
Note
Metrics are not auto-refreshed. Click Refresh to fetch updated values. Bars turn yellow above 60% and red above 80%.

Technologies

Supported frameworks and their deployment behaviour.

TechnologyMode
Next.jsSSR / Static
ViteStatic
Node.jsSSR
BunSSR
AstroSSR / Static
SvelteKitSSR / Static
NuxtSSR / Static
RemixSSR
AngularStatic
GatsbyStatic
PythonSSR
StaticStatic
Tip
Deployment mode is determined by whether a Start Command is set — not by the technology. Angular, Gatsby and Static are always static.

Troubleshooting

Common issues and how to fix them.

Deployment fails at install_node
Cause: NVM needs internet access and a compatible shell.
Fix: Ensure outbound internet. Check deploy logs. If curl fails, install Node manually.
PM2 not found after Node install
Cause: NVM profile not sourced in non-interactive SSH sessions.
Fix: DeployWise sources NVM explicitly. If still failing, install PM2 manually on the server.
Nginx test fails after deploy
Cause: Syntax error in another config, or Nginx not installed.
Fix: SSH in and run: sudo nginx -t. Check /etc/nginx/sites-enabled/ for conflicts.
SSL installation fails
Cause: DNS not pointed to server, or ports 80/443 blocked.
Fix: Point A record to server IP. Open ports: ufw allow 80 && ufw allow 443.
Auto deploy webhook not triggering
Cause: Secret mismatch or GitHub can't reach API server.
Fix: Verify API URL is public. Check GitHub webhook delivery logs. Re-enable auto deploy.
File Manager shows permission denied
Cause: SSH user lacks read/write on the target directory.
Fix: Run: sudo chown -R <user>:<user> /path/to/dir
Connection test fails
Cause: Wrong host/port/credentials, or firewall blocking SSH.
Fix: Verify details. Check: systemctl status sshd. Ensure firewall allows the SSH port.
Need help?

Reach out directly — we typically respond within 24 hours.

furkanozturk1635@gmail.com