209 lines
3.4 KiB
Markdown
209 lines
3.4 KiB
Markdown
# Linux / SteamOS Build Upload Guide (SteamCMD)
|
|
|
|
This guide explains how to upload the **Linux / SteamOS** build of Nebula Browser to Steam using **SteamCMD**. It is tailored to the current project layout on Steam Deck / Linux.
|
|
|
|
---
|
|
|
|
## App & Depot IDs
|
|
|
|
* **App ID:** 4290110
|
|
* **Windows Depot:** 4290111
|
|
* **Linux / SteamOS Depot:** 4290112
|
|
|
|
This guide covers **Linux only (4290112)**.
|
|
|
|
---
|
|
|
|
## Current Folder Layout
|
|
|
|
Home directory layout expected by this guide:
|
|
|
|
```
|
|
/home/deck/
|
|
├── steamcmd/
|
|
│ └── steamcmd.sh
|
|
└── steam_build/
|
|
├── Nebula_SteamOS/
|
|
│ ├── nebula-browser
|
|
│ └── ...other runtime files...
|
|
├── output/
|
|
└── app_4290110.vdf
|
|
```
|
|
|
|
---
|
|
|
|
## Step 1: Verify Executable Permissions
|
|
|
|
The main Linux binary **must** be executable.
|
|
|
|
```bash
|
|
cd ~/steam_build/Nebula_SteamOS
|
|
ls -la
|
|
```
|
|
|
|
Identify the main binary (for example `nebula-browser`) and run:
|
|
|
|
```bash
|
|
chmod +x nebula-browser
|
|
```
|
|
|
|
Optional quick test:
|
|
|
|
```bash
|
|
./nebula-browser
|
|
```
|
|
|
|
---
|
|
|
|
## Step 2: App Build VDF Configuration
|
|
|
|
Ensure `app_4290110.vdf` exists at:
|
|
|
|
```
|
|
/home/deck/steam_build/app_4290110.vdf
|
|
```
|
|
|
|
Its contents should be **exactly**:
|
|
|
|
```
|
|
"AppBuild"
|
|
{
|
|
"AppID" "4290110"
|
|
"Desc" "Nebula SteamOS build"
|
|
"BuildOutput" "output/"
|
|
"ContentRoot" "."
|
|
"Preview" "0"
|
|
|
|
"Depots"
|
|
{
|
|
"4290112"
|
|
{
|
|
"FileMapping"
|
|
{
|
|
"LocalPath" "Nebula_SteamOS/*"
|
|
"DepotPath" "."
|
|
"recursive" "1"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Notes:
|
|
|
|
* `ContentRoot "."` maps to `/home/deck/steam_build`
|
|
* `Nebula_SteamOS/*` uploads everything inside that folder
|
|
* Depot **4290112** is the Linux / SteamOS depot
|
|
|
|
---
|
|
|
|
## Step 3: Launch SteamCMD
|
|
|
|
```bash
|
|
cd ~/steamcmd
|
|
./steamcmd.sh
|
|
```
|
|
|
|
You should now see:
|
|
|
|
```
|
|
Steam>
|
|
```
|
|
|
|
---
|
|
|
|
## Step 4: Log In
|
|
|
|
Inside SteamCMD:
|
|
|
|
```
|
|
login YOUR_STEAM_USERNAME
|
|
```
|
|
|
|
If Steam Guard is enabled, enter the code when prompted.
|
|
|
|
---
|
|
|
|
## Step 5: Upload the Linux Build
|
|
|
|
Inside SteamCMD, run **with full path** (no `~`):
|
|
|
|
```
|
|
run_app_build /home/deck/steam_build/app_4290110.vdf
|
|
```
|
|
|
|
Expected behavior:
|
|
|
|
* Content scan starts
|
|
* Files upload to depot 4290112
|
|
* A **BuildID** is printed on success
|
|
|
|
---
|
|
|
|
## Step 6: Exit SteamCMD
|
|
|
|
```
|
|
quit
|
|
```
|
|
|
|
---
|
|
|
|
## Step 7: Assign Build to a Branch (Required)
|
|
|
|
After upload completes:
|
|
|
|
1. Open **Steamworks**
|
|
2. Go to **Nebula Browser → Builds**
|
|
3. Find the new Build ID
|
|
4. Assign it to a branch (`internal`, `beta`, or `default`)
|
|
|
|
If this step is skipped, Steam Deck installs **0 bytes** even though upload succeeded.
|
|
|
|
---
|
|
|
|
## Common Issues
|
|
|
|
### App build file does not exist
|
|
|
|
* SteamCMD does **not** expand `~`
|
|
* Always use `/home/deck/...` absolute paths
|
|
|
|
### 0 bytes uploaded
|
|
|
|
* `LocalPath` is wrong
|
|
* Build not assigned to a branch
|
|
* Executable missing or filtered out
|
|
|
|
### Build installs but does not launch
|
|
|
|
* Binary not executable
|
|
* Missing runtime libraries
|
|
* Incorrect launch configuration in Steamworks
|
|
|
|
---
|
|
|
|
## Logs
|
|
|
|
If something fails, check:
|
|
|
|
```bash
|
|
tail -n 200 /home/deck/.local/share/Steam/logs/stderr.txt
|
|
tail -n 200 /home/deck/.local/share/Steam/logs/bootstrap_log.txt
|
|
```
|
|
|
|
---
|
|
|
|
## Notes for Steam Deck
|
|
|
|
* Test in **Desktop Mode** first
|
|
* Then test in **Gaming Mode**
|
|
* Steam Input and sandboxing differ between modes
|
|
* Avoid absolute paths inside the app
|
|
|
|
---
|
|
|
|
## Status
|
|
|
|
This process uploads **Linux / SteamOS depot 4290112 only**.
|
|
Windows builds should be uploaded separately using depot **4290111**.
|