Strapi

Strapi CMS | EasyCloudify

Strapi

  • Version: 5.0.0
  • OS: Ubuntu 24.04
  • Category: Blogs and Forums

Description

Strapi is the leading open-source headless CMS. It gives developers the freedom to use any frontend framework or tool, while content editors manage and publish content through an intuitive admin panel. Strapi exposes your content via RESTful and GraphQL APIs automatically, making it easy to power websites, mobile apps, or any digital product from a single content backend.

This VPS image runs Strapi v5 inside Docker containers backed by a PostgreSQL 16 database. Security keys are generated automatically on first boot, and the entire stack is managed via systemd service scripts for easy day-to-day operations.

Software Included

PackageVersionLicense
Strapi5.0.0MIT
Node.js22 (Alpine)MIT
PostgreSQL16PostgreSQL License
DockerBundledApache 2.0
Docker ComposeBundledApache 2.0
UFW FirewallBundledGPL

Key Features

  • Headless CMS with auto-generated REST and GraphQL APIs
  • Visual Content-Type Builder — define your data structures without writing code
  • Intuitive admin panel for editors to create and publish content
  • Media library with image optimization
  • Role-based access control (RBAC) for fine-grained permissions
  • Internationalization (i18n) support for multilingual content
  • Draft and publish workflow
  • Webhooks for triggering third-party integrations
  • Plugin marketplace for extending functionality
  • PostgreSQL database for reliable, production-grade storage

System Requirements

EnvironmentRAMCPU
Development / Small2 GB1 vCPU
Small Production4 GB2 vCPU
Medium Production8 GB4 vCPU
Large Production16 GB8 vCPU

The minimum recommended configuration for production is 2 GB RAM and 2 vCPU.

Getting Started

1. Deploy Strapi on an EasyCloudify VPS

Deploy this app from the EasyCloudify Marketplace. The first boot takes 2–3 minutes to generate security keys and start all services.

2. Access the Admin Panel

Open a browser and navigate to your VPS IP address:

http://your-vps-ip/admin

3. Create Your Administrator Account

On first access you will be prompted to register:

  • First name and last name
  • Email address
  • Password (minimum 8 characters)

Click Let's start to complete the setup.

4. Build Your First Content Type

  1. In the admin panel, navigate to Content-Type Builder in the sidebar.
  2. Click Create new collection type.
  3. Name your type (e.g., Article, Product, Blog Post).
  4. Add fields: text, rich text, media, relations, numbers, dates, etc.
  5. Click Save and restart Strapi when prompted.
  6. Navigate to Content Manager to create your first entry.

5. Access Your API

Once you have created content types and published entries, your APIs are available at:

  • REST: http://your-vps-ip/api/[content-type-plural]
  • GraphQL Playground: http://your-vps-ip/graphql (requires GraphQL plugin)
  • API Docs: http://your-vps-ip/documentation (requires Documentation plugin)

By default, API endpoints are protected. To allow public access, go to Settings > Users & Permissions > Roles > Public and enable the relevant permissions.

Configuration

Environment Variables

Edit the Strapi environment file to change database credentials, JWT secrets, or the public URL:

bash
nano /opt/strapi/.env

After any change, restart Strapi:

bash
systemctl restart strapi

Set a Custom Domain

  1. Create a DNS A record pointing your domain to your VPS IP and wait for propagation.
  2. Set up a reverse proxy (Nginx or Caddy) to proxy traffic to port 80 with Let's Encrypt SSL.
  3. Update the environment file:
bash
nano /opt/strapi/.env # Set: PUBLIC_URL=https://your-domain.com
  1. Restart Strapi:
bash
systemctl restart strapi

Database Access

Connect directly to the PostgreSQL database inside the container:

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

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

Service Management

bash
# Start systemctl start strapi # Stop systemctl stop strapi # Restart systemctl restart strapi # Status systemctl status strapi

Convenience scripts are also available:

bash
/opt/start-strapi.sh /opt/stop-strapi.sh /opt/restart-strapi.sh

Viewing Logs

bash
# All services docker compose -f /opt/strapi/docker-compose.yml logs -f # Strapi application only docker logs -f strapi # PostgreSQL database docker logs -f strapiDB

Updating Strapi

Always back up your data before updating, then run:

bash
/opt/update-strapi.sh

The script stops the current service, pulls the latest Docker images, and restarts.

Backup and Restore

Create a database backup:

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

Restore from backup:

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

Docker volumes containing Strapi data:

VolumeContents
strapi-dataPostgreSQL database files
strapi-appStrapi application code
strapi-uploadsMedia library uploads

Security Best Practices

  • Always use HTTPS in production — configure a reverse proxy with Let's Encrypt.
  • UFW is pre-configured to allow only required ports; add rules with ufw allow [port]/tcp.
  • Database credentials are randomly generated on first boot and stored only in /opt/strapi/.env.
  • Keep Strapi and system packages updated regularly.
  • Use strong, unique passwords for all admin accounts.

Troubleshooting

Strapi will not start:

bash
systemctl status strapi docker compose -f /opt/strapi/docker-compose.yml logs -f

Cannot access the admin panel:

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

Out of memory errors: Strapi requires at least 2 GB RAM. Resize your VPS if needed and check with free -m.

Support Details

Resources

New apps added every week

Subscribe to get notified when we launch new 1-click apps — from AI tools to databases and developer stacks.

Browse marketplace

More apps

Erxes

Erxes is an open-source experience operating system (XOS) and the open-source alternative to HubSpot. It enables businesses, SaaS providers, and digital agencies to build unified customer experiences across all touchpoints from live chat and email to sales pipelines and CRM.

Read more

Bitwarden

Bitwarden is an open-source password management platform that lets you securely store, share, and sync passwords and sensitive data across all your devices.

Read more