How to Install aaPanel on Ubuntu 24.04 VPS: Free LNMP/LAMP Control Panel
Running a modern web stack on a VPS used to mean hours of apt install, config files scattered across /etc, and manual TLS renewals at 2 AM. aaPanel turns all of that into a point-and-click workflow. This guide walks you through installing aaPanel on an Ubuntu 24.04 VPS, from the single install command to deploying WordPress, automating Let's Encrypt, and hardening the control panel for production.
Skip the setup? Deploy aaPanel in one click with our pre-configured image. Launch a CloudCore Starter VPS now and have your control panel online in under 60 seconds.
Table of Contents
What is aaPanel?
aaPanel is a free, open-source web hosting control panel that provides a graphical interface for managing Linux servers. It is the international edition of BT Panel (宝塔面板), one of the most widely used control panels in Asia, and now ships with full English localization, an active international community forum, and a plugin ecosystem with over 100 one-click applications.
Think of aaPanel as a graphical replacement for the dozens of CLI tools you would otherwise string together: Nginx or Apache for the web server, PHP with FPM pools, MariaDB or MySQL for the database, phpMyAdmin for database administration, Pure-FTPd for FTP, Redis and Memcached for caching, and Fail2ban for intrusion prevention. Install any of these with a single click, configure them from the browser, and monitor resource usage with real-time charts.
The App Store is the real force multiplier. One-click installers are available for WordPress, NextCloud, Joomla, Drupal, Magento, PrestaShop, Ghost, Laravel, Discourse, Mautic, and many more. Each installer handles the database creation, configuration file generation, file permissions, and PHP extension requirements, which normally take 20-30 minutes of manual work per app.
aaPanel is used in practice for shared hosting on a single VPS (host dozens of client sites with isolated directories, databases, and FTP users), rapid agency deployments (spin up a staging WordPress in 90 seconds), developer sandboxes (switch PHP versions per site with one dropdown), and self-hosted SaaS stacks (run Mautic, NextCloud, and a Ghost blog side by side on a EUR 5 VPS).
Why Choose aaPanel Over cPanel or Plesk?
Control panel choice comes down to cost, performance, and flexibility. Here is how aaPanel compares to the two commercial incumbents:
- Free forever -- aaPanel has no per-account licensing. cPanel pricing starts at around USD 24.99/month for up to 5 accounts and scales sharply; Plesk starts around USD 14/month with tiered account caps. Over a year, aaPanel saves USD 150-500+ per VPS.
- Lightweight footprint -- aaPanel idles at roughly 200-300 MB of RAM. cPanel's recommended minimum is 4 GB of RAM just for the panel process. This means aaPanel runs comfortably on a 1 GB VPS while cPanel effectively requires 4 GB or more.
- Full sudo access -- Unlike locked-down commercial panels, aaPanel never fights you for control of the underlying system. You can edit any config file, install any package, and drop to the shell without voiding support.
- App Store with one-click installs -- The App Store covers mainstream CMSes, ecommerce platforms, marketing tools, and developer stacks. cPanel's Softaculous is excellent but is a paid add-on on most hosts.
- Multi-PHP made easy -- Install PHP 7.4, 8.1, 8.2, and 8.3 side by side. Assign a different version per website from a dropdown. Toggle extensions without touching
php.ini. - Open source and auditable -- The installer and core panel code are available on GitHub. No opaque licensing server, no phone-home checks that can brick your panel.
aaPanel vs cPanel vs Plesk at a Glance
| Feature | aaPanel | cPanel | Plesk |
|---|---|---|---|
| Monthly license cost | Free | ~$24.99+ | ~$14+ |
| Minimum RAM | 512 MB (1 GB recommended) | 4 GB | 2 GB |
| One-click app installs | Built-in, free | Softaculous (paid) | Built-in |
| Multi-PHP versions | Yes, free | Yes (EasyApache) | Yes |
| Full root/sudo access | Yes | Restricted | Restricted |
| Docker management UI | Yes | No | Paid extension |
| Let's Encrypt automation | Yes, free | Yes, free | Yes |
| Typical cost at 10 sites | EUR 7.99/mo (VPS only) | ~$30/mo (license + VPS) | ~$25/mo (license + VPS) |
Prerequisites
Before you begin, make sure you have:
- A VPS running Ubuntu 24.04 LTS with root or sudo access (aaPanel also supports Debian 11/12, CentOS 7/8, and AlmaLinux)
- SSH access to your server (PuTTY on Windows, or the built-in terminal on macOS/Linux)
- At least 1 GB of RAM (2 GB+ recommended if you plan to run WordPress, MariaDB, and Redis together)
- At least 10 GB of free disk space for the panel, Nginx, PHP, MariaDB, and one or two websites
- A clean system -- aaPanel should be installed on a fresh OS. Running it alongside an existing LAMP stack or another control panel will fail
Recommended Plan: CloudCore Starter>
For hosting 5-15 standard WordPress sites with Redis caching and daily backups, we recommend the CloudCore Starter plan:>
- 4 vCPU cores
- 6 GB RAM
- 100 GB NVMe SSD
- Unmetered bandwidth
- Starting at EUR 7.99/month>
This gives you enough headroom for aaPanel itself, an LNMP stack, Redis, multiple PHP-FPM pools, and comfortable traffic spikes. For a single low-traffic site, our 1 GB entry plan works fine too.
Connect to your server via SSH to get started:
ssh root@your-server-ipStep 1: Update System Packages
Start by updating your package index and upgrading installed packages. A fresh, fully-patched system avoids dependency conflicts during the aaPanel install.
sudo apt update && sudo apt upgrade -yExpected output (abbreviated):
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Reading package lists... Done
Building dependency tree... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.Install a handful of tools the aaPanel installer expects:
sudo apt install -y wget curl tar unzipIf your kernel was updated, reboot before continuing:
sudo rebootThen reconnect via SSH after a minute.
Step 2: Run the aaPanel Installer
aaPanel ships a single install script that handles everything: downloading the panel code, installing the Python runtime it uses, creating a systemd service, and opening the default panel port.
Run the official installer:
wget -O install.sh https://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh aapanelYou will see a confirmation prompt:
+----------------------------------------------------------------------
| aaPanel FOR Ubuntu Installer
+----------------------------------------------------------------------
Do you want to install aaPanel to the /www directory now? (y/n):Type y and press Enter. The installer will:
/www/server/panel/etc/systemd/system/bt.serviceThe full install typically takes 2-4 minutes depending on your network speed. You will see a running progress indicator and several package installation logs.
Step 3: Capture Your Panel URL and Credentials
When the installer finishes, it prints a block that looks like this. Copy it somewhere safe immediately — the random port and password are generated once and shown only on stdout:
==================================================================
Congratulations! Installed successfully!
==================================================================
aaPanel Internet Address: https://203.0.113.42:8888/a1b2c3d4
aaPanel Internal Address: https://10.0.0.5:8888/a1b2c3d4
username: zk9mxv7p
password: X7hQ2nP8vL4mR6wT
==================================================================Three important details:
- Port
8888is the default panel port, but the trailing path (/a1b2c3d4in this example) is a randomized security entry. Visitinghttps://your-ip:8888/without it returns a 404. - The username is a randomly generated 8-character string, not
adminorroot. This prevents brute-force attempts against common usernames. - The password is a one-time random 16-character string. If you lose it, reset with
sudo bt defaulton the server.
sudo bt defaultExpected output:
==================================================================
aaPanel default info!
==================================================================
Internet panel address: https://203.0.113.42:8888/a1b2c3d4
Internal panel address: https://10.0.0.5:8888/a1b2c3d4
username: zk9mxv7p
initial password: X7hQ2nP8vL4mR6wT (if you have not changed the password)Step 4: Open the Firewall
The panel runs on a random high port (typically 8888, but sometimes different if 8888 is in use). You need to allow it through both the OS firewall and any cloud provider firewall.
Ubuntu UFW
If UFW is active, allow SSH and the panel port:
sudo ufw allow 22/tcp
sudo ufw allow 8888/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 21/tcp
sudo ufw allow 888/tcp
sudo ufw enable
sudo ufw statusPort reference:
- 22 -- SSH
- 80 / 443 -- HTTP and HTTPS for your hosted sites
- 888 -- phpMyAdmin default port
- 8888 -- aaPanel itself (or whatever random port was assigned)
- 21 / 39000-40000 -- FTP control and passive range (only if you plan to use FTP)
Cloud Provider Firewall
If you are running on Contabo, Hetzner, OVH, or another provider with an external firewall, add the same rules in the cloud control panel. A common pitfall is opening the port in UFW but forgetting the provider's firewall — the panel will appear unreachable with no obvious error.
Step 5: First Login and Initial Setup
Open the Internet Address from Step 3 in your browser. You will see a TLS warning because aaPanel ships with a self-signed certificate on first boot. Click Advanced then Proceed — we will replace this certificate later.
Log in with the username and password from the install output. On first login aaPanel shows a recommended software prompt. You can:
- Accept the LNMP recommendation -- Installs Nginx, PHP, MariaDB, phpMyAdmin, and Pure-FTPd in one batch.
- Accept the LAMP recommendation -- Installs Apache instead of Nginx (pick this only if you have legacy
.htaccess-heavy applications). - Skip and install individually -- Closes the wizard so you can pick components by hand.
Step 6: Install the LNMP Stack
From the aaPanel dashboard, click Recommended Installation (or navigate to App Store > Runtime). Configure the stack as follows:
| Component | Recommended Version | Notes |
|---|---|---|
| Web Server | Nginx 1.24 | Preferred for modern workloads. Select Apache 2.4 only for legacy apps. |
| Database | MariaDB 10.11 | LTS release, drop-in MySQL replacement, better defaults. |
| PHP | PHP 8.2 | Best balance of compatibility and performance in early 2026. |
| phpMyAdmin | 5.2 | Ships listening on port 888 by default. |
| Pure-FTPd | Latest | Optional — skip if you will use SFTP only. |
Click One-click (or install each row individually). aaPanel will show an install queue at the bottom-right of the dashboard. Each component progresses from Queued to Installing to Completed.
While you wait, take a look at the sidebar:
- Home -- Real-time CPU, memory, disk, and network graphs
- Website -- Virtual host management
- FTP -- Pure-FTPd users
- Database -- MariaDB databases and users
- Files -- Browser-based file manager with a built-in code editor
- Terminal -- Web SSH
- Monitor -- Historical resource graphs
- Security -- Firewall rules and IP block lists
- App Store -- One-click applications
Step 7: Add Your First Website
Navigate to Website > Add Site. The form collects all the information needed to configure Nginx, PHP-FPM, the FTP account, and the database in one step:
- Domain name --
example.com. Addwww.example.comas an additional domain if needed. - Remark -- An internal label like "Main marketing site" to distinguish sites later.
- Root directory -- Leave as the default
/www/wwwroot/example.com. - FTP -- Tick Create FTP. Set a username and password. Skip if you prefer SFTP.
- Database -- Tick Create database. Pick MySQL, enter a username, and set a password. aaPanel auto-generates the database name.
- PHP version -- Select 8.2 from the dropdown.
/www/wwwroot/example.com with correct permissions/www/server/panel/vhost/nginx/example.com.confVisit http://example.com (after pointing DNS at your VPS IP) and you should see the aaPanel default landing page.
DNS tip: Create anArecord pointingexample.comandwww.example.comat your VPS IP address. Propagation usually completes in 5-15 minutes.
Step 8: Install Free Let's Encrypt SSL
From the Website list, click Settings next to your site, then the SSL tab. aaPanel supports three TLS modes:
- Let's Encrypt -- Free, auto-renewing, 90-day certificates. The right choice for nearly all sites.
- Other Certificate -- Paste a custom certificate (for EV certificates or a wildcard from another CA).
- Self-Signed -- For internal-only testing.
example.com and www.example.com), and click Apply. The process takes 15-30 seconds and performs an HTTP-01 challenge behind the scenes.When it completes, enable Force HTTPS at the top of the SSL tab. aaPanel will insert an HTTP-to-HTTPS redirect into the vhost and reload Nginx. Your site now serves over HTTPS with an auto-renewing certificate.
Certificates renew automatically via a daily cron job that runs bt renew_all_ssl. You can verify the next renewal date from the SSL tab.
Step 9: Deploy WordPress via the App Store
aaPanel's App Store removes the usual 20-minute WordPress install ritual. Navigate to App Store > One-click deployment, search for WordPress, and click One-click deployment.
The form asks for:
- Domain -- Pick an existing site from Step 7 or add a new one from the same dialog.
- Database -- Auto-generated if you tick the checkbox.
- Admin username / password -- Becomes the WordPress superadmin account.
- Site name -- WordPress
blognamesetting.
wp-config.php with the database credentials, and runs the WordPress installer silently. You receive a confirmation modal with the admin URL, username, and password.Log in at https://example.com/wp-admin/ and you are done. The whole end-to-end process — new domain, PHP version selected, database created, SSL issued, WordPress installed — takes about 4-5 minutes.
Other One-Click Apps Worth Trying
- NextCloud -- Self-hosted Dropbox alternative with file sync, calendar, and contacts.
- Mautic -- Marketing automation and email campaign platform.
- Ghost -- Node.js publishing platform, faster than WordPress for pure blogs.
- phpMyAdmin -- Already installed with LNMP, accessible at
http://your-ip:888. - Discourse -- Modern forum software (requires Docker — enable it first).
Step 10: File Manager, Cron, and Docker
Three utilities that replace a lot of CLI work.
File Manager
Files in the sidebar opens a full-featured file manager: upload, download, rename, chmod, compress, extract, and edit files in a built-in Monaco-based code editor with syntax highlighting for PHP, JS, HTML, CSS, and YAML. Multi-file upload works by drag-and-drop, and the editor autosaves.
Use it to drop in custom Nginx snippets, edit wp-config.php, or review log files without ever opening vim.
Cron
Cron in the sidebar provides a graphical interface to crontab. Add a task by picking:
- Task type -- Shell script, backup a database, backup a site, release memory, log cutting
- Name -- Label like "Nightly WordPress backup"
- Schedule -- Minute / hour / day / week / month selectors, or a freeform cron expression
- Target -- The site, database, or script to run
- Log rotation -- Keep
/www/wwwlogs/*.logfrom filling your disk - Memory release -- Drop Linux page cache weekly on memory-constrained servers
- Custom shell script -- Anything you would normally put in
/etc/cron.d
Docker Integration
Install Docker Manager from the App Store. Once installed, aaPanel exposes a Docker sidebar item that manages containers, images, volumes, and networks — roughly equivalent to Portainer but integrated with the panel's user accounts. Use it to run Discourse, Invoice Ninja, or any other Docker-only application alongside your Nginx-served PHP sites.
Step 11: Configure Scheduled Backups
Data loss is rarely about whether — it is about when. aaPanel has backups built into the Cron module.
Navigate to Cron and create two tasks:
By default backups land in /www/backup/site/ and /www/backup/database/. That is fine as a first line of defense, but a local-only backup on the same disk as the production data protects against nothing except accidental file deletion.
Offsite Backups to S3 or Compatible
Install Cloud Storage from the App Store. It ships with drivers for:
- Amazon S3 (and any S3-compatible service: Backblaze B2, DigitalOcean Spaces, Wasabi, MinIO)
- Google Drive
- OneDrive
- Dropbox
- FTP remote
A good configuration for a production site is:
- Local daily backup, keep 7 copies (~1 week)
- S3 daily backup, keep 30 copies (~1 month)
- Weekly full-server snapshot via your VPS provider (most offer this for EUR 1-2/month)
Step 12: Harden aaPanel Security
The default aaPanel install is reasonably secure out of the box thanks to the random port, random username, and random entry path. A few extra steps make it significantly harder to attack.
Change the Default Panel Port
Navigate to Settings > Panel Port. Change 8888 to a less-scanned high port like 34721. Update your UFW and cloud firewall rules accordingly and close 8888.
Enable Two-Factor Authentication
Settings > Authenticator > toggle on. Scan the QR code with Google Authenticator, Authy, or 1Password. From the next login, aaPanel requires a 6-digit TOTP in addition to the password.
IP Whitelist
Settings > Authorization IP. Add the static IP addresses from which you administer the server (office, home, VPN). Requests from any other source get a 403 before they even reach the login form. This is the single most impactful hardening you can do — aaPanel login attempts from the public internet simply stop existing.
If your administrative IP is dynamic, pair this with a small wireguard VPN on a cheap VPS and whitelist only the VPN IP.
Change the Entry Path
Settings > Security Entrance. The random path from the installer is fine, but if it has leaked (pasted in Slack, committed to a repo), regenerate it here.
Disable Password Login Over SSH
Not strictly aaPanel, but a vital companion step. Edit /etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-passwordThen sudo systemctl restart ssh. Make sure you have a working SSH key before disabling password auth.
Install Fail2ban
From App Store > Security, install Fail2ban. It monitors /var/log/auth.log, the aaPanel login log, and the Nginx error log, and bans IPs that hit obvious brute-force patterns. Default bans last 24 hours after 5 failed attempts.
Updating aaPanel
Panel updates ship every few weeks with bug fixes and new App Store plugins. There are two ways to update:
From the UI, click the Update button in the top-right of the dashboard when a new version is available.
From the CLI:
sudo bt updateExpected output:
==================================================================
Upgrading aaPanel, please wait...
==================================================================
Downloading aaPanel 7.0.x...
Unpacking...
Restarting bt service...
==================================================================
aaPanel has been upgraded to 7.0.x
==================================================================Updates take 20-40 seconds and briefly restart the panel process. Your hosted websites are not affected — Nginx, PHP-FPM, and MariaDB keep running throughout.
For installed apps (PHP, MariaDB, Nginx), use App Store > Installed and click Upgrade next to each. Always take a snapshot or backup before major version upgrades (for example, MariaDB 10.11 to 11.x).
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| Panel URL times out | Port 8888 (or custom port) blocked by UFW or cloud firewall | sudo ufw status on the server; open the port in your cloud provider firewall too. Run sudo bt default to confirm the actual port. |
This site can't be reached at the random entry path | Security entrance mismatch | Run sudo bt default to print the current path. If it still fails, regenerate with sudo bt 16 (resets security entrance). |
| Forgot username or password | Random credentials lost | sudo bt 5 resets the password. sudo bt 6 sets a new username. sudo bt default prints the current values. |
| Let's Encrypt issuance fails | Port 80 closed, DNS not propagated, or domain points elsewhere | Confirm dig +short example.com returns your VPS IP. Ensure UFW and cloud firewall allow port 80. Retry from the SSL tab. |
502 Bad Gateway on a PHP site | PHP-FPM pool crashed or wrong PHP version selected | Website > Settings > PHP Version — pick the right version. Restart PHP: App Store > PHP 8.2 > Restart. |
PHP extension missing (e.g. imagick, redis, exif) | Extension not installed in the selected PHP build | App Store > PHP 8.2 > Install tab. Click Install next to the missing extension. |
| MariaDB won't start after reboot | Low memory triggered OOM-kill | Check sudo journalctl -u mariadb -n 50. Add swap: sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile. |
403 Forbidden on a newly added site | Document root permissions incorrect | sudo chown -R www:www /www/wwwroot/example.com && sudo chmod -R 755 /www/wwwroot/example.com |
| Panel loads but shows blank dashboard | Browser cache after upgrade | Hard-reload (Cmd+Shift+R or Ctrl+Shift+R). Try a private/incognito window. |
| High CPU from a single site | Bot traffic, missing caching | Install Redis from the App Store, enable the WordPress Cache plugin, or enable Cloudflare in front of the site. |
Checking Panel Logs
When something does not behave as expected, the panel logs usually have the answer:
sudo tail -f /www/server/panel/logs/error.logNginx per-site logs live in /www/wwwlogs/example.com.log and /www/wwwlogs/example.com.error.log. PHP-FPM slowlogs are in /www/server/php/82/var/log/.
FAQ
Is aaPanel really free? What's the catch?
Yes — the core panel is free, with no account caps and no feature-gated functionality. aaPanel monetizes through paid plugins (advanced WAF, ModSecurity rule sets, migration tools, and a few premium App Store entries) and an optional Pro subscription that unlocks those plugins as a bundle. The free tier covers everything in this guide, including Nginx, PHP, MariaDB, Let's Encrypt, backups, Docker, and most App Store installs. You only pay if you opt into a specific paid plugin.
How is aaPanel different from BT Panel?
aaPanel is the international edition of BT Panel (宝塔面板). They share the same codebase and the same App Store architecture, but aaPanel ships with English documentation, English-language App Store metadata, and the forum.aapanel.com support community. BT Panel is Chinese-first and some App Store entries are region-specific (payment processors, CDN providers). For English-speaking users, aaPanel is the correct edition.
Can I run aaPanel alongside an existing LAMP stack?
No. aaPanel installs its own Nginx, Apache, PHP, and MariaDB builds into /www/server/ and expects to manage them exclusively. Installing on a server that already has Apache, Nginx, or MySQL from apt will cause port conflicts and confuse the panel. Always install on a clean Ubuntu 24.04 system. If you need to migrate an existing site, install aaPanel fresh on a new server, use the Website > Migrate tool, then decommission the old box.
How many websites can one aaPanel server host?
It depends on traffic and resources, not on any panel limit — aaPanel itself has no account cap. As a rough guide:
- 1 GB RAM VPS -- 1-3 low-traffic WordPress sites
- 4 GB RAM VPS -- 10-20 WordPress sites with Redis object cache
- 8 GB RAM VPS -- 30-50 WordPress sites or 5-10 busy ecommerce sites
- 16 GB+ RAM VPS -- 100+ low-traffic sites or dedicated ecommerce
innodb_buffer_pool_size and PHP-FPM worker counts. Monitor memory in the aaPanel Monitor tab and scale up when swap starts getting used.How do I migrate a WordPress site into aaPanel?
Three options, in order of ease:
rsync the files to /www/wwwroot/example.com, dump the old database with mysqldump, import through phpMyAdmin. Fastest for experienced admins and large sites.How does aaPanel compare to CyberPanel and HestiaCP?
aaPanel — Largest App Store, most polished UI, best for WordPress/CMS hosting and general-purpose use. Runs on OpenLiteSpeed if installed that way, but Nginx is the default.
CyberPanel — Built around OpenLiteSpeed and LSCache. Best pure-speed WordPress experience thanks to LiteSpeed Cache, but smaller plugin ecosystem and a rougher UI.
HestiaCP — Fork of VestaCP focused on simplicity and low resource usage. Fewer one-click apps, no Docker GUI, but rock-solid for straightforward shared hosting.
For most DM and agency use cases — multiple CMS sites, Docker, backups to S3, Let's Encrypt, occasional custom Node.js or Python app — aaPanel is the best fit.
Next Steps
Now that aaPanel is running on your VPS, here are recommended next steps to get the most from your setup:
- Install Redis and enable object caching -- From App Store > Runtime > Redis. Pair it with the Redis Object Cache plugin in WordPress for 3-10x faster admin and logged-in page loads.
- Put Cloudflare in front of your sites -- Point your domain's nameservers at Cloudflare, enable the free tier, and turn on Full (strict) SSL mode. You get free DDoS protection, a global CDN, and analytics without changing anything on the VPS.
- Set up Uptime Kuma for monitoring -- Deploy Uptime Kuma via the Docker Manager and monitor each site plus the aaPanel port. Alert to email, Slack, or Discord when anything goes down.
- Try the App Store's WAF plugin -- The free Nginx WAF module blocks SQL injection, XSS, and common CMS attack patterns. Enable it per-site from Website > Settings > WAF.
- Read the aaPanel forum -- forum.aapanel.com is active and English-speaking. Most questions already have answers, and the aaPanel team responds to bug reports within a day or two.
- Explore the full App Store -- Browse www.aapanel.com for new plugins. Recent additions include AI-powered log analysis, WireGuard VPN, and automated NextCloud hardening.
Skip the Manual Install -- Get aaPanel Pre-Installed>
Our CloudCore Starter VPS plans come with aaPanel, an LNMP stack, and SSL automation pre-configured. Deploy in 60 seconds and start hosting immediately.>
- aaPanel 7.x with random port and random entrance pre-set
- Nginx, PHP 8.2, MariaDB 10.11, and phpMyAdmin installed
- UFW preconfigured to allow only essential ports
- Automatic Ubuntu security updates enabled
- Optional WordPress or NextCloud pre-deployment at checkout>
Deploy Your CloudCore Starter VPS Now -- Plans start at EUR 7.99/month.