AppFlowy-IO / AppFlowy

Bring projects, wikis, and teams together with AI. AppFlowy is an AI collaborative workspace where you achieve more without losing control of your data. The best open source alternative to Notion.
https://www.appflowy.io
GNU Affero General Public License v3.0
58.2k stars 3.83k forks source link

[FR] more tutorials on how to self-host appflowy #6711

Open annieappflowy opened 2 weeks ago

annieappflowy commented 2 weeks ago

Description

I've been trying to get appflowy selfhosted on my new ubuntu home server for a week. I'm kinda new to all of this and have adhd so it's a work in progress...there doesn't seem to be a walkthrough or any video tutorials on self hosting appflowy and my brain is fried. I seems to have errors in every container, no matter how i change everything. I would really appreciate a walkthrough/tutorial if anyone can point me in the right direction? AI and I have fallen out multiple times over this lol

Impact

New appflowy self-hosters

Additional Context

No response

casainho commented 2 weeks ago

I am selfhosting using an old PC running Linux Ubuntu 24.04.

I use Nginx as a reverse proxy to give me the HTTPS to appflowy cloud app (I also have other apps on my selfhost, so I use the Nginx to give the HTTPS to all them).

Then I just configure appflowy cloud as the official instructions.

My Nginx reverse proxy docker compose file:

version: '3.8'
services:
  nginx_reverse_proxy:
    hostname: nginx_reverse_proxy
    image: 'jc21/nginx-proxy-manager:2.12.1'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80'  # Public HTTP Port
      - '443:443'  # Public HTTPS Porta
      - '81:81'  # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP

    environment:
      # Set the SQLite DB file location to a path on the host
      DB_SQLITE_FILE: "/data/database.sqlite"  # Path inside the container

    volumes:
      - /mnt/server_usb_disk_1gb/nginx_reverse_proxy_server/data:/data  # Map the ./data directory on the host to /data in the container
      - /mnt/server_usb_disk_1gb/nginx_reverse_proxy_server/letsencrypt:/etc/letsencrypt  # Existing mapping for Let's Encrypt

    networks:
      - network_reverse_proxy

networks:
  network_reverse_proxy:
    external: true

Access: http://localhost:81/

Email: admin@example.com
Password: changeme

Here my settings for Nginx reverse proxy NPM UI, specific for Appflowy cloud selfhosting:

Nginx reverse proxy

Websockets Support must be enabled!!

image

image

image

Where 192.168.2.2 is the IP of the computer running the selfhosting and 8800 is the port I decided to use for Appflowy cloud.

Advanced --> Custom Nginx Configuration:

location / {
        proxy_pass http://192.168.2.2:8800;
    }

    location /api/websocket {
        proxy_pass http://192.168.2.2:8800;

        proxy_set_header Host $host;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }