New Project (Library)
The source picker that starts every deployment — upload a folder, import a GitHub repo, paste a Git URL, pick a template, or adopt an existing server.
This screen is where every new deployment begins. When you press New Project in the dashboard you land
on the Library page (route /library), titled New Project with the subtitle "Import a repository, paste
a URL, or start from a template". Its job is simple: pick where your code comes from, and Alaf Server hands
you off to the deploy wizard (/deploy/...) with everything pre-filled.
Think of this page as the front door with five doors behind it — each tab is a different way to bring code in. Whichever you choose, they all end in the same place: the wizard where you confirm the framework, choose where it runs, and press Deploy.
Screenshot
/library — the header "New Project", the row of tabs, the source panel on the left, and the overview sidebar on the right. (screenshot pending)The five tabs
The tab row sits just under the page title. The GitHub tab is selected by default. The last tab (Existing server) only appears on self-hosted and desktop installs — Alaf Server Cloud has no server inventory to adopt from.
| Tab | Icon | What it's for |
|---|---|---|
| Folder | folder-up | Deploy from a folder — uploaded from your browser, or read straight off disk on the desktop app. |
| GitHub | github | Browse and deploy the repositories on your connected GitHub account. |
| Git URL | link-2 | Paste a public GitHub repo link — no account connection needed. |
| Template | sparkles | Start from a ready-made starter for a framework. |
| Existing server | boxes | (self-hosted only) Adopt a Docker/Compose app already running on your own machine. |
On the right of every tab is the Overview sidebar — repo counts and a "Quick Tip" — plus your GitHub / Cloud connection status. It's informational; the action is always on the left.
Folder
Deploy an app from a folder, no Git required. This tab behaves differently depending on how you're running Alaf Server:
- Desktop app — you get the Local Projects panel. Point Alaf Server at a folder on your machine (drop it or type the absolute path, then Scan), it auto-detects the framework, and builds and runs the app locally. No upload happens — the local pipeline reads the folder in place.
- Browser (Alaf Server Cloud or a remote self-hosted instance) — you get the Folder upload flow. A browser
can't see your filesystem, so Alaf Server first asks "What are you deploying?" and shows a grid of stacks to
pick from (this fixes the build image). Then you drop or browse to your project folder — it's packed in your
browser (skipping
node_modules,.git, and build output), uploaded, and you continue to the wizard.
Screenshot
Full walkthrough
See Deploy a local folder for the desktop picker, the browser upload, and the one-command CLI equivalent.
GitHub (Repositories)
The default tab. If your GitHub account isn't connected yet, you'll see a connect prompt here instead of a list — connect once and the repos appear. (Follow Deploy from GitHub for the one-time connection.)
Once connected, this panel lists your repositories with tools to find the right one:
- An account row at the top to switch between the GitHub owners/orgs you've granted, plus a + to add another account.
- A search box (
Search repositories...). - Visibility pills: All, Public, Private.
- A sort dropdown: Recent, Name, Stars.
Click any repository and Alaf Server takes you straight into the deploy wizard for it.
'Local only' badge
A repo tagged Local only is visible through the gh CLI but the Alaf Server GitHub App isn't installed on its
owner — so it can build locally, but remote deploys will be refused. Install the App on that owner (the
Install GitHub App action) to enable remote deploys.
Screenshot
Git URL
For deploying a public repository you don't own or haven't connected. The panel is Import from Git URL:
paste a URL like https://github.com/username/repository and press Import Repository. No GitHub connection
is required. Alaf Server parses the owner and repo from the link and sends you to the wizard.
Public repos only
This path clones over the public URL. For private repositories, use the GitHub tab so Alaf Server can authenticate. See Deploy from a template or Git URL.
Template
A grid of framework starters. Pick a framework and Alaf Server opens the wizard seeded from that template — a fast way to get a working project online without bringing your own code first. (The plain "static" option is omitted here.)
Screenshot
See Deploy from a template or Git URL for what each starter includes.
Existing server
(Self-hosted and desktop only.) This tab is for adopting a deployment you're already running — the card is titled Existing Docker server, described as "Migrate a running Docker or Compose deployment into Alaf Server." Press Migrate Docker to open the migration wizard, which connects over SSH to your box, inspects the running containers, and brings them under Alaf Server's management.
Needs SSH to your own machine
Adoption reads containers off a server you control, so it isn't available on Alaf Server Cloud. If you want to add a fresh machine instead of adopting one, see Connect your own server.
Screenshot
What happens next
Every tab leads to the same place — the deploy wizard at /deploy/..., where you confirm the detected
framework, choose where the app runs (Local, Server, or Cloud), and press Deploy.