Troubleshooting a failed install
DNS failures, service won’t start, database errors, and a wizard that says you’re already installed.
Troubleshooting a failed install
Work top to bottom. Most failed installs are DNS, database, or the Node service not running — not a mystery bug.
1. DNS
Symptom: buyer-setup.sh stops and complains about DNS.
Check: A record for your domain (and www if needed) points to this VPS. Wait for propagation. Re-run the script.
2. Unzip / path
Symptom: scripts/buyer-setup.sh not found.
Check: You should be in /var/www/xfileultra (or the path you chose) where scripts/ exists. Nested unzip folders are a common mistake.
3. PostgreSQL / Tables step
Symptom: Wizard cannot connect or Tables fails.
Check:
sudo systemctl status postgresqlRe-copy host, port, user, password, database name from the setup script output. Password typos are the usual culprit.
4. License step
Symptom: License rejected.
Check: Key copied correctly; VPS has outbound HTTPS; you are using a key for this product.
5. Service won’t stay up
Symptom: Site 502, or systemctl status xfileultra is failed.
Check:
sudo journalctl -u xfileultra -n 100 --no-pagerLook for missing .env, bad DATABASE_URL, or build errors. Fix the cause, then:
sudo systemctl restart xfileultra6. HTTPS / certificate
Symptom: Certificate errors in the browser.
Check: You are visiting the exact domain you installed, ports 80/443 are open, and Certbot completed for that name.
7. Wizard says already installed
Symptom: /install refuses a new run.
Meaning: data/install.lock or an admin already exists. This stops random visitors from re-running setup.
If the first attempt is half-broken, do not delete the database blindly on a production box. Take a backup first. Recovery often means fixing .env + migrations + admin password rather than a full wipe. A clean reinstall on an empty test VPS is a full rebuild only when you accept losing everything on that server.
8. Still stuck
Gather: domain, OS version, last 50 lines of journalctl -u xfileultra, and which step failed (script vs wizard vs first login). That is enough for support without a guessing game.