# Delta Chat on FreeBSD

**URL:** <https://support.delta.chat/t/delta-chat-on-freebsd/2948>\
**Category:** Feature Proposal\
**Created:** [March 1, 2024, 12:14pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948 "2024-03-01T12:14:18Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 1, 2024, 12:14pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/1 "2024-03-01T12:14:18Z")

</div>

Can anyone create an installation package for FreeBSD?

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 1, 2024, 3:09pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/2 "2024-03-01T15:09:27Z")

</div>

While that would be cool, I think it’s out of scope for the core team currently.  
But I could try to help you here in this thread when you try to compile it yourself.

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 3, 2024, 10:24pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/3 "2024-03-03T22:24:38Z")

</div>

Thank you. This is what I get [git clone https://github.com/deltachat/deltachat-desktop.gitcd deltachat-deskt - Pastebin.com](https://pastebin.com/Xqb4yXZQ)

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 4, 2024, 11:14am UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/4 "2024-03-04T11:14:06Z")

</div>

Ok nodebindings are problematic, we will remove them in the following months until then you can try the method with the jsonrpc binary.  
For this you need to compile the dc-core-jsonrpc-stdio-server for freebsd ([deltachat-core-rust/deltachat-rpc-server at main · deltachat/deltachat-core-rust · GitHub](https://github.com/deltachat/deltachat-core-rust/tree/main/deltachat-rpc-server)) and use this desktop pr/branch [use stdio binary instead of dc node by Simon-Laux · Pull Request #3567 · deltachat/deltachat-desktop · GitHub](https://github.com/deltachat/deltachat-desktop/pull/3567)

And add the name of the binary build for freebsd to src/main/deltachat/stdio\_server.ts

Keep in mind that this branch is does not have the newest changes as it is already a bit older.

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 4, 2024, 4:23pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/5 "2024-03-04T16:23:17Z")

</div>

```auto
git clone https://github.com/deltachat/deltachat-core-rust.git
cd deltachat-core-rust/
cargo build
   Compiling deltachat v1.135.1 (/home/user/Repos/github.com/deltachat/deltachat-core-rust)
    Finished dev [optimized] target(s) in 7m 27s
cd ..
git clone https://github.com/deltachat/deltachat-desktop.git
cd deltachat-desktop

```

What to do next?

---

<div class="post-metadata">

**Author:** ![farooqkz](https://support.delta.chat/user_avatar/support.delta.chat/farooqkz/32/1762_2.png) [@farooqkz](https://support.delta.chat/u/farooqkz)\
**Post date:** [March 4, 2024, 7:39pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/6 "2024-03-04T19:39:20Z")

</div>

These:

```auto
npm install
npm run build
npm start

```

And see if it works. I’m happy to be of more help once I get myself a FreeBSD system which should happen in midterm future which should be 1-3 months. I mean having a FreeBSD base is already on my schedule.

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 5, 2024, 1:42am UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/7 "2024-03-05T01:42:56Z")

</div>

Sorry, I didn’t understand how to use pr/branch

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 5, 2024, 12:39pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/8 "2024-03-05T12:39:49Z")

</div>

build jsonrpc server binary

```auto
cd deltachat-core-rust/
cargo build -p deltachat-rpc-server --release

```

Then confirm that it worked:

```auto
file ./target/release/deltachat-rpc-server
./target/release/deltachat-rpc-server --openrpc # this should have technical output (a big JSON file)

```

then copy the file (`./target/release/deltachat-rpc-server`) to the desktop folder after you checked out the special branch

```auto
# copy the file to it
# then
cd deltachat-desktop
git checkout origin/stdio-experiment-with-jikstra

```

then edit `src/main/deltachat/stdio_server.ts` to add a case for freebsd, so it finds the binary.

then run the commands [farooqkz](https://support.delta.chat/u/farooqkz) send above:

```auto
npm install
npm run build
npm start

```

Update: I updated the branch, so it now also contains the new account switcher.

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 5, 2024, 1:24pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/9 "2024-03-05T13:24:19Z")

</div>

I copy ./target/release/deltachat-rpc-server to /home/user/bin/ and edited src/main/deltachat/stdio\_server.ts

```auto
  binary_name() {
   ...
    } else if ( p === 'freebsd' && a === 'x64' ) {
      return 'deltachat-rpc-server'
    }

```

npm install

> **[npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at...](https://pastebin.com/tQ5cvWTj)**
>
> Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 5, 2024, 1:31pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/10 "2024-03-05T13:31:49Z")

</div>

looks like electron does not support freebsd, you need to research if there is a recent unofficial build of it somewhere

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 5, 2024, 1:33pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/11 "2024-03-05T13:33:06Z")

</div>

maybe [GitHub - tagattie/FreeBSD-Electron: Electron port for FreeBSD](https://github.com/tagattie/FreeBSD-Electron) might work.

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 5, 2024, 1:42pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/12 "2024-03-05T13:42:44Z")

</div>

I run

```auto
pkg install electron25
electron25

```

and window opened  
but same errors with `npm install`

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 5, 2024, 1:48pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/13 "2024-03-05T13:48:00Z")

</div>

Seems you can skip download with

```auto
ELECTRON_SKIP_BINARY_DOWNLOAD=1 npm install

```

Edit: in package.json edit the script for `"start"`: replace `electron` with `electron25`

Let’s hope electron 25 is new enough, currently we use 28 on the official version

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 5, 2024, 2:13pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/14 "2024-03-05T14:13:18Z")

</div>

☹

> **[user@freebsd:~/Repos/github.com/deltachat/deltachat-desktop $ npm start\>...](https://pastebin.com/BiUqxwbL)**
>
> Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.

---

<div class="post-metadata">

**Author:** ![Simon](https://support.delta.chat/user_avatar/support.delta.chat/simon/32/287_2.png) [@Simon](https://support.delta.chat/u/Simon)\
**Post date:** [March 5, 2024, 5:41pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/15 "2024-03-05T17:41:38Z")

</div>

looks like you need to patch `node_modules/application-config-path/index.js` to add support for FreeBSD

This module basically returns the path where the config file and accounts should be saved.

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [March 7, 2024, 3:25am UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/16 "2024-03-07T03:25:42Z")

</div>

```auto
node_modules/application-config-path/index.js
+ case 'freebsd': return linux(name)
~/Repos/github.com/deltachat/deltachat-desktop $ cp /home/user/bin/deltachat-rpc-server ./
npm run build
npm start

```

And it worked! Thank you!

---

<div class="post-metadata">

**Author:** ![farooqkz](https://support.delta.chat/user_avatar/support.delta.chat/farooqkz/32/1762_2.png) [@farooqkz](https://support.delta.chat/u/farooqkz)\
**Post date:** [April 18, 2024, 6:02pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/17 "2024-04-18T18:02:18Z")

</div>

I know that BSDs can easily run Linux apps. So maybe a native Electron for BSDs is not necessary after all?

Edit: And as far as I remember, Linux apps for BSDs work much better than Windows apps for Linux/BSD(like Wine).

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [August 28, 2024, 12:20pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/18 "2024-08-28T12:20:11Z")

</div>

![Screenshot_20240828_151959](https://support.delta.chat/uploads/default/original/2X/6/6d6212467699204ce1e46d981e504f72ee5d40a3.png)

---

<div class="post-metadata">

**Author:** ![link2xt](https://support.delta.chat/user_avatar/support.delta.chat/link2xt/32/1971_2.png) [@link2xt](https://support.delta.chat/u/link2xt)\
**Post date:** [August 28, 2024, 2:37pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/19 "2024-08-28T14:37:02Z")

</div>

`DELTA_CHAT_RPC_SERVER` is not passed through unless you also specify `--allow-unsafe-core-replacement` like this:

```auto
DELTA_CHAT_RPC_SERVER="$(command -v deltachat-rpc-server)" npm run start -- --allow-unsafe-core-replacement

```

---

<div class="post-metadata">

**Author:** ![sergdash](https://support.delta.chat/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@sergdash](https://support.delta.chat/u/sergdash)\
**Post date:** [September 1, 2024, 8:42pm UTC](https://support.delta.chat/t/delta-chat-on-freebsd/2948/20 "2024-09-01T20:42:01Z")

</div>

tnx, it work

[Next page](https://support.delta.chat/t/delta-chat-on-freebsd/2948.md?page=2)
