Skip to content
ForgeVPS

Browse guides

Find your way around

Learn what ForgeVPS does, what each tab is for, and how the different parts of your workspace fit together.

Connect or install ForgeVPS

Choose hosted or self-hosted, connect your machine, and open your first workspace.

Use the Dashboard

Check the machine you are working on, understand its resource readings, and find your next step.

Browse and edit files

Find your project, edit and save code, search files, and understand the Workspace and Git controls.

Use the Terminal

Run commands on your machine, keep separate tasks in tabs, and return to sessions you left open.

Use the Servers tab

Add an app, choose development or production, and use the list and detail controls to keep it running.

Deploy from GitHub

Connect a repository, follow its build, and publish later changes by pushing to the selected branch.

Give your app a web address

Point a domain at your machine, choose the app it should open, and check that HTTPS is working.

Use the Databases tab

Create a PostgreSQL database, open tables, edit rows, run a query, and connect your application.

Import a Supabase database

Copy selected application schemas into a new local database, verify the result, and switch your app deliberately.

Back up and restore a database

Use the Backups dialog to save a recovery point, download a copy, and restore when you need to.

Work with an agent

Give your agent a reliable starting point without handing over credentials or changing your project's instructions.

Technical reference

Understand the panel, managed processes, workspace files, and the boundary between ForgeVPS and your applications.

Open app ↗
Browse documentation
Docs/Use the Servers tab

Use the Servers tab

Add an app, choose development or production, and use the list and detail controls to keep it running.

Hosted & self-hostedReviewed 2026-09-29Read as Markdown ↗
On this page

What you see in Servers

Servers is the list of applications ForgeVPS manages on your selected machine. Each entry represents an app, not another VPS. Use this tab when you want a project to have its own start/stop controls, logs, environment settings, and web address.

The list is split into GitHub Deployments, Production Servers, and Dev Servers. Start with Add server; the first screen asks how you want to run the app. You do not need to create a new machine for every application.

Start with the project and existing servers

Select the intended machine. In Files, find or add your project folder; use Terminal to inspect its README and package scripts. Check Servers for an existing entry before creating another process for the same app.

Use the project's documented package manager and commands. A package script named start is not enough to classify an app as development or production; choose that explicitly in ForgeVPS.

pwd
ls
cat package.json

These examples are for a JavaScript project. Review the files locally; project files and logs can contain private information. Follow the project’s README for its dependency installation and database setup before registering the start command.

Choose a server type

  • Development server: a preview or editing session, such as a project's dev script. These processes receive a higher Linux out-of-memory kill preference.
  • Production server: an app serving real traffic. Choose this for production workloads even when their command uses npm or Bun.
  • GitHub deployment: connect a repository for the hosted deployment flow, with installation, build, and start commands. This option is unavailable on self-hosted.

Development priority is a preference under memory pressure, not a hard memory limit or a guarantee that production can never be killed. Child processes inherit the launch preference; a process manager may restart a failed app. Keep sufficient memory available and investigate repeated failures.

Add and start a local project

  1. Open Servers → Add server and choose Development or Production.
  2. Choose the project directory with the directory picker, give the server a name, and enter the project's long-running start command.
  3. Install required dependencies and, for production, build the project as its instructions require. Registering a local server is not a substitute for those project-specific steps.
  4. Configure required environment variables in the server details. Keep database URLs and API keys out of source control and shared screenshots.
  5. Start the server and inspect its status and logs. Confirm its assigned port is listening and the application responds before adding a domain.

ForgeVPS supplies the assigned port through PORT. The app must read it or receive the equivalent supported command-line flag. Do not hardcode a different port or launch a second copy on the same port. A managed domain can proxy to a local listener; a direct preview from another machine also needs an externally reachable bind address and firewall access.

Domains and everyday controls

Open your server’s Domains tab, or the machine’s Domains page, to add a hostname and choose the app it should open. Point DNS to the machine and check the required web ports. Confirm both the application and HTTPS work before changing an existing production hostname.

  • Start, stop, or restart a server from its list row. Restarting production can interrupt requests; confirm the intended target first.
  • Rename changes the display name, not the underlying process identity or domain routing. Use the actual process name when inspecting it in a terminal.
  • Memory usage is an estimate of process-tree resident memory. A missing reading is not zero; check status and connection errors.
  • Use the Logs view for startup errors. Loading, empty output, and failed reads are different states; an empty log alone does not prove the app is healthy.

Open an app’s details

  • Logs shows the running app’s output. Open it after starting the server or when the app returns an error.
  • Env holds the app’s environment values, such as a database connection. Save changes, then restart a development/production server or redeploy a GitHub server for them to take effect.
  • Domains is where you attach a web address to this particular app.
  • Settings lets you change the display name. On a local server, changes to the working directory, command, or development/production mode use Save and restart.
  • Deployments appears for GitHub servers and shows the history and build output of their releases.

For example, to update an app’s database connection, open that app → Env, change the variable your project reads, and save. Then restart that app from the server list and check its Logs. You do not need to restart the whole machine.

If the app will not start or respond

  • Check the working directory and start command against the project's scripts. Look for missing dependencies, build output, or environment variables.
  • For an address-in-use error, identify the process occupying the assigned port. Do not stop an unrelated service to clear it.
  • If the process runs but the browser cannot connect, check the assigned port, bind address, domain target, DNS, and firewall rules.
  • If the app stops or repeatedly restarts, inspect its logs and host memory. Explicitly development workloads are preferred for termination under memory pressure; reduce the workload before restarting it repeatedly.
pm2 list
ss -ltn
free -h
df -h /

Run these checks in the managed machine's terminal. PM2 names may differ from display names. Avoid pm2 env, raw process dumps, or printing environment files into agent transcripts; they can expose secrets.