You generally cannot install Laravel Forge directly on your own server like a normal package. Forge is a hosted server-management service: it either provisions a server through a supported provider or connects to an existing VPS using its public IP address and SSH port. Forge then performs the server provisioning and configuration.
You generally cannot install Laravel Forge directly on your own server like a normal package. Forge is a hosted server-management service. The supported workflow is to either let Forge create a server through a supported provider or connect an existing VPS by entering its public IP address and SSH port. Forge then uses elevated access to provision and manage the server.
As an Amazon Associate I earn from qualifying purchases.
So, if by “manually install Forge” you mean “use Forge with a VPS I already own,” the process is straightforward: prepare the server, add it in Forge as a custom server, provide the SSH details, wait for provisioning to finish, and then manage sites and services from the Forge dashboard.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsWhat you need before connecting a server to Forge
Prepare the following before starting:
- An existing VPS, or an account with a provider through which Forge can create one.
- The server’s public IPv4 address or other address accepted by the Forge interface.
- The SSH port used by the server. Port
22is common, but the value entered in Forge must match the port actually exposed by your server. - SSH credentials or key-based access with sufficient privileges for initial provisioning.
- Network rules that allow Forge to reach the server over SSH.
- A recent provider snapshot or backup, if your provider supports one.
Forge connects as root during initial provisioning and retains root-level access for system-management tasks. That access is necessary because Forge configures services such as the firewall, PHP, web-server components, background processes, scheduled tasks, and operating-system dependencies.
#1 Best Overall
Choose how you want to obtain the server
You have two normal options:
| Option | What happens | Best for |
|---|---|---|
| Forge-provisioned server | You select a provider, region, server type, and size in Forge. Forge creates and provisions the server through that provider. | People who do not already have a VPS and want Forge to handle the initial setup. |
| Existing custom VPS | You rent or own the VPS separately, then give Forge its IP address and SSH port. Forge provisions the compatible server. | People who already have a server or need to choose infrastructure independently. |
| Fully manual administration | You install, configure, secure, update, and maintain the operating system and application stack yourself. | Operators who do not want Forge managing the server. This is not a Forge installation. |
If you do not already have a machine, compare a suitable VPS hosting option before opening the Forge server setup. The provider must offer a compatible Linux server, public network access, and SSH administration; do not assume that every VPS plan or operating-system image is supported by every Forge workflow.
How to connect an existing VPS to Laravel Forge
1. Confirm that you have the intended server
Write down the public IP address and SSH port of the VPS. Verify that the address belongs to the server you intend to modify. Provisioning changes system configuration, so connecting the wrong IP can disrupt another machine.
If you normally connect over SSH, test the same endpoint before adding it to Forge. For a nonstandard SSH port, the pattern is:
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →ssh -p PORT root@SERVER_IP
Replace PORT and SERVER_IP with the actual values. A successful test confirms that the SSH service is reachable from your current network, but Forge must also be able to reach it from its own service infrastructure.
2. Open Forge’s server creation workflow
From your Forge organization overview or Servers area, choose the option to create a server. Select the custom-server path when you are bringing an existing VPS rather than asking Forge to create a machine through an integrated provider.
Dashboard labels can change, so look for the choice that distinguishes a provider-created server from a custom or existing server. Do not look for a downloadable Forge installer for the target machine; the documented workflow is server creation or custom-server connection.
3. Enter the connection details
Enter:
- The VPS’s public IP address.
- The SSH port currently used by the server.
- The requested authentication details, such as the SSH key or other access information presented by the Forge workflow.
The SSH port is not automatically “always 22.” If you changed SSH to another port, enter that port in Forge and ensure the provider firewall, operating-system firewall, and SSH daemon all agree. A port mismatch is one of the most common reasons a connection cannot begin.
Rank #2
4. Provide the required privileges
Initial provisioning requires root-level access. Forge needs that authority to install and configure its supported system components and security controls. A regular unprivileged deployment user is not a substitute for the access Forge requires during this stage.
This is also the main trust decision in the process: Forge is not merely uploading your application. It is managing infrastructure-level settings on the server. Confirm that the server is disposable, backed up, or otherwise approved for management by the service before proceeding.
5. Let provisioning complete
Forge will configure the server according to the selected server type and supported services. The exact time and component list vary with the provider, network, server speed, operating-system image, and selections in the dashboard. Avoid making unrelated manual changes while provisioning is in progress.
Provisioning is complete when Forge reports the server as available rather than showing an active installation or failed task. If it fails, read the displayed error before retrying. Check the IP address, SSH port, authentication, provider firewall, operating-system firewall, and whether the server meets the selected workflow’s requirements.
What Forge changes during provisioning
The precise implementation can change, but the documented security behavior includes the following:
- Password-based SSH connections are disabled during provisioning.
- UFW is used to block ports by default.
- Ports
22,80, and443are explicitly opened in the standard security setup.
That means you should not assume that every port is open after provisioning. If your application needs another service, handle the requirement through Forge’s supported controls or a carefully reviewed customization, and understand the security consequences before exposing a port publicly.
After provisioning: add the application resources
Provisioning the server does not deploy your Laravel application. Once the server is available, use Forge to configure the resources your application needs:
Rank #3
- Create a site and associate it with the application’s domain or intended hostname.
- Select a PHP version through Forge’s PHP management controls.
- Add a database through the Databases area when your application needs one. Supported database choices documented by Forge include MySQL, MariaDB, and PostgreSQL options.
- Configure deployment so Forge can retrieve the code and run the required release commands.
- Add queues and scheduled tasks when the Laravel application uses workers, scheduled commands, or other background processing.
- Point DNS to the server and complete any TLS or domain configuration required by the site.
A deployment script is application-specific. It commonly updates the codebase, installs Composer or frontend dependencies, runs migrations where appropriate, clears or rebuilds caches, and performs other release tasks required by the application. Forge provisioning supplies infrastructure; it does not know every command your game, API, or Laravel application needs.
Free tools Windows power users keep installed
One-click scans. No signup required.
Can you manually install PHP or a database afterward?
You may be able to install software over SSH, but doing so can create configuration drift and may leave Forge unaware of the result.
PHP
Use Forge’s PHP management controls for PHP versions that Forge must recognize and manage. Forge documents that it is aware of PHP installations managed through the Forge dashboard, not PHP versions manually installed on the server. A manually added PHP version may therefore be usable at the operating-system level while remaining absent from Forge’s supported management view.
Databases
For supported database servers, prefer the corresponding Forge interface rather than installing a separate copy by hand. Forge documents database installation through the Databases tab, including MySQL, MariaDB, and PostgreSQL options. This keeps the resource within the management workflow and reduces the chance of conflicting packages, users, paths, or service definitions.
Other packages and services
Manual SSH changes can be appropriate for a deliberate, unsupported, or application-specific requirement, but document every change. Before installing a package or daemon, check whether Forge already manages the same component. Two management systems changing the same configuration can produce difficult-to-diagnose failures.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Use Forge Recipes for repeatable custom changes
If you need to run a Bash script on one or more Forge servers, use a Forge Recipe instead of keeping an opaque command sequence in a terminal session. Recipes are saved Bash scripts that can be run across servers; Forge gives installing MongoDB as an example use case.
A practical recipe workflow is:
- Write a narrowly scoped Bash script.
- Make its assumptions explicit, including packages, paths, service names, and operating-system requirements.
- Save it as a named Recipe in Forge.
- Review every command, especially package removal, firewall changes, user creation, and service restarts.
- Run it on a non-production server first.
- Record the result and keep the script under version control where practical.
- Run the reviewed recipe on additional servers only after confirming that their operating-system and software conditions match.
Recipes improve repeatability, but they do not make an unsafe script safe. A recipe can still overwrite configuration, open a network port, break a Forge-managed service, or fail halfway through. Include checks and make the script safe to rerun when possible.
Rank #4
Troubleshooting a failed connection or provisioning attempt
Forge cannot reach the server
- Check that the IP address is correct and belongs to the intended VPS.
- Confirm that the SSH daemon is running.
- Confirm the SSH port in Forge matches the server’s actual listening port.
- Review the provider-level firewall or security group.
- Review the server’s operating-system firewall.
- Check whether your provider restricts inbound SSH or blocks the source of the connection.
Authentication fails
- Confirm that the supplied key or credentials correspond to the intended account.
- Confirm that the account has the privileges required for initial provisioning.
- Do not assume that a normal application or deployment user can perform the initial setup.
- Check whether password-based SSH has already been disabled on the server.
The server becomes unavailable after provisioning
Check the provider console first so you retain an out-of-band recovery path. Then review the provider firewall, UFW rules, SSH port, and any custom changes made during or after provisioning. Do not repeatedly rerun provisioning without understanding the failed state; take a snapshot or backup before recovery work when possible.
A PHP version or service does not appear in Forge
Determine whether it was installed through Forge or manually. Forge may not recognize PHP versions installed outside its dashboard management. For supported software, remove the ambiguity by using the relevant Forge resource controls where possible.
Security checklist before you start
- Verify the server identity and public IP.
- Take a snapshot or backup if available.
- Confirm the SSH port and test access.
- Confirm that the provider and operating-system firewall allow the required connection.
- Understand that Forge uses root access for provisioning and system management.
- Do not manually change Forge-managed passwords or configuration unless the applicable Forge documentation explicitly permits it.
- Keep custom scripts reviewed and, where practical, version-controlled.
- Test Recipes and other infrastructure changes away from production first.
- Plan application deployment separately from server provisioning.
Can I install Laravel Forge on my own VPS?
Not in the usual self-hosted-control-panel sense. You do not normally install the Forge control plane onto the VPS. You connect the VPS to Forge as a custom server, after which Forge provisions and manages supported parts of that machine.
Does Forge need root access?
Yes, root-level access is required during initial provisioning. Forge needs it to configure operating-system services, firewalls, PHP, background processes, scheduled tasks, website isolation, and related dependencies. Treat the connection as a privileged infrastructure-management operation.
What SSH port does Forge use?
Forge uses the SSH port you provide for the server. Port 22 is the normal default, but a custom port is valid if the server, provider firewall, and Forge entry all use the same value. Standard provisioning opens port 22 along with ports 80 and 443 in the documented security setup.
Can I manually install PHP on a Forge server?
Manual installation may be possible, but Forge may not recognize or manage that PHP version. Use Forge’s PHP controls for versions that need to appear in the Forge dashboard or participate in its supported configuration workflow.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →How do I run a Bash script on every Forge server?
Create a Forge Recipe containing the script, review it, test it on a non-production server, and then run it on the appropriate servers. Make the script repeatable and account for differences between server operating systems and installed software.
How do I deploy Laravel without manually configuring Nginx and PHP-FPM?
Use Forge to provision the server and create the site, then configure the application’s deployment script. Forge handles the supported server resources; the deployment script still needs to retrieve the code, install dependencies, run migrations when appropriate, and perform your application’s release tasks.
Frequently Asked Questions
Can I install Laravel Forge on my own VPS?
No. Forge is a hosted management service rather than a control panel you normally install onto the target VPS. You connect an existing VPS as a custom server, or let Forge create one through a supported provider.
How do I connect an existing Ubuntu server to Laravel Forge?
Yes. Add the server through Forge’s custom-server workflow, then provide its public IP address, SSH port, and the authentication required for initial provisioning. Forge must be able to reach the server over SSH.
Recommended Free Tools
Does Laravel Forge need root access?
Yes. Forge requires root-level access during initial provisioning so it can configure system services, firewalls, PHP, background processes, scheduled tasks, and dependencies.
What SSH port does Forge use?
Forge uses the SSH port entered for the server. Port 22 is common, but a custom SSH port works when the server, provider firewall, and Forge configuration all match.
Can I manually install PHP on a Forge server?
Use Forge’s PHP management controls for versions Forge needs to recognize. Manually installed PHP versions may not appear in Forge’s management view.
How do I run a Bash script on every Forge server?
Create a Forge Recipe containing the Bash script, review it, test it away from production, and then run it on the required servers. Keep custom scripts repeatable and documented.
The Bottom Line
There is no normal “Forge installer” to upload to your VPS. Connect an existing server through Forge with its public IP, SSH port, and required root-level access, then let Forge provision it. Manage supported PHP and databases through Forge, use Recipes for repeatable custom changes, and treat application deployment as a separate step.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




