Build client sites, company websites and blogs on your Seed with WordPress. You design pages and posts in the block editor and pick a look from thousands of themes, or adjust it yourself in the Site Editor. Free plugins from the official directory add contact forms, SEO, multilingual content or an online shop. You give editors and clients their own logins and use roles to decide whether someone only writes posts or manages the whole site. Once your client signs off on the site, you switch it over to their domain.
After the first boot
On first boot, the Seed sets up WordPress 7.1.2 in German on Debian 13 with Apache, PHP 8.4 and MariaDB 11.8. The site is live over HTTPS 2 to 4 minutes later.
Via SSH as root, tail -f /root/wordpress-install.log shows the setup as it runs. Once WordPress is done, ready.txt appears in the same directory with the dashboard address, the username and where the password is stored. If the setup stops, for example because ADMIN_EMAIL holds an invalid address, failed.txt gives the reason.
For your first login, open https://<seed-hostname>/wp-admin/ and sign in as admin. /root/wordpress-credentials.txt holds the generated password and, below it, the name, user and password of the database that WordPress uses in wp-config.php. WordPress starts in German. To switch your own dashboard to English, open Benutzer > Profil (Users > Profile) and set Sprache (Language) to English (United States), then save with Profil aktualisieren (Update Profile). The paths below use the English menu names.
Set your own password under Users > Profile, and create personal accounts with a suitable role for yourself, your team and your clients under Users > Add User. WordPress cannot rename the admin username. If you would rather not keep it, delete the account under Users > All Users and choose Attribute all content to another user.
The site uses the Berlin time zone and post name permalinks. The setup removes the bundled Akismet and Hello Dolly plugins and the older default themes, so Twenty Twenty-Five is the only theme and the active one. You will find more themes under Appearance > Themes and plugins under Plugins > Add Plugin. Change the site title, the site language for visitors and the time zone under Settings > General. In German, visitor-facing texts such as the comment form use the informal "du". For a site that addresses visitors formally, choose Deutsch (Sie) as the Site Language there, and WordPress downloads the language pack itself.
The setup enters the ADMIN_EMAIL value as the email address of admin and as the Administration Email Address under Settings > General. If you left the field empty, both read admin@<seed-hostname>, an address that receives no mail. Replace it with a real address once email sending works, because WordPress confirms every change with a message to the new address.
The Seed does not send email on its own. For password reset links, comment notifications and contact form messages to arrive, install an SMTP plugin under Plugins > Add Plugin and enter the server, port, encryption and login of a mailbox at your email provider. Use an address from that mailbox as the sender so that your provider's SPF and DKIM apply to the messages.
wordpress-cron.timer runs scheduled posts and the automatic maintenance and security updates of WordPress every 5 minutes, whether or not anyone is visiting the site. PHP gives each request up to 256 MB of memory and accepts uploads of up to 64 MB, both set in /etc/php/8.4/fpm/conf.d/90-wordpress.ini. For shops, the WordPress Hosting Handbook recommends 512 MB per request. Set that value as memory_limit in the same file and restart PHP with systemctl restart php8.4-fpm. When processing images, ImageMagick keeps up to 128 MB per request in memory and up to 256 MB as a memory map and moves anything beyond that to /var/tmp, with the limits set in /etc/systemd/system/php8.4-fpm.service.d/imagemagick.conf. On the command line, run WP-CLI as the www-data user, for example sudo -u www-data wp plugin list.
For your client's domain, point the A records of example.com and www.example.com to the Seed's IPv4 address and run seed-tls domain example.com www.example.com over SSH. WordPress then runs under the new domain, links included.
A firewall under Network > Firewalls needs rules for TCP 80 and 443, so visitors reach the site and the certificate can be renewed, plus TCP 22 for your SSH access.
Suitable models
Entry
The entry point for low CPU load
Standard
All-rounder for variable production load
Performance
Exclusive compute for sustained load
Show all 14 suitable models
Entry
| Model | CPU | RAM | Storage | Traffic | Bandwidth | Price/hour | Price/month | |
|---|---|---|---|---|---|---|---|---|
| M | 2 Cores | 4 GB | 40 GB | 10 TB | 1 Gbit/s | 0,011694 € | 7,29 € | |
| L | 4 Cores | 8 GB | 80 GB | 10 TB | 1 Gbit/s | 0,023389 € | 14,59 € | |
| XL | 8 Cores | 16 GB | 160 GB | 10 TB | 1 Gbit/s | 0,038312 € | 23,91 € |
Standard
| Model | CPU | RAM | Storage | Traffic | Bandwidth | Price/hour | Price/month | |
|---|---|---|---|---|---|---|---|---|
| XS | 1 Core | 4 GB | 40 GB | 20 TB | 2.5 Gbit/s | 0,014303 € | 8,93 € | |
| S | 2 Cores | 8 GB | 80 GB | 20 TB | 2.5 Gbit/s | 0,024579 € | 15,34 € | |
| M | 4 Cores | 16 GB | 160 GB | 20 TB | 2.5 Gbit/s | 0,049158 € | 30,68 € | |
| L | 8 Cores | 24 GB | 240 GB | 20 TB | 2.5 Gbit/s | 0,093740 € | 58,49 € | |
| XL | 10 Cores | 32 GB | 360 GB | 20 TB | 2.5 Gbit/s | 0,120608 € | 75,26 € | |
| XXL | 16 Cores | 64 GB | 500 GB | 20 TB | 2.5 Gbit/s | 0,188623 € | 117,70 € |
Performance
| Model | CPU | RAM | Storage | Traffic | Bandwidth | Price/hour | Price/month | |
|---|---|---|---|---|---|---|---|---|
| S | 2 Cores | 16 GB | 80 GB | 20 TB | 10 Gbit/s | 0,070561 € | 44,03 € | |
| M | 4 Cores | 32 GB | 160 GB | 20 TB | 10 Gbit/s | 0,141122 € | 88,06 € | |
| L | 8 Cores | 64 GB | 240 GB | 20 TB | 10 Gbit/s | 0,277666 € | 173,26 € | |
| XL | 16 Cores | 128 GB | 360 GB | 20 TB | 10 Gbit/s | 0,548467 € | 342,24 € | |
| XXL | 32 Cores | 192 GB | 500 GB | 20 TB | 10 Gbit/s | 1,011118 € | 630,94 € |
Create it via the Public API
A single call creates this Seed. Replace the placeholders starting with $ with your own values, such as your API token and the IDs from your account. Go to the Public API
curl -X POST "https://api.dataforest.net/api/v1/public/seeds" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"plan": "lines/standard/models/standard-c2-m4-s80",
"location": "fra01",
"source": {
"type": "app",
"ref": "apps/wordpress/versions/wordpress-v7.1.2",
"environment_variables": {
"ADMIN_EMAIL": "$ADMIN_EMAIL"
}
},
"project_id": "$PROJECT_ID",
"name": "wordpress"
}'