AppFlowy Docs
Search…
🐧
Building on Linux
Notes:
  • The following steps are verified on
    • lubuntu 20.04 - X86_64
    • Linux Mint 20.3 - 86_64
    • ubuntu 20.04 - aarch64
    • redhat - X86_64
    • Arch Linux - X86_64
    • Deepin - X86_64
    • Raspberry Pi OS - aarch64
  • You may need to disable hardware 3D acceleration if you are running AppFlowy in a VM. Otherwise, certain GL failures will prevent the app from launching.
  • If you encounter any issues, have a look at Troubleshooting first. If your issue is not included in the page, please create an issue or ask on Discord.
There is a known issue with Ubuntu 22.04, Fedora 36, and PopOS 22.04: Failed to load dynamic library 'libdart_ffi.so': libssl.so.1.1: cannot open shared object file: No such file or directory The issue can be fixed by installing the required missing libraries:
# Fedora
sudo dnf in openssl1.1.x86_64 # Workstation
rpm-ostree upgrade && rpm-ostree install openssl1.1.x86_64 # Silverblue
​
# Ubuntu & PopOS
$ wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.6_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1l-1ubuntu1.6_amd64.deb

Step 1: Get the source code

Clone the source code from our Github project.
You should fork the code instead if you wish to submit code to AppFlowy. You'll find information on that in Setting Up Your Repositories​
git clone https://github.com/AppFlowy-IO/appflowy.git
img.png

Step 2: Install your build environment

Feel free to ask questions on our Discord so that we may refine this document and make the process as easy as possible for you.
  • Install system prerequisites
Ubuntu
Arch
sudo apt-get install curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev unzip
yay -S curl base-devel sqlite openssl clang cmake ninja pkg-config gtk3 unzip
img.png
git clone https://github.com/flutter/flutter.git
cd flutter
echo "export PATH=\$PATH:"`pwd`"/bin" >> ~/.profile
export PATH="$PATH:`pwd`/bin"
cd ..
img.png
  • Run the setup script from the base directory
cd appflowy
./frontend/scripts/install_dev_env/install_linux.sh
img.png
img.png
If you get the warning as shown above, run following command:
export PATH="$PATH":"$HOME/.pub-cache/bin"

Step 3: Build AppFlowy (Flutter GUI application)

  • Change to the frontend directory
cd frontend
  • Optionally if you want to Build flowy-sdk-dev (dart-ffi)
Development
Production
cargo make --profile development-linux-x86_64 flowy-sdk-dev
cargo make --profile production-linux-x86_64 flowy-sdk-release
img.png
  • Build AppFlowy. You'll find the binary in app_flowy/product/linux/AppFlowy/
Development
Production
cargo make -p development-linux-x86_64 appflowy-linux-dev
cargo make -p production-linux-x86_64 appflowy-linux
img.png

Step 4: Run the application

cd app_flowy/product/0.0.5/linux/Debug/AppFlowy
./app_flowy
img.png
  • A new window as shown below will show up after you run the application:
img.png
  • If using a virtual machine
    • Run Linux GUI application through x11 on windows (use MobaXterm) for instance:
export DISPLAY=localhost:10

Step 5: Edit and run the application

[VS Code]
  1. 1.
    Open the frontend folder located at xx/AppFlowy/frontend with VS Code.
  2. 2.
    Go to the Run and Debug tab and then click AF: Clean + Rebuild All for the first time running.
img.png
If you encounter any issues, have a look at Troubleshooting first. If your issue is not included in the page, please create an issue or ask on Discord.

Building in release mode

  1. 1.
    Go to the AppFlowy/frontend/ directory.
  2. 2.
    Run the following command to create the binary.
cargo make --profile production-linux-x86 appflowy
The scripts are located in the AppFlowy/frontend/Makefile.toml file.
The resulting binary file is located in AppFlowy/frontend/app_flowy/product/x.x.x/linux/Release/AppFlowy/.
Copy link
On this page
Step 1: Get the source code
Step 2: Install your build environment
Step 3: Build AppFlowy (Flutter GUI application)
Step 4: Run the application
Step 5: Edit and run the application
Building in release mode