Craft CMS
Generated on 17 Aug 2026 from the Craft CMS catalog page
Craft CMS 1-Click Application
Deploy Craft CMS on DigitalOcean with Caddy (automatic HTTPS), PHP 8.3 FPM, and MySQL on Ubuntu 24.04 LTS.
What is Craft CMS?
Craft is a flexible, developer-friendly CMS for creating custom digital experiences. This 1-Click installs Craft 5 with a production-ready stack: Caddy (edge TLS), PHP 8.3 FPM, and MySQL.
System Components
- Ubuntu 24.04 LTS
- Craft CMS
- PHP
- MySQL
- Caddy (short-lived Let’s Encrypt certificates for IP and custom-domain HTTPS)
- Composer
- UFW firewall (22, 80, 443)
- fail2ban
System Requirements
| Use case | RAM | Recommended |
|---|---|---|
| Small site | 2GB | s-1vcpu-2gb |
| Production | 4GB+ | s-2vcpu-4gb |
Software Included
| Package | Version | License |
|---|---|---|
| PHP | 8.3.33 | PHP License v3.01 (Official) |
| MySql | 8.0.46 | GNU GPL v2.0 (Oracle / GitHub) |
| Caddy | v2.11.4. | Apache License 2.0 (GitHub) |
| Fail2ban | 1.0.2 | GNU GPL v2.0 (GitHub) |
Creating an App using the Control Panel
Click the Deploy to DigitalOcean button to create a Droplet based on this 1-Click App. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.
Creating an App using the API
In addition to creating a Droplet from the Craft CMS 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Craft CMS Droplet in the SFO2 region, you can use the following curl command. You need to either save your API access token to an environment variable or substitute it in the command below.
curl -X POST -H 'Content-Type: application/json' \
-H 'Authorization: Bearer '$TOKEN'' -d \
'{"name":"choose_a_name","region":"sfo2","size":"s-2vcpu-4gb","image":"craftcms"}' \
"https://api.digitalocean.com/v2/droplets"Getting Started After Deploying Craft CMS
Getting Started
- Create a Droplet from this 1-Click (2 GB RAM minimum).
- Wait 1–2 minutes for first-boot database setup.
- Until you finish setup, visiting the Droplet IP shows a setup-pending page (Craft web installer is blocked).
- SSH as
rootand complete the interactive wizard (/root/craft_setup.sh):
ssh root@YOUR_DROPLET_IP- After setup, open:
- Site:
https://YOUR_DROPLET_IP - Control Panel:
https://YOUR_DROPLET_IP/admin
- Site:
MySQL passwords are saved in /root/.digitalocean_password.
Custom domain (HTTPS)
Point DNS to the Droplet, then:
/root/craft_setup_domain.shService Management
| Action | Command |
|---|---|
| Start | /opt/start-craft.sh |
| Stop | /opt/stop-craft.sh |
| Restart | /opt/restart-craft.sh |
| Update Craft | /opt/update-craft.sh |
| Domain TLS | /root/craft_setup_domain.sh |
| Status | /opt/status-craft.sh |
Software Included
| Software | Description |
|---|---|
| Craft CMS | Content management system (pinned version in image) |
| Caddy | Reverse proxy / TLS termination |
| PHP 8.3 FPM | Application runtime |
| MySQL | Database |
| fail2ban | SSH brute-force protection |
| UFW | Firewall |
Documentation
- Craft CMS docs
- Caddy config:
/etc/caddy/Caddyfile