logo

Perforce on Dev Stream Labs

Dev Stream Labs hosts a Perforce Helix Core server for your project, right next to the build farm that builds it. This guide covers everything you can do with it: creating the server, bringing an existing one across, pulling your own backups, and starting builds on every submit. Every host, address and fingerprint you see here is example data for a fictional project called starfall.

What you get

One Perforce service per project, on the Free plan or the Team plan. When it is ready you have a p4d reachable only over TLS, an administrator account under a name you chose, and, on the Team plan, a standby server and Helix Swarm for code review. Two optional flows attach to it: a self-service backup endpoint you pull from, and a check-in trigger that sends each submit to Build Stream. Build Stream itself, the service that turns those submits into builds, has its own guide.

What a Perforce service includes and where each part appears in the app
What it isWhere you find it
Perforce serverA p4d, TLS only, on the port shown on your connection card. The Team plan adds a standby for failover.Source Control Hosting → Server Configuration
A planFree (5 people, 20 workspaces, 80 GB) or Team (6 to 23 people, billed monthly). The app labels Team Paid.Chosen on the create form; shown on the People panel
Administrator accountThe Perforce account you name when you create the server (sam in this guide). A full member of the team: your own day-to-day work, plus adding people and setting permissions in P4Admin. Its temporary password is emailed to the project maintainer once and must be changed at first sign-in.The Perforce is ready email
Helix SwarmCode review, on the Team plan. Turn it on with a switch; sign in with your Perforce account.The Code review (Swarm) card on the hosting page
Backup & exportA read-only endpoint locked to one address; you run the copy.Source Control Hosting → Backup & Export
Build on check-inA switch. On, every submitted changelist is posted to Build Stream. On the Free plan it uses one of your 5 people while it is on.The Build on check-in card on the hosting page

Choose your path

The four flows are independent. Pick the one that matches your situation; you can come back for the others.

Migration and export are opposites

Both involve rsync and an SSH key, and they are easy to confuse. They move data in opposite directions and the roles are reversed. Check this table before you start either.

Bring an existing server across Back up and export your data
Use it whenYou already run Perforce elsewhere and want to move onto our platform.Your Perforce server runs on our platform and you want your own off-site copy.
Data movesFrom your current server to your new server here.From your server here to your backup machine.
Who runs rsyncWe do.You do, with a command we generate.
Whose SSH keyOurs. You install its public half on your current server.Yours. You paste its public half into the app.
When it is availableOnly when the server is created, by choosing Bring my server across.Any time, on a live server.
It ends withA live server here, adopted from your data.A standing endpoint and a restorable copy on your machine.

The reliable tell: a screen about installing our key on your server is migration. A command you run against our server is export.

Words this guide uses

Terms used throughout the guide
TermMeaning
P4PORTThe address a Perforce client connects to. Hosted servers are TLS only, so it always starts with ssl:, for example ssl:p4.starfall.northwind.example.com:1031.
SSL fingerprintThe server certificate's fingerprint, shown on the connection card and in the ready email. You compare it when you first connect (p4 trust). If it does not match, you are not talking to your server.
dsl_adminOur operator account on your server, used to look after it: checkpoints, backups, verification and restarts. It cannot read your files, takes none of your seats, and its password is never shared.
People, seatsA person is a standard Perforce user on your server. The Free plan holds 5; on the Team plan you buy a number of seats and can change it. The app counts them on the People panel.
Free, Team, PaidThe two plans. The app calls the Team plan Paid; this guide says Team except when quoting the app.
Recorded, then appliedSaving a setting in the app records what you asked for. A background pass then applies it to the live server, usually within a minute. The page shows the setting as pending until that happens. A save that succeeded is a request that was accepted, not a change that is finished.
Estimated progressTransfer percentages are estimates. rsync discovers files as it goes, so the total can grow while a copy runs.
Project maintainerThe person whose email address is on the project. Provisioning emails, including the admin password, go to them.

Where things live in the app

Perforce is added to a project as the Source Control Hosting service. Once it is ready, a Source Control Hosting section appears in the project sidebar with two pages. Server Configuration is where the server is created and where, in this order, its connection card, the Build on check-in card, the Code review (Swarm) card, the People panel and, on the Team plan, the Billing panel live. Backup & Export is its own page.

The project sidebar with the Source Control Hosting section expanded, showing Server Configuration and Backup & Export.
The Source Control Hosting section appears in the sidebar once the service is ready.

If your project does not have the service yet, add it from the sidebar's Add a Service button (the one with the plus icon), or tick Source Control Hosting on the Services step of the Add Project dialog. Its card reads: Adds Source Control → Hosting to your project. You'll create your Perforce server there, free or paid, once the project is ready.

The Source Control Hosting card on the Services step of the Add Project dialog, with its description and an unticked checkbox.
Adding Source Control Hosting when you create a project.

The pages in this guide

Something out of date or unclear? Email support@devstreamlabs.com.