Running a VPS without a control panel: what the panel did and how you do it by hand

VPS & Servers·· 4 views· 4 min read

This article is for people with a VPS or a dedicated server with root access who work from the command line. A panel is just an interface for a dozen tasks that exist on any server. The short answer: without a panel, you do those tasks with the system’s own tools. You get a lighter server, with fewer open ports and no licences; you lose the buttons and have to write down what you do, because no screen will remind you.

What the panel did, and what you use instead

Task Without a panel
Sites and domains One Nginx server block or Apache virtual host per domain: installing Apache and a virtual host and several websites on one VPS.
PHP and versions PHP-FPM, with one pool per site when you want to isolate sites from each other.
Databases MariaDB or MySQL from the command line; backups with mysqldump.
SSL certificates Certbot with Let’s Encrypt, which also schedules the renewal.
E-mail The hardest part. It is often better to keep mail with a separate service: why mail on a VPS is hard.
DNS At the registrar or with a DNS service: pointing a domain at your own VPS.
Firewall and access ufw or firewalld, SSH keys, fail2ban: installing fail2ban.
Backups A program such as restic, scheduled, with the copy off the server: encrypted backups with restic.
Files and FTP SFTP with the same SSH user; no FTP server needed.
Scheduled tasks crontab -e or systemd timers.

The order that works on a new server

1 Access first: a sudo user, an SSH key, no password login for root: creating a user with sudo and your first session on a new Linux VPS.
2 Firewall: open only SSH, 80 and 443 (and whatever your application needs): ports and firewall on a VPS.
3 Web server and PHP: pick one (Nginx or Apache), install it and test the configuration before every reload: sudo nginx -t
sudo systemctl reload nginx
4 Database: one user per application, with rights on its own database only, and never the database port open to the internet.
5 Certificate: with the domain already pointing to the VPS IP, request it and confirm the renewal is scheduled: sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run
6 Backups and updates: schedule backups, test a restore and switch on automatic security updates: updating a Debian or Ubuntu VPS.
7 Write everything down in a file kept off the server: domains, folders, databases, scheduled tasks, open ports. It is the “panel” you will look at six months from now.
Without a panel, nobody tells you something stopped. A certificate that did not renew, a disk filling up or a backup failing silently are only seen if you look. Schedule checks and read the logs now and then: seeing what uses CPU, memory and disk.
If you come from cPanel, the list of what the panel did for you is in moving from shared hosting to a VPS. Read it before switching off the old service.

Running the VPS without a panel and want to check your plan before starting? Tell us what will run on it.

Open a support ticket

SEE ALSO

Choosing a control panel for your VPS: what to decide before you install one

Moving a site from shared hosting to a VPS: what changes when you run the server

Nginx or Apache on a VPS: which web server to choose

How to host several websites on one VPS

Encrypted backups of a VPS with restic: a first repository, a schedule, a test restore

Keeping your VPS or dedicated server secure: the six that matter

RECOMMENDED PRODUCT

VPS server with root access

Resources of your own, the OS you choose, reinstall whenever you like. from $8.39/mo (3-year plan, with coupon)

See plans
Was this answer helpful? Your answer helps us improve this article.