We host and deploy the applications we build on our own Linux servers — and we can do the same for yours. The pipeline running this site is the same pattern we set up for clients: automated builds, atomic releases and a rollback that's one symlink away.
What we set up
- Server provisioning — Ubuntu/Debian, Nginx + PHP-FPM, per-site PHP versions, MySQL, Redis.
- Deployment pipelines — GitHub Actions building, testing and shipping releases; a failed deploy rolls back instead of leaving the site half-updated.
- TLS and security — Let's Encrypt with auto-renewal, firewall, fail2ban, isolated site users.
- Operations — logrotate, monitored cron, uptime and error alerts, automated off-site backups.
What a deploy looks like
Every release lands in its own directory; switching to it is an atomic symlink swap. If the health check fails, the symlink points back — the site never serves a half-deployed state. The last five releases stay on the server.
A typical site config
server {
listen 443 ssl http2;
root /var/www/app/current/public;
location / {
try_files $uri /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
include fastcgi_params;
}
}
Nginx + PHP-FPM 8.3 — the boring, well-understood foundation under everything we run.
If your site lives on a server nobody has logged into for a year, or deployments mean "upload files and pray" — we can put it on solid ground.