Skip to content

Start9Labs/simplex-startos

 
 

Repository files navigation

Wrapper for SimpleX

SimpleX logo

SimpleX is a highly secure and sovereign messenger.

Currently the packaging process is somewhat involved, because SimpleX do not publish official multi-architecture images on Docker Hub. I was able to get support for ARM builds merged, however as of 2023-06-07, SimpleX have an open issue for not publishing ARM builds to Docker Hub. All of this is further complicated by the fact that Haskell cross compilation of SimpleXMQ is fairly broken - even using 30GB of RAM on an M1 Pro was not enough resources.

This wrapper therefore uses a multi-architecture Docker image hosted on my personal Docker Hub. This multi-architecture image can be created as follows:

  • Check out the SimpleXMQ repo on an ARM machine - git@github.com:simplex-chat/simplexmq.git
  • Build the docker image using their instructions, which, as of writing, was DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 -t shyfire131/smp-server:arm --build-arg APP="smp-server" --build-arg APP_PORT="5223" . --push
  • Then, mirror the official AMD64 image as follows:
docker pull simplexchat/smp-server
docker tag simplexchat/smp-server <your-dockerhub-username>/smp-server:amd64
docker push <your-dockerhub-username>/smp-server:amd64
  • At this point you need to do some manifest hacking:
  • docker buildx imagetools create -t shyfire131/smp-server:latest shyfire131/smp-server:arm shyfire131/smp-server:amd64

You can then reference shyfire131/smp-server in your Dockerfile, of course replacing shyfire131 with your own username in all of the above.

Other than that, building the .s9pk is fairly straightforward and doesn't need any special dependencies.

Cloning

Clone the project locally:

git clone git@github.com:shyfire131/simplex-startos.git
cd simplex-startos
make

Testing performed

  • Smoke testing - DMs work on macOS, iOS and Android
  • Continuity testing - Server config persists across service restarts
  • DR testing - Backups restore successfully

Roadmap

  • Support for XFTP Server (sending large attachments, will either be a standalone Service or bundled once multi-container services are supported)
  • Server statistics (log_stats: on in smp-server.ini)
  • Clearnet support will obviously be a superpower once available
  • Use official multi-architecture Docker Hub once SimpleX team fixes that
  • Configurable message retention period

About

A SimpleX chat service package for StartOS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 41.4%
  • TypeScript 25.2%
  • Dockerfile 16.8%
  • Makefile 16.6%