Deploy and Host AppFlowy on Sealos
AppFlowy is an open-source collaborative workspace for documents, databases, boards, and real-time team collaboration. This Sealos template deploys the AppFlowy Web client, AppFlowy Cloud API, background worker, GoTrue authentication, PostgreSQL, Redis, and S3-compatible object storage as a self-hosted workspace stack.
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.
This template uses managed Sealos components where possible. PostgreSQL is provisioned through KubeBlocks with pgvector enabled, Redis is provisioned through KubeBlocks for cache and background job coordination, and file storage uses Sealos Object Storage by default. If you already have an S3-compatible bucket, you can switch the storage backend to external S3 during deployment.
The template intentionally keeps the runtime minimal: it includes the required Web, Cloud, Worker, GoTrue, PostgreSQL, Redis, and object storage services, and does not deploy optional AI, search, admin frontend, or MinIO containers.
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
- Sealos Object Storage by default, or an external S3-compatible bucket
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. The default option creates a Sealos Object Storage bucket; an external S3 bucket can be selected conditionally.
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. The Redis endpoint is wired to the KubeBlocks Redis data service generated by this template.
Resource Profile
The template was live-tested and tuned to the following minimal resource profile:
| Component | CPU limit | Memory limit | Storage |
|---|
| AppFlowy Web | 100m | 128Mi | - |
| GoTrue | 100m | 128Mi | - |
| AppFlowy Cloud | 200m | 256Mi | - |
| AppFlowy Worker | 100m | 128Mi | - |
| PostgreSQL | 500m | 512Mi | 1Gi |
| Redis data node | 500m | 512Mi | 1Gi |
| Redis Sentinel | 500m | 512Mi | 1Gi |
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.
Deployment Guide
- Open the AppFlowy template and click Deploy Now.
- Configure the required parameters:
- S3 provider: keep
sealos-objectstorage for the built-in Sealos Object Storage bucket, or choose external-s3 if you already have an S3-compatible 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.
- External S3 fields: only required when
external-s3 is selected.
- Click Deploy and wait for the template to finish creating the App, PostgreSQL, Redis, object storage, and public routes.
- Open the AppFlowy application URL from the Sealos Canvas or App Store deployment result.
- Sign in or create a user account from the AppFlowy login page.
Login and Registration
AppFlowy opens at the main application URL and redirects to /app. On the login page, enter an email address and continue with password authentication.
New users can click Create account on the login page and register with an email and password. This template enables GoTrue email auto-confirmation, so no external SMTP setup is required for the first login. After registration, AppFlowy creates a default workspace and opens the main workspace UI.
The values configured as gotrue_admin_email and gotrue_admin_password bootstrap the GoTrue service admin account. Do not use this admin account as the normal AppFlowy Web workspace account; create a new user from the Web login page so AppFlowy Cloud can initialize the corresponding user profile and default workspace.
Configuration
| Parameter | Default | Required | Description |
|---|
appflowy_s3_provider | sealos-objectstorage | Yes | Selects Sealos Object Storage or an external S3-compatible bucket. |
gotrue_admin_email | [email protected] | Yes | Bootstrap admin email for GoTrue service administration. Use Web registration for AppFlowy workspace users. |
gotrue_admin_password | empty | Yes | Bootstrap admin password for GoTrue service administration. Set and save this during deployment. |
external_s3_endpoint | empty | Conditional | S3 API endpoint when external-s3 is selected. |
external_s3_public_endpoint | empty | Conditional | Public S3 endpoint used for presigned URLs. |
external_s3_access_key | empty | Conditional | External S3 access key. |
external_s3_secret_key | empty | Conditional | External S3 secret key. |
external_s3_bucket | empty | Conditional | Existing external S3 bucket name. |
external_s3_region | us-east-1 | Conditional | External S3 region. |
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, storage, or replicas 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 normal AppFlowy user from the Web login page instead of signing in with the GoTrue admin account. The admin account can authenticate with GoTrue but may not have an AppFlowy workspace profile.
- Confirm that
gotrue_admin_password was set during deployment if you are checking GoTrue administration.
- Open the GoTrue public URL and check
/health from the browser if needed.
- Make sure users are registering through the AppFlowy Web login page, not the internal service URL.
AppFlowy loads but workspace actions fail
- Check the AppFlowy Cloud service health at
/api/health 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
- If using the default storage option, verify that the Sealos Object Storage bucket was created.
- If using external S3, confirm the endpoint, public endpoint, bucket name, access key, secret key, and region.
- The template sets
APPFLOWY_S3_CREATE_BUCKET=false, so external buckets must already exist.
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.