Q: 1) Can you please create a guide to deploy your app to easypanel.

which requires dockerfile https://easypanel.io/dockerizer/.

with easypanel any user can deploy your app in 5 min.

2) For Image and video storage what service we can use - S3 bucket, Bunny, R2, Publito.

3) Can you Make backend (API Server) and frontend service independent. so user can easily deploy next app to vercel and backend to own server.
One suggestion - I saw there is multiple database read server https://unacms.com/wiki/MySQL-cluster. There is other Approach for scaling - for Read queries USE Redis database which is 100 time faster, you can easily sync top queries to redis db. by using premium DNS and setting up multiple zone server ( both API backend and Redis DB ) API response time can be reduce to 20 to 50 ms on global level ( same concept : https://www.prisma.io/data-platform/accelerate ). every service can be easily deployed on easypanel on all zone.

anik02Mar 13, 2024
Founder Team
Yasko

Yasko

May 15, 2024

A: 1) We have a set of docker images for UNA available and next week launching a remote deployment tool with support of AWS and DO, similar to easypanel, but built for UNA specifically.

2) S3 is supported by default and generally recommended for media storage. You can use other object storage systems, but that generally requires some minor modification.

3) Our upcoming universal app (NEO) is built exactly like you are suggesting. UNA works as a API server and the app compiles into a NextJS web app and ReactNative apps (iOS and Android). The NextJS app can be deployed to Vercel, or AWS+SST. The NextJS app is using app router, authentication is using middleware if you're running on separate domain, or direct authentication if you're on same domain (say UNA is on subdomain like api.yoursite.com and the UIO is on yoursite.com).

4) Thank you for the suggestion. We do use Redis in some instances, especially in configurations for larger communities. For example when we calculate feeds in background rather than runtime, or when we create temporary KV lists (like segmented audience groups of AI-generated engagement actions). The MySQL cluster solution was a fairly old way of doing DB scaling, and we don't really do this anymore. Usually some form of caching solves most of the DB performance issues. For example PlanetScale + PS Boost is a good way to speed it up. So far we didn't feel the need to deploy read-instances to edge, as it would complicate the setup a fair bit (mind you that there's also the application server with logic that UI has to go through). UNA does write to DB a lot (reactions, views, audit) too. By all means it can be done, but for the performance gains it would give it's a concern only for very large communities (in tens of millions of members).

Thank you for the questions and the suggestions! If you'd like to jump of a call to discuss, please book it here - https://cal.com/team/una

Share
Helpful?
Log in to join the conversation