Deploy your first site in ten minutes

llms.txt

This is the shortest route from nothing to a site on the internet. You will create a site on a server, run its first deployment, read the log and check the site is live. Everything here is explained in depth elsewhere; this page links to those articles at the point where you may want more.

The example is a Laravel application from a Git repository, on a free srvy.sh address so that you need no domain or DNS yet. The same steps apply to other site types, with a few fields added or removed.

Before you begin

1. Check you have a Ready server

Open Servers in the sidebar.

The Servers list
You need one Ready server before you can create a site.
  1. Add server. Starts the create flow if you have none yet.
  2. Ready. The status you want. Installing means SrvYard is still setting the machine up; Disconnected means it cannot log in (see The server will not connect).

Only a server that runs Nginx can host sites: app and web servers do; database and cache servers do not.

2. Create the site

Open Sites, press New site and choose Laravel (or the type that matches your app). The form is described in full in Create a site on your server.

The Laravel site form
Pick a server, point at a repository and choose a free name.
  1. Server. The machine the site will live on. The form lists servers that are not ready in brackets and does not let you choose them.
  2. Source control. Custom Git URL suits a public repository or any host. Git provider uses a connection you made earlier, and No repository gives a placeholder page, but a site created without a repository cannot get one later.
  3. Git URL. The address to clone. The Branch next to it defaults to main.
  4. Subdomain. A free name under srvy.sh. SrvYard checks it as you type and says whether it is available. Press Generate another for a random one.
  5. Create site. Saves the site.

Leave Install Composer dependencies on for a Laravel app that has a composer.lock, and leave Push to deploy off for now: you will turn it on once the first deployment works.

SrvYard takes you to the site page. It shows Creating, then Installing, with a progress bar, then Ready. With a repository, the first deployment starts by itself.

3. Watch the deployment

Open the site's Deployments tab.

The Deployments tab
Deploy now starts a deployment; the history lists every one.
  1. Deploy now. Starts a deployment of the branch on demand. Use it any time you want the latest code live.
  2. Push to deploy. Makes every push to the branch start a deployment. Turn it on once you trust the deploy script (Push to deploy with webhooks).
  3. History. Every deployment: its status, the commit and author, what triggered it (Push, Manual, API, Deploy hook), the release folder, when it started and how long it took. The newest one that is live is marked Live.

Press the row menu of a deployment and choose View deployment to read its log.

4. Read the log

A finished deployment
Read the log from the top; a failure is always on the last step shown.
  1. Deployment details. The commit, hash, author, branch, trigger, start time, duration and release name, and whether a rollback is possible.
  2. Running the deploy script. The commands from your deploy script, each preceded by $: composer install, php artisan migrate --force, php artisan optimize and so on. You can edit the script (Write and test a deploy script).
  3. Deployment finished. The last line of a successful run. The log also shows the switch to the new release and the PHP-FPM reload.

If a deployment fails, its status says Failed and the log stops at the command that failed. A deployment failed lists the usual causes.

5. Check the site is live

Go back to the site's Overview and press Visit site.

A Ready site overview
A Ready site, with the domains that point at it.
  1. Ready. The site is installed and serving.
  2. Visit site. Opens the first domain in a new tab.
  3. Points here. On the Domains card, each hostname shows whether its DNS record reaches your server. A free srvy.sh name is set up for you, so it should say so within a minute or two.
Tip

Once the free address works, add your own domain and a certificate: see Add a domain, a free subdomain and DNS records and Get a free Let's Encrypt certificate. Then work through Before you go live: a launch checklist.

Why it takes ten minutes

Most of the time goes to waiting, not clicking. A new cloud server needs several minutes to boot and install its software, and the first deployment downloads your dependencies. If you already have a Ready server, the site itself takes about two minutes to create and a minute or two to deploy. Do the slow things first: start provisioning a server, then connect your repository while it installs.

Two habits make later deployments painless. First, keep the deploy script in step with your application: if you add a build step such as npm run build, put it in the script (Build front-end assets with Vite, npm and pnpm). Second, deploy small changes often, so that when something breaks you know which commit did it, and you can roll back to the previous release (Zero-downtime releases and rollbacks).

What you have now

A Linux user and folder for the site, a PHP-FPM pool, an Nginx configuration, your code in a release folder with the current link pointing at it, a log of the deployment and a site you can redeploy with one button. Environment variables are edited on the Environment tab, scheduled work on Scheduler and queue workers on Processes.

If you want a database

If your application needs one, install a database engine on the server first (Services > Install service, or choose one when you create the server), then switch on Connect to database on the site form. SrvYard creates a database and user and writes the connection details into the site's environment, so the first deployment can run migrations. Create a database and a user covers the details, including what to do if you add a database after the site exists.

Troubleshooting

  • The server is not in the list. It is not Ready or does not run Nginx. Check its status on Servers.
  • Create site is disabled. Look for the site limit warning, a server that is not selected or a subdomain that is still being checked.
  • The first deployment failed. Open the log. A missing .env value, a failed migration or composer install without a lock file are the usual reasons. Fix it, then press Deploy now.
  • The page shows the placeholder, not my app. The deployment has not finished, or no repository was set. Check the Deployments tab.
  • The browser cannot find the address. The name needs a minute to resolve. Look for Points here on the Domains card.
  • HTTPS shows a warning. A certificate is issued after the name resolves. See A certificate failed.
Last updated 2026-10-247 min readNeed help? Contact support