Headless Linux
Diagnose startup
Use this appendix only if normal Coinbase startup fails on a Linux server without a graphical session. Although awal is a CLI, it starts an Electron application that needs a display and a working sandbox.
Run as your normal user, without sudo. Inspect the error before reinstalling packages.
wallet_dir="${XDG_DATA_HOME:-$HOME/.local/share}/awal-nodejs/server"
STARTED_BY_CLI=true WALLET_STANDALONE=true \
"$wallet_dir/node_modules/.bin/electron" "$wallet_dir/bundle-electron.js"Expected result
Identify a missing display or an AppArmor user-namespace denial before applying the corresponding remedy. Other errors need their own diagnosis.
Supply a virtual display
If the host has no display, install Xvfb and xauth once. Xvfb supplies an invisible display; a physical GPU is not required.
sudo apt-get update &&
sudo apt-get install --no-install-recommends xvfb xauthExpected result
The packages install successfully. Stop on an installation error.
Check AppArmor
Apply an AppArmor exception only after confirming an Electron user-namespace denial. Ask your administrator if you do not manage the host.
sudo journalctl -k -b --no-pager \
--grep='apparmor="DENIED".*(userns|electron)' -n 20Expected result
Look for a matching AppArmor denial. Do not add an exception solely because the wallet failed to start.
Permit the wallet sandbox
An administrator can add a profile for the exact Electron executable. This grants user-namespace access to code run through that binary; it is not a full confinement policy.
If a profile already exists, ask the administrator to review it rather than add another. Otherwise run this as the wallet user; sudo only writes and loads the system profile. Keep Electron's sandbox enabled.
wallet_dir="${XDG_DATA_HOME:-$HOME/.local/share}/awal-nodejs/server"
wallet_electron="$wallet_dir/node_modules/electron/dist/electron"
if [ -x "$wallet_electron" ]; then
sudo sh -c 'set -C; cat > /etc/apparmor.d/awal-wallet-electron' <<EOF &&
abi <abi/4.0>,
profile awal-wallet-electron "$wallet_electron" flags=(default_allow) {
userns,
}
EOF
sudo apparmor_parser -a /etc/apparmor.d/awal-wallet-electron
else
printf 'Wallet Electron executable not found: %s\n' "$wallet_electron" >&2
fiExpected result
Successful loading is normally silent. Stop on errors. To remove this exception later, stop the wallet, unload the profile with sudo apparmor_parser -R /etc/apparmor.d/awal-wallet-electron, then have the administrator remove that file.
Keep Terminal 1 running
Run without sudo and leave Terminal 1 open while using the wallet. This starts no permanent service and does not configure startup after reboot.
wallet_dir="${XDG_DATA_HOME:-$HOME/.local/share}/awal-nodejs/server"
xvfb-run -a -s '-screen 0 1280x720x24 -nolisten tcp' \
env STARTED_BY_CLI=true WALLET_STANDALONE=true \
"$wallet_dir/node_modules/.bin/electron" "$wallet_dir/bundle-electron.js"Expected result
The wallet application stays running. A GPU-process message alone is not proof of failure; verify CLI status from Terminal 2.
Continue in Terminal 2
Open another terminal on the same host as the same user. Use Terminal 2 for login, funding and purchase while Terminal 1 remains running.
Electron on headless systems · Ubuntu user-namespace profiles
npx [email protected] statusExpected result
Status reports Running. Return to email sign-in. If startup exits or status fails, inspect the startup error before continuing.