Deploy and Host AppFlowy on Sealos
AppFlowy is an open-source collaborative workspace for documents, databases, boards, and real-time team collaboration. This template deploys the AppFlowy Cloud 0.16.5 backend bundle with AppFlowy Web 0.15.5 on Sealos.

About Hosting AppFlowy
AppFlowy provides a Notion-style workspace with pages, rich text editing, team workspaces, and structured knowledge management. The hosted Web client connects to AppFlowy Cloud for workspace data, authentication, collaboration APIs, WebSocket sync, and background import/export jobs.
PostgreSQL is provisioned through KubeBlocks with pgvector enabled, and Redis is provisioned through KubeBlocks for cache and background job coordination. File storage uses a private, pinned MinIO service with persistent storage by default; enabling the storage option selects a managed Sealos Object Storage bucket.
The core runtime includes Web, Cloud, Worker, GoTrue, PostgreSQL, Redis, and one S3-compatible storage backend. The upstream 0.16.5 bundle also publishes Search, Admin Frontend, and AI services; this template keeps those optional services disabled for a smaller default footprint.
Common Use Cases
- Team knowledge base: Create shared documents, project notes, and internal manuals.
- Personal productivity workspace: Run a private workspace for notes, tasks, and planning.
- Self-hosted collaboration: Keep workspace data in your own Sealos environment.
- Database-backed project tracking: Organize tasks, content, and structured records in AppFlowy databases.
- Lightweight workspace alternative: Deploy an open-source alternative to hosted workspace products.
Dependencies for AppFlowy Hosting
The Sealos template includes all required runtime dependencies:
- AppFlowy Web client
- AppFlowy Cloud API and WebSocket service
- AppFlowy Worker for background jobs
- GoTrue authentication service
- KubeBlocks PostgreSQL with pgvector enabled
- KubeBlocks Redis
- Bundled MinIO with a 1Gi persistent volume by default, or optional Sealos Object Storage
Deployment Dependencies
Implementation Details
Architecture Components
This template deploys the following services:
- AppFlowy Web: Browser UI exposed at the main application URL.
- AppFlowy Cloud: API and WebSocket backend for workspaces, documents, collaboration, and file metadata.
- AppFlowy Worker: Background service for asynchronous jobs such as imports and file-related tasks.
- GoTrue: Email/password authentication service used by AppFlowy.
- PostgreSQL: External database selected by default instead of SQLite, provisioned with KubeBlocks and pgvector support.
- Redis: External Redis selected by default for cache and background coordination.
- Object Storage: S3-compatible storage backed by a Sealos bucket when
use_sealos_objectstorage is enabled.
- Bundled MinIO: A pinned MinIO StatefulSet, persistent volume, and HTTPS API endpoint when
use_sealos_objectstorage is disabled.
Configuration
The AppFlowy Web client receives three public URLs at startup:
APPFLOWY_BASE_URL: the main application URL
APPFLOWY_GOTRUE_BASE_URL: the separate public GoTrue authentication URL
APPFLOWY_WS_BASE_URL: the WebSocket URL under the main application host
The Cloud and Worker services use internal Kubernetes service discovery for PostgreSQL, Redis, and GoTrue. Startup init containers wait for these dependencies before launching the application processes. The Redis endpoint is wired to the KubeBlocks Redis data service generated by this template.
With Sealos Object Storage enabled, backend S3 traffic passes through a pinned private OpenResty compatibility proxy while browser-facing presigned URLs use the public HTTPS endpoint. The proxy adds the required Content-MD5 header to multi-object cleanup requests before forwarding them to Sealos Object Storage.
AppFlowy Cloud exposes /api/ready for startup, liveness, and readiness checks. GoTrue remains a separate administration and authentication service with its own public URL.
Resource Profile
The template was live-tested and tuned to the following minimal resource profile:
| Component | CPU limit | Memory limit | Storage |
|---|
| AppFlowy Web | 100m | 256Mi | - |
| GoTrue | 100m | 128Mi | - |
| AppFlowy Cloud | 100m | 256Mi | - |
| AppFlowy Worker | 100m | 128Mi | - |
| PostgreSQL | 500m | 512Mi | 1Gi |
| Redis data node | 500m | 512Mi | 1Gi |
| Redis Sentinel | 500m | 512Mi | 1Gi |
| Bundled MinIO (optional) | 500m | 512Mi | 1Gi |
| Sealos S3 compatibility proxy (optional) | 100m | 128Mi | - |
Live registration, page creation, editing, reload, and S3 cleanup validation selected these minimum tiers. Web and Cloud both reached the 128Mi ceiling and use the 256Mi tier. For larger teams, increase AppFlowy Cloud memory first, then scale PostgreSQL and Redis according to workspace size and traffic.
License Information
AppFlowy and AppFlowy Cloud are licensed under the GNU Affero General Public License v3.0. This Sealos template only packages the deployment configuration.
Why Deploy AppFlowy on Sealos?
Sealos is an AI-assisted Cloud Operating System built on Kubernetes that unifies the entire application lifecycle, from development in cloud IDEs to production deployment and management. By deploying AppFlowy on Sealos, you get:
- One-click deployment: Deploy the full multi-service AppFlowy stack from the App Store.
- Managed dependencies: PostgreSQL, Redis, public ingress, TLS, and object storage are provisioned together.
- Persistent storage: Database and object storage data survive application restarts.
- Public HTTPS access: Sealos provides public URLs and TLS certificates automatically.
- Simple customization: Configure storage backend, credentials, and resources through the deployment form and Canvas.
- Kubernetes-native operations: Adjust resources, inspect logs, and manage services without writing Kubernetes manifests manually.
- Pay-as-you-go resources: Start with the template defaults and increase capacity as workspace demand grows.
Deployment Guide
- Open the AppFlowy template and click Deploy Now.
- Configure the required parameters:
- Use Sealos Object Storage: keep this disabled for the bundled MinIO service, or enable it to create a managed Sealos bucket.
- GoTrue admin email: the bootstrap admin email.
- GoTrue admin password: the bootstrap admin password. Save this value because it is not generated for you.
- Click Deploy and wait 2-3 minutes for the App, PostgreSQL, Redis, storage, and public routes to become ready. Sealos then opens the Canvas.
- Open the AppFlowy URL from the deployment result or the App resource card.
- Register a workspace user at
/login?action=signUpPassword, then continue to /app.
Login and Registration
AppFlowy opens at the main application URL and continues to /app. Existing users sign in from the Web login page with their workspace email and password.
New users register through /login?action=signUpPassword with an email and password. GoTrue email auto-confirmation is enabled, and AppFlowy Cloud creates the user profile and default workspace before opening /app.
The gotrue_admin_email and gotrue_admin_password values bootstrap the separate GoTrue service administrator. Use those credentials for GoTrue administration, and create workspace users through AppFlowy Web registration.
Configuration
| Parameter | Default | Required | Description |
|---|
use_sealos_objectstorage | false | Yes | Uses a managed Sealos bucket when enabled; deploys pinned MinIO when disabled. |
gotrue_admin_email | User supplied | Yes | Bootstrap admin email for GoTrue service administration. Use Web registration for AppFlowy workspace users. |
gotrue_admin_password | User supplied | Yes | Bootstrap admin password for GoTrue service administration. Set and save this during deployment. |
Scaling
To scale AppFlowy after deployment:
- Open the Canvas for your AppFlowy deployment.
- Click the AppFlowy Cloud, Web, Worker, PostgreSQL, or Redis resource card.
- Increase CPU, memory, or storage according to workload needs.
- Apply the changes and wait for the affected pods to restart.
For most installations, increase AppFlowy Cloud and PostgreSQL resources before increasing the Web client resources.
Troubleshooting
Cannot sign up or log in
- Create a workspace user at
/login?action=signUpPassword; AppFlowy Cloud initializes the profile during this flow.
- Use
gotrue_admin_email and gotrue_admin_password for the separate GoTrue administration surface.
- Check GoTrue
/health when authentication service readiness needs inspection.
AppFlowy loads but workspace actions fail
- Check AppFlowy Cloud readiness at
/api/ready on the main application URL.
- Inspect AppFlowy Cloud logs from the Sealos Canvas.
- Verify that the PostgreSQL and Redis resource cards are running.
File uploads or imports fail
- With Sealos Object Storage enabled, verify that the bucket resource and bucket-scoped credentials are ready.
- Verify that the private S3 compatibility proxy is Ready when Sealos Object Storage is enabled.
- With Sealos Object Storage disabled, verify that the MinIO StatefulSet, 1Gi volume, Service, and storage Ingress are ready.
Additional Resources
License
This Sealos template is provided under the same repository license as the templates project. AppFlowy and AppFlowy Cloud are licensed under the GNU Affero General Public License v3.0.