antihq/fuse
Deploy Laravel to production

Fuse provisions VPS servers and deploys Laravel applications. You run one-liner commands on your own server over SSH. No agent, no daemon, no API connection from Fuse to your infrastructure. You copy a wget command, paste it into your terminal, and the server is ready.

Requirement
Fresh Ubuntu 24.04 VPS
Access
Root SSH
DNS
A record pointing to server IP
Repository
Git HTTPS or SSH URL
Agent
None — signed URLs only
Cost
Free
How it works

1. Register server

Provide the server's public IP address. Fuse generates a signed provisioning script URL. SSH into your server as root and run the command.

Installs Caddy, PHP 8.2–8.5, Composer, Node.js, Supervisor. Creates a fuse user. Authorizes your SSH keys. ~2 min on fresh Ubuntu 24.04.

2. Add site

Point your domain's DNS A record to the server IP. In Fuse, provide the domain, Git repository URL, and PHP version.

Clones the repo, installs Composer/npm deps, runs migrations, builds assets, configures Caddy with automatic TLS, health check. Reports status back via signed callback.

3. Ship

Your site is live. Redeploy with a new one-liner when you push changes. Enable queue workers. Edit environment variables directly on the server. Fuse tracks deployment status but never connects to your server on its own — every action is initiated by you, from your terminal.

After deploying, additional commands are available: redeploy-script , queue-supervisor-script , destroy-script . Each is a signed URL generated on demand. Edit .env directly, then php artisan config:cache .

Stack
Web server
Caddy — automatic TLS, no certbot
PHP runtime
PHP-FPM 8.2, 8.3, 8.4, or 8.5
Database
SQLite only — no MySQL, no Postgres
Queue
SQLite driver, Supervisor daemon
Cache
File cache — no Redis
Process manager
Supervisor
OS
Ubuntu 24.04 LTS
Node.js
Installed via provision script

SQLite handles tens of thousands of daily users for most Laravel applications. No separate database server to tune, replicate, or back up. The file is on disk.

No Redis, no MySQL, no containers, no orchestration. Caddy handles TLS automatically. Supervisor keeps queue workers alive.

Most web apps never outgrow this stack. When they do, you'll know — and you can migrate on your own terms.

Provisioned directory structure: /home/fuse/{domain}/ for each site, /etc/caddy/sites.caddy for web server config, /etc/supervisor/conf.d/{domain}-worker.conf for queue daemons.

Approach
Signed URLs, not agents
Fuse generates time-limited, cryptographically signed URLs for scripts. Nothing runs on your server unless you invoke it.
One-liner commands
Every operation — provision, deploy, redeploy, queue supervisor, destroy — is a single wget | bash you copy and paste into SSH.
Your server, your access
SSH in anytime. No proxy connections, no tunnels. The server is yours.
Multi-team
Teams with owner, admin, and member roles. Invite collaborators. Each team manages its own servers and sites.
Free
No billing. No usage limits.
Start deploying