Installing Press App

I have set up the Press app on DigitalOcean by following a YouTube tutorial step-by-step.
My infrastructure consists of three separate servers designated for the App, Proxy, and Database services. And for DNS management, I am utilizing Cloudflare as my DNS provider.
and I have these issues

  • when I create Root Domain: the TLS Certificate is not created!
    How can I use Press App in DigitalOcean and Cloudflare

Hello @aazaqout

Can you share the YouTube video here?

K

You need to use Ruote 53 for dns management. As far as I know, Press doesnot support other dns providers.

Switch your dns provider and try again.

As far as you know @aazaqout … Do you know how Press handles certificates?

If via cerbot, then install certbot’s dns plugin for Cloudflare. I did this somewhere and worked perfectly fine.

If via Traefik, then make sure to say to Traefik to use Cloudflare as it is by default using Route53 which is the default used by Frappe.

Let me know if you need help in more details.

This video

Thank you
I will try the plugin and I’ll let you know if it’s working

I’m using CloudFlare
I will make more investigating about how press handle certification then I’ll decide what to do

Another issue could be you didnot create .certbot and .webroot folders.

Also you might have forgotten to set the folder routes in press settings.


I already created .certbot and set the required fields in settings

@knimer @anupd

I switched to AWS Route 53 for DNS Provider, but when I setup the proxy, it shows as broken. Are there any specific Nginx server configurations I need to apply before completing the server setup?

There could be many possibilities for broken status. Some of them are:

  1. user creation error: solution clear up UID and GID 1000 in your servers.
  2. ssh as root error: if you can’t ssh into server with root@123.123.123.123 (your server ip) then you might get broken status.

Hi

May you also please provide some detail on which Ubuntu version you used and size of droplets you selected ?

Although Ubuntu 20 is the officially recommended version, I’ve been running Ubuntu 22 in my setup without any issues it works smoothly and has proven to be stable in production.

I currently have a production environment deployed with the following two clusters and server specifications:


Production Cluster – Finland

All servers in this setup are part of a single cluster hosted in Finland:

Server Name Instance Type vCPUs RAM Disk
Press CCX33 8 32 GB 240 GB
Registry CCX13 2 8 GB 80 GB
Proxy CCX13 2 8 GB 80 GB
Log CCX33 8 32 GB 240 GB
Monitor CCX13 2 8 GB 80 GB
Database CCX43 16 64 GB 360 GB
App CCX33 8 32 GB 240 GB

Secondary Cluster – Germany

The Germany cluster is structured as follows:

Server Name Instance Type vCPUs RAM Disk Size
App2 CCX43 16 64 GB 360 GB + 1024 GB
App-server CCX43 16 64 GB 360 GB
DB-server CCX43 16 64 GB 360 GB
Proxy-server CCX23 4 16 GB 160 GB
Monitor-server CCX23 4 16 GB 160 GB
Log-server CCX33 8 32 GB 240 GB
Registry-server CCX13 2 8 GB 80 GB
Press-server CCX33 8 32 GB 240 GB

2 Likes

Thank you @AWS for this comprehensive answer. May I also ask if you used
Frappe Framework 14 or 15 for the Press server ?

I see you have a full production setup. I think I shall use smaller droplets at first , just to get the principle / procedure right.

I used frappe v.15

1 Like

Thank you for all the information @AWS

1 Like

Any help on this design for AWS

Terraform Infrastructure for Frappe Press on AWS

Production-grade, multi-tenant Frappe Press (“Press”) hosting platform infrastructure on AWS using Terraform.

Overview

This repository contains Terraform modules and configurations to deploy a complete Frappe Press infrastructure on AWS ECS Fargate, providing:

  • Multi-tenant architecture with wildcard DNS routing

  • High availability across multiple availability zones

  • Production-grade state services: RDS MariaDB, ElastiCache Redis, EFS

  • Secure by default: Secrets Manager, encrypted storage, private subnets

  • Auto-scaling capable ECS services with Application Load Balancer

  • Comprehensive monitoring with CloudWatch

Architecture

Infrastructure Components

  • VPC: Custom VPC with public and private subnets across 3 AZs

  • Networking: Internet Gateway, NAT Gateways, Route Tables

  • Load Balancing: Application Load Balancer with HTTPS (ACM certificate)

  • DNS: Route53 with wildcard subdomain support (*.domain.net)

  • Compute: ECS Fargate cluster with Container Insights

  • Database: RDS MariaDB Multi-AZ with automated backups

  • Caching: ElastiCache Redis with automatic failover

  • Storage: EFS with access points for sites and logs

  • Security: Security groups, IAM roles, Secrets Manager

Service Architecture

Press Control Plane Services

  • press-web: Management interface (mapped to domain.net)

  • press-worker: Background job processor

  • press-scheduler: Scheduled task runner

Frappe Runtime Services

  • frappe-web: Gunicorn application server (mapped to *.domain.net)

  • frappe-scheduler: Frappe background scheduler

  • frappe-queue-short: Short-running background jobs

  • frappe-queue-long: Long-running background jobs

  • frappe-websocket: WebSocket server for real-time features

What is it that you are trying to achieve ?

@aazaqout you can check this PR for Cloudflare

Thanks