Jigsaw-Code / outline-server

Outline Server, developed by Jigsaw. The Outline Server is a proxy server that runs a Shadowsocks instance and provides a REST API for access key management.
https://getoutline.org/
Apache License 2.0
5.79k stars 780 forks source link

Support server platform: ARM #1009

Open NoaHimesaka1873 opened 2 years ago

NoaHimesaka1873 commented 2 years ago

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.

ghost commented 2 years ago

I support this completely.

neneeen commented 2 years ago

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

kugaevsky commented 2 years ago

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

jason05031 commented 2 years ago

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

tnduc commented 2 years ago

same issue

pvp-by commented 2 years ago

+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

kugaevsky commented 2 years ago

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

seia-soto commented 2 years ago

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.

c0state commented 1 year ago

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)
  2. Retrieve the install script via wget https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh
  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. edit: I've been running this for over a year without issue