Skip to content

Latest commit

 

History

History
184 lines (130 loc) · 5.72 KB

File metadata and controls

184 lines (130 loc) · 5.72 KB

🐧 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-when-installing-appflowy.md first. If your issue is not included in the page, please create an issue or ask on Discord.

{% hint style="warning" %} 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

{% endhint %}

Step 1: Get the source code

Clone the source code from our Github project.

{% hint style="warning" %} 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.md {% endhint %}

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

{% tabs %} {% tab title="Ubuntu" %}

sudo apt-get install curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev unzip

{% endtab %}

{% tab title="Arch" %}

yay -S curl base-devel sqlite openssl clang cmake ninja pkg-config gtk3 unzip

{% endtab %} {% endtabs %}

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)

{% tabs %} {% tab title="Development" %}

cargo make --profile development-linux-x86_64 flowy-sdk-dev

{% endtab %}

{% tab title="Production" %}

cargo make --profile production-linux-x86_64 flowy-sdk-release

{% endtab %} {% endtabs %}

img.png

  • Build AppFlowy. You'll find the binary in app_flowy/product/linux/AppFlowy/

{% tabs %} {% tab title="Development" %}

cargo make -p development-linux-x86_64 appflowy-linux-dev

{% endtab %}

{% tab title="Production" %}

cargo make -p production-linux-x86_64 appflowy-linux

{% endtab %} {% endtabs %}

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. Open the frontend folder located at xx/AppFlowy/frontend with VS Code.
  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. Go to the AppFlowy/frontend/ directory.
  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/.