outline-server icon indicating copy to clipboard operation
outline-server copied to clipboard

Support server platform: ARM

Open NoaHimesaka1873 opened this issue 3 years ago • 10 comments

Tried to run this on ARM server, it hanged on

 > Waiting for Outline server to be healthy ....

so I checked docker log and...

standard_init_linux.go:228: exec user process caused: exec format error

this happened. Seems like binaries don't support aarch64. Looks like adding aarch64-compatible binaries will solve this problem.

NoaHimesaka1873 avatar Nov 02 '21 15:11 NoaHimesaka1873

I support this completely.

ghost avatar Nov 03 '21 02:11 ghost

https://github.com/Jigsaw-Code/outline-server/issues/244#issuecomment-646507320 works for me on Oracle's ARM VPS

neneeen avatar Nov 12 '21 05:11 neneeen

You could try my build with arm64 support https://github.com/kugaevsky/outline-server-arm64

kugaevsky avatar Mar 01 '22 14:03 kugaevsky

root@instance-20220330-2007:~# sudo SB_IMAGE="kugaevsky/outline-server-arm64" bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)" Unsupported machine type: aarch64. Please run this script on a x86_64 machine

Sorry! Something went wrong. If you can't figure this out, please copy and paste all this output into the Outline Manager screen, and send it to us, to see if we can help you. Full log: /tmp/outline_logVG4

jason05031 avatar Mar 30 '22 12:03 jason05031

same issue

tnduc avatar May 20 '22 17:05 tnduc

+up

sudo SB_IMAGE="kugaevsky/outline-server-arm64" bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"
Unsupported machine type: aarch64. Please run this script on a x86_64 machine

not working 06.sept.22

pvp-by avatar Sep 05 '22 21:09 pvp-by

https://github.com/kugaevsky/outline-server-arm64/issues/3#issuecomment-1069800724

kugaevsky avatar Sep 06 '22 05:09 kugaevsky

Here's simpler solution.

curl -sL "https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh" | sed '/local MACHINE_TYPE/,/fi/{d}' | bash

You can test before run on https://sed.js.org/ too.

  • https://github.com/seia-soto/outline-server-multiarch/pkgs/container/shadowbox#unsupported-machine-type-machine_type-please-run-this-script-on-a-x86_64-machine

seia-soto avatar Sep 09 '22 03:09 seia-soto

Here's simpler solution.

curl -sL "https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh" | sed '/local MACHINE_TYPE/,/fi/{d}' | bash

You can test before run on https://sed.js.org/ too.

  • https://github.com/seia-soto/outline-server-multiarch/pkgs/container/shadowbox#unsupported-machine-type-machine_type-please-run-this-script-on-a-x86_64-machine

Can you please make a simple pull request and i feel like they will approve it.

Prajwal-Koirala avatar Oct 19 '22 15:10 Prajwal-Koirala

I've been watching this and other ARM support issues/PRs for years(!) and took another look just now. I was able to get this to work, somewhat satisfactorily, using https://github.com/tonistiigi/binfmt, on my Raspberry Pi 4 8GB running Ubuntu Server

In short,

  1. Install the emulator via docker run --privileged --rm tonistiigi/binfmt --install amd64 (for amd64 emulation)
    • You might need to run this via systemd (or whatever your system requires) as it doesn't persist on reboot
    • I followed https://askubuntu.com/a/919059/41028
  2. Retrieve the install script via wget https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh
    • Remove the lines at https://github.com/Jigsaw-Code/outline-server/blob/6ea0c1d084ab064f945078c0038fa56acf61c4a5/src/server_manager/install_scripts/install_server.sh#L417-L422 (the command at https://github.com/Jigsaw-Code/outline-server/issues/1009#issuecomment-1284197880 should currently work, but I did it manually)
  3. Finally, run the install script: sudo bash -c "./install_server.sh --hostname <ddns_hostname> --api-port abc --keys-port xyz" (I pass hostname since I have a Dynamic DNS name for my server and also specific ports, but you can leave these all out)

Unsure how much slower this is. Will need to test this a bit

c0state avatar Apr 16 '23 21:04 c0state