Strapi

Generated on 17 Dec 2025 from the Strapi catalog page

Strapi 1-Click Application

Deploy Strapi, the leading open-source headless CMS, on DigitalOcean with this 1-Click application. Strapi gives developers the freedom to use their favorite tools and frameworks while allowing editors to manage and distribute their content using an intuitive admin interface.

What is Strapi?

Strapi is a flexible, open-source headless CMS that gives developers the freedom to choose their favorite tools and frameworks and allows editors to manage and distribute their content using their application’s admin panel. Built with modern JavaScript technologies, Strapi offers:

  • Headless CMS - RESTful and GraphQL APIs for seamless integration with any frontend
  • Customizable Admin Panel - User-friendly interface for content management
  • Content Types Builder - Create and manage data structures without coding
  • Role-Based Access Control - Fine-grained permissions for users and teams
  • Plugins & Extensions - Extend functionality with official and community plugins
  • Self-hosted - Complete control over your data and infrastructure

Key Features

  • Modern, intuitive admin panel
  • RESTful and GraphQL API support
  • Flexible content modeling with visual builder
  • Media library with image optimization
  • Role-based access control (RBAC)
  • Internationalization (i18n) support
  • Draft & publish system
  • API documentation generation
  • Webhooks for third-party integrations
  • Docker-based deployment for easy management
  • PostgreSQL database for reliability and performance

System Components

This 1-Click includes:

  • Strapi v5.0.0 - Latest version of the headless CMS
  • Node.js 22 - JavaScript runtime (Alpine Linux-based)
  • PostgreSQL 16 - Production-ready relational database
  • Docker & Docker Compose - Container orchestration
  • Ubuntu 24.04 LTS - Long-term support base system
  • UFW Firewall - Pre-configured for security

System Requirements

Strapi is packaged as Docker containers and runs on your DigitalOcean Droplet. Use this guide to choose the appropriate size:

Use Case RAM CPU Recommended Droplet
Development/Small 2GB 1CPU s-1vcpu-2gb
Small Production 4GB 2CPU s-2vcpu-4gb
Medium Production 8GB 4CPU s-4vcpu-8gb
Large Production 16GB 8CPU s-8vcpu-16gb

Note: The minimum recommended configuration is 2GB RAM and 2 CPUs for production use.

Software Included

This Marketplace listing does not include a detailed software list.

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.

Deploy to DO

Creating an App using the API

In addition to creating a Droplet from the Strapi 1-Click App using the control panel, you can also use the DigitalOcean API. As an example, to create a 4GB Strapi 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":"sharklabs-strapi1click"}' \
        "https://api.digitalocean.com/v2/droplets"

Getting Started After Deploying Strapi

Initial Setup

  1. Deploy the Droplet - Select this 1-Click App from the DigitalOcean Marketplace
  2. Wait for initialization - The first boot takes 2-3 minutes to generate security keys and start services
  3. Access Strapi - Navigate to your Droplet’s IP address in a web browser:
   http://your-droplet-ip

Create Your Admin Account

On first access to the admin panel, you’ll need to create your administrator account:

  1. Navigate to http://your-droplet-ip/admin
  2. Fill in the registration form:
    • First name and last name
    • Email address
    • Password (minimum 8 characters)
  3. Click “Let’s start” to complete setup

Building Your First Content Type

  1. Log into the admin panel at /admin
  2. Navigate to Content-Type Builder in the sidebar
  3. Click Create new collection type
  4. Define your content structure (e.g., Article, Product, Blog Post)
  5. Add fields to your content type (text, media, relations, etc.)
  6. Click Save and restart Strapi when prompted
  7. Navigate to Content Manager to create your first entry

Accessing Your API

Once you’ve created content types and entries:

  • REST API: http://your-droplet-ip/api/[content-type-plural]
  • API Documentation: http://your-droplet-ip/documentation (if enabled)
  • GraphQL Playground: http://your-droplet-ip/graphql (if GraphQL plugin is installed)

Important: By default, API endpoints are protected. Configure permissions in Settings > Users & Permissions > Roles > Public to allow public access.

Configuration

Environment Configuration

Modify the Strapi configuration by editing the environment file:

nano /opt/strapi/.env

After making changes, restart Strapi:

systemctl restart strapi
# or use the convenience script:
/opt/restart-strapi.sh

Database Access

The PostgreSQL database is accessible within the Docker network. To connect directly:

docker exec -it strapiDB psql -U strapi -d strapi

Database credentials are stored in /opt/strapi/.env

Domain and SSL Configuration

For production use with a custom domain:

  1. Point your domain to the Droplet

    • Create an A record pointing to your Droplet’s IP address
    • Wait for DNS propagation (5-15 minutes)
  2. Set up a reverse proxy (recommended for SSL/TLS)

    • Install Nginx or Caddy as a reverse proxy
    • Configure automatic SSL certificates with Let’s Encrypt
    • Proxy traffic to port 80 where Strapi is running
  3. Update Strapi configuration

    • Edit /opt/strapi/.env
    • Set PUBLIC_URL=https://your-domain.com
    • Restart Strapi: systemctl restart strapi

Management Commands

Service Control

# Start Strapi
systemctl start strapi
# or
/opt/start-strapi.sh

# Stop Strapi
systemctl stop strapi
# or
/opt/stop-strapi.sh

# Restart Strapi
systemctl restart strapi
# or
/opt/restart-strapi.sh

# Check status
systemctl status strapi

Viewing Logs

# View all Strapi logs
docker compose -f /opt/strapi/docker-compose.yml logs -f

# View Strapi application logs only
docker logs -f strapi

# View database logs
docker logs -f strapiDB

Updating Strapi

To update Strapi to the latest version:

/opt/update-strapi.sh

This script will:

  1. Stop the current Strapi service
  2. Pull the latest Docker images
  3. Restart the service with updated containers

Note: Always backup your data before updating.

Backup and Data Management

Database Backup

Create a backup of your PostgreSQL database:

docker exec strapiDB pg_dump -U strapi -d strapi > strapi_backup_$(date +%Y%m%d).sql

Restore Database

Restore from a backup:

cat strapi_backup_YYYYMMDD.sql | docker exec -i strapiDB psql -U strapi -d strapi

Volume Management

Strapi data is stored in Docker volumes:

  • strapi-data - PostgreSQL database files
  • strapi-app - Strapi application code
  • strapi-uploads - Media library uploads

View volumes:

docker volume ls

Plugins and Extensions

Installing Plugins

  1. Access the admin panel at /admin
  2. Navigate to Settings > Marketplace
  3. Browse available plugins
  4. Click Download on desired plugins
  5. Follow installation instructions for each plugin

Popular plugins include:

  • GraphQL - Add GraphQL support
  • Documentation - Auto-generate API documentation
  • Email - Email functionality (SendGrid, Amazon SES, etc.)
  • Upload - Enhanced media management

Custom Plugins

To develop custom plugins:

  1. Access the Strapi application in the container
  2. Use Strapi’s plugin development tools
  3. Refer to Strapi Plugin Development Guide

Security Best Practices

  1. Change Default Port (Optional)

    • Edit /opt/strapi/.env and modify PORT variable
    • Update docker-compose port mappings if needed
    • Restart Strapi
  2. Use SSL/TLS in Production

    • Always use HTTPS for production deployments
    • Configure a reverse proxy with Let’s Encrypt
  3. Strong Passwords

    • Use strong, unique passwords for admin accounts
    • Enable two-factor authentication if available
  4. Regular Updates

    • Keep Strapi and system packages updated
    • Monitor security advisories
  5. Firewall Configuration

    • UFW is pre-configured to allow only necessary ports
    • Modify with: ufw allow [port]/tcp
  6. Database Security

    • Database is only accessible within Docker network
    • Credentials are randomly generated on first boot

Troubleshooting

Strapi Won’t Start

Check service status:

systemctl status strapi

View detailed logs:

docker compose -f /opt/strapi/docker-compose.yml logs -f

Cannot Access Admin Panel

  1. Verify Strapi is running: systemctl status strapi
  2. Check firewall rules: ufw status
  3. Ensure port 80 is accessible from your location
  4. Wait 2-3 minutes after first boot for full initialization

Database Connection Issues

  1. Check if database container is running: docker ps
  2. Verify database credentials in /opt/strapi/.env
  3. Check database logs: docker logs strapiDB

Out of Memory Errors

Strapi requires at least 2GB RAM. If experiencing memory issues:

  1. Resize your Droplet to a larger size
  2. Check running processes: htop
  3. Review Docker logs for memory-related errors

Resources

Support

For issues specific to this 1-Click application, please contact DigitalOcean support.

For Strapi-specific questions:

License

Strapi is open-source software licensed under the MIT License.

We can't find any results for your search.

Try using different keywords or simplifying your search terms.