All apps · 0 apps
AppFlowy-Postgres
OfficialDocker app from vmalinics0's Repository
Overview
Readme
View on GitHubAppFlowy Cloud — Unraid Community Apps Templates
Unraid Community Apps templates for self-hosting AppFlowy Cloud — the open-source, privacy-first collaborative workspace (Notion alternative).
Services
| Container | Image | Role |
|---|---|---|
| AppFlowy-Postgres | pgvector/pgvector:pg16 |
Primary database |
| AppFlowy-Redis | redis:7 |
Cache & pub/sub |
| AppFlowy-MinIO | minio/minio |
S3-compatible object storage |
| AppFlowy-GoTrue | appflowyinc/gotrue |
Authentication (JWT, OAuth, email) |
| AppFlowy-Cloud | appflowyinc/appflowy_cloud |
Core backend API + WebSocket |
| AppFlowy-Admin | appflowyinc/admin_frontend |
Admin web console (/console) |
| AppFlowy-Web | appflowyinc/appflowy_web |
Browser client (/) |
| AppFlowy-Worker | appflowyinc/appflowy_worker |
Background job processor |
| AppFlowy-Search | appflowyinc/appflowy_search |
Full-text & semantic search |
| AppFlowy-AI (optional) | appflowyinc/appflowy_ai |
LLM chat & embeddings |
| AppFlowy-Nginx | nginx:stable-alpine |
Reverse proxy (public entry point) |
| AppFlowy-Certbot (optional) | certbot/certbot |
Automated Let's Encrypt TLS certificates |
Prerequisites
1. Create the appflowy Docker network
All containers communicate on a shared custom bridge network.
Via SSH or the Unraid terminal:
docker network create appflowy
2. Download the nginx config
Before starting AppFlowy-Nginx, place the custom config at:
/mnt/user/appdata/AppFlowy-Nginx/nginx.conf
mkdir -p /mnt/user/appdata/AppFlowy-Nginx/ssl
curl -o /mnt/user/appdata/AppFlowy-Nginx/nginx.conf \
https://raw.githubusercontent.com/vmalinics0/unraid-appflowy/main/nginx/nginx.conf
The nginx.conf in this repo uses Unraid container names (AppFlowy-Cloud, AppFlowy-GoTrue, etc.) instead of the default compose service names.
Deploy Order
Deploy containers in this order (each group can be deployed in parallel). The install step number is shown in each app's description in Community Apps.
Step 1 — AppFlowy-Postgres
Step 2 — AppFlowy-Redis
Step 3 — AppFlowy-MinIO
Step 4 — AppFlowy-GoTrue (waits for Postgres)
Step 5 — AppFlowy-Cloud (waits for GoTrue, Postgres, Redis, MinIO)
Step 6 — AppFlowy-Admin \
AppFlowy-Web | (wait for AppFlowy-Cloud)
AppFlowy-Worker |
AppFlowy-Search |
AppFlowy-AI (optional) /
Step 7 — AppFlowy-Nginx (deploy last)
Required Configuration
Set these values consistently across all templates before starting:
| Setting | Where to set | Notes |
|---|---|---|
YOUR_SERVER_IP |
All templates | Your Unraid server's LAN IP or domain |
| Postgres Password | AppFlowy-Postgres, AppFlowy-GoTrue, AppFlowy-Cloud, AppFlowy-Worker, AppFlowy-Search, AppFlowy-AI | Must be identical everywhere |
| JWT Secret | AppFlowy-GoTrue, AppFlowy-Cloud, AppFlowy-Search, AppFlowy-AI | Min 32 chars; must be identical everywhere |
| MinIO credentials | AppFlowy-MinIO, AppFlowy-Cloud, AppFlowy-Worker, AppFlowy-Search, AppFlowy-AI | Access key + secret key |
| Admin email/password | AppFlowy-GoTrue | Login for /console |
Accessing AppFlowy
| URL | Service |
|---|---|
http://YOUR_SERVER_IP/ |
AppFlowy Web (browser client) |
http://YOUR_SERVER_IP/console |
Admin console |
http://YOUR_SERVER_IP/minio/ |
MinIO web UI |
Native desktop/mobile clients: point them to http://YOUR_SERVER_IP as the server URL.
TLS / HTTPS
Three nginx config files are provided; choose one:
| Config file | Use when |
|---|---|
nginx/nginx.conf |
HTTP only (default, no TLS) |
nginx/nginx-https-custom.conf |
You have your own TLS certificate |
nginx/nginx-letsencrypt.conf |
Automated Let's Encrypt certificates |
Option A — User-provided certificate
- Place your certificate and key in
/mnt/user/appdata/AppFlowy-Nginx/ssl/:certificate.crtprivate_key.key
- Point the AppFlowy-Nginx nginx.conf path to
nginx-https-custom.conf. - Update all
http://URLs in every template tohttps://. - Update
APPFLOWY_WS_BASE_URLin AppFlowy-Web fromws://towss://. - Restart all containers.
Option B — Automated Let's Encrypt (AppFlowy-Certbot)
Requires a public domain name with port 80 reachable from the internet.
- Create the required host directories:
mkdir -p /mnt/user/appdata/AppFlowy-Nginx/letsencrypt mkdir -p /mnt/user/appdata/AppFlowy-Nginx/certbot-webroot - Download
nginx-letsencrypt.confand edit it — replaceYOUR_DOMAIN(two occurrences) with your actual domain:curl -o /mnt/user/appdata/AppFlowy-Nginx/nginx-letsencrypt.conf \ https://raw.githubusercontent.com/vmalinics0/unraid-appflowy/main/nginx/nginx-letsencrypt.conf - Point the AppFlowy-Nginx nginx.conf path to
nginx-letsencrypt.confand restart it. - In Community Apps, install AppFlowy-Certbot. Edit its Extra Parameters field — replace
yourdomain.comandadmin@yourdomain.comwith your real values. Start it; it will obtain the certificate and exit (this is normal). - Restart AppFlowy-Nginx to load the new certificate.
- Update all
http://URLs in every template tohttps://andAPPFLOWY_WS_BASE_URLfromws://towss://. - Schedule AppFlowy-Certbot to restart monthly (e.g. via the Unraid User Scripts plugin) for automatic renewal. After each renewal, restart AppFlowy-Nginx.
Submitting to Community Apps
- Fork / create a public GitHub repository.
- Push all files from this directory into the repo root.
- Submit the repository URL at https://ca.unraid.net/submit.
- Run Validate and Scan in the CA submission flow.
Support
- Template issues / requests: https://github.com/vmalinics0/unraid-appflowy/issues
- Template docs: https://github.com/vmalinics0/unraid-appflowy/blob/main/README.md
- Upstream AppFlowy Cloud discussions: https://github.com/AppFlowy-IO/AppFlowy-Cloud/discussions
Upstream
Install AppFlowy-Postgres on Unraid in a few clicks.
Find AppFlowy-Postgres in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
pgvector/pgvector:pg16Runtime arguments
- Network
custom:appflowy- Shell
bash- Privileged
- false
Template configuration
Persistent data directory for PostgreSQL. Must be on a path with enough free space.
- Target
- /var/lib/postgresql/data
- Default
- /mnt/user/appdata/AppFlowy-Postgres
- Value
- /mnt/user/appdata/AppFlowy-Postgres
PostgreSQL superuser username. Must match the value used in all other AppFlowy services.
- Target
- POSTGRES_USER
- Default
- postgres
- Value
- postgres
PostgreSQL superuser password. Change this before first start. Must match all other AppFlowy services.
- Target
- POSTGRES_PASSWORD
- Default
- changeme_strong_password
- Value
- changeme_strong_password
Default database name.
- Target
- POSTGRES_DB
- Default
- postgres
- Value
- postgres
PostgreSQL port. Exposed to the appflowy Docker network only. Change host port only if you need external access.
- Target
- 5432
- Default
- 5432
- Value
- 5432
Port PostgreSQL listens on inside the container. Keep in sync with the port mapping above.
- Default
- 5432
- Value
- 5432