Skip to content
WebsitePanelStatus
NolayDocumentation
WebsitePanelStatus
SectionsGetting started: First project
Getting started
  • Section overview
  • What is Nolay
  • What is a VPS
  • Server requirements
  • Connecting a server
  • First project
Guides
  • Section overview
  • Domains and HTTPS
  • Secrets
  • Tunnel behind NAT
Concepts
  • Section overview
  • What is stored where
Reference
  • Section overview
  • Error codes
  • nolay.toml
Security
  • Section overview
Migration
  • Section overview
Troubleshooting
  • Section overview
Changelog
  • Section overview
Getting started
  • Section overview
  • What is Nolay
  • What is a VPS
  • Server requirements
  • Connecting a server
  • First project
Guides
  • Section overview
  • Domains and HTTPS
  • Secrets
  • Tunnel behind NAT
Concepts
  • Section overview
  • What is stored where
Reference
  • Section overview
  • Error codes
  • nolay.toml
Security
  • Section overview
Migration
  • Section overview
Troubleshooting
  • Section overview
Changelog
  • Section overview
  1. Documentation
  2. Getting started
  3. First project

First project

Deploy a project from GitHub, an archive, Git by URL or a ready-made image with a four-step wizard.

Markdown

After this page a project runs on your server. You need a connected server with the Online status.

The project wizard

Open the server in the panel and click New project. The wizard has four steps:

  1. Source. Where to take the code from and what to call the project.
  2. Detection. The agent fetches the code to the server and picks a builder, port and readiness check. You can change the result.
  3. Domain. The address the project opens at. Leave it empty to keep the project internal.
  4. Extras. Backups, a database next to it and protection. All of this can be turned on later.

Create and deploy starts the build. The deploy window shows the steps and the build log.

The new project wizard, Source stepThe new project wizard, Source step
The Source step: four ways to get the code. GitHub via the app becomes available after connecting GitHub in settings.

Code sources

GitHub via the app

Works for private and public repositories. Connect the Nolay app once in Settings, GitHub tab, and give it access to the repositories you need. In the wizard pick the repository and branch from the list.

After that every push to the chosen branch starts a deploy, and the deploy status shows up in GitHub next to the commit.

Public Git by URL

An open repository on GitHub, GitLab or your own server: give the address and branch. For a private repository by URL, set the project secret NOLAY_GIT_TOKEN (HTTPS) or NOLAY_GIT_SSH_KEY (an SSH key as a multiline value). Do not put a login or token in the address.

Archive

A .zip, .tar.gz or .tgz archive from your computer, without git, up to 200 MB. Leave node_modules, build directories and .git out: they are not needed, the build runs on the server.

The panel does not keep the archive: it passes through the hub to the agent and is deleted. For the next deploy the archive is uploaded again.

Existing image

An image from a registry, for example ghcr.io/org/app:1.2. There is no build, the agent pulls the image and runs it. The image must be pullable without logging in: private registries with a login are not supported yet.

How the image is built

The build always runs on your server. The default builder is auto:

  1. There is a Dockerfile in the root: build with it.
  2. The stack is recognized from the files: a Nolay template (Node.js, Next.js, Python, Go, Bun, Ruby, static) or Railpack.
  3. The stack is not recognized: a “stack not recognized” error; add a Dockerfile or pick a builder by hand.

All builders and fields are in the nolay.toml reference. A nolay.toml in the repository root takes priority over the panel form.

Check that the project runs

The project status in the panel is Running. Without a domain the project is reachable only inside the server. To open it in a browser, add a domain.

Troubleshooting

What you seeWhyWhat to do
Deploy failedThe build brokeThe last lines of the build log name the cause
Readiness check failedThe app did not answer on the portCheck the port in settings and that the app listens on 0.0.0.0
Code git_access_deniedNo access to the repositoryError reference
Archive larger than 200 MBDependencies or builds are insidePack only the sources

Next

Add a domain and HTTPS and set the secrets.

PreviousConnecting a serverNextGuides

On this page

  • The project wizard
  • Code sources
  • GitHub via the app
  • Public Git by URL
  • Archive
  • Existing image
  • How the image is built
  • Check that the project runs
  • Troubleshooting
  • Next
Updated 2026-09-23
Nolay

Nolay documentation: connecting your own server, deploys, domains, secrets.

Documentation

Getting startedReferenceChangelogllms.txt for AI

Product

WebsitePanelStatus
Nolay