FAQ
Frequently asked questions about Lift CLI covering server requirements, security, domains, rollback, and more.
FAQ
What servers does Lift support?
Any Linux server with SSH access, Docker, Docker Compose, and Git. Lift has been tested on Ubuntu 22.04+, Debian 12+, and Alpine. Run lift doctor to verify compatibility.
Does Lift require root access?
The default user is onelift, but you can use any user with sudo docker access (e.g., root). On the server, Lift runs Docker commands with sudo.
What happens to my server if I stop using Lift?
Nothing changes. Your Docker containers keep running. There is no agent, daemon, or background process. You can manage containers directly with docker commands.
Can I use Lift with an existing Traefik setup?
Yes. Set network to your existing Docker network and entrypoint to match your Traefik config. Lift will not deploy its own Traefik instance.
How does rollback work?
On every production deploy, Lift tags the current image as prev1 (and shifts prev1 to prev2, etc., up to prev5). If the health check fails, the prev1 image is automatically restored.
Can I deploy to multiple servers?
Each .lift.json targets one server. For multi-server deploys, maintain multiple config files and use lift push from each project directory, or use the --server flag for ad-hoc operations.
What is Nixpacks?
Nixpacks is a zero-config build tool that automatically detects your language and framework. If no Dockerfile or compose.yml is found, Lift uses Nixpacks as a fallback to build your application.
Is there a maximum number of previews?
Yes, 5 concurrent preview deployments per application. This prevents resource exhaustion on the server. Stop old previews with lift push --stop <branch>.
How do I add a domain after initial setup?
Currently, domain management is done through .lift.json. Edit the file and add the domain, network, and entrypoint fields, then run lift push to redeploy with Traefik labels:
// .lift.json
{
"domain": "app.example.com",
"network": "onelift",
"entrypoint": "websecure"
}
Important: Traefik must be running on the server. If you initialized without a domain, Traefik was not installed. Run
lift init --force --domain app.example.comto set up Traefik, or install it manually. Make sure your domain's DNS A record points to your server IP before deploying.
How are environment variables secured?
Env files are stored at /opt/lift/envs/ with chmod 600 (owner-only read/write) and chown root:root. Backups are created before every write. The env list command shows only keys, never values.