I made it work on arch linux. Leaving this here for others.
- git clone https://github.com/Jigsaw-Code/outline-client
- cd outline-client
- npm install --local
- npm run action tools/outline_proxy_controller/build
- cd tools/outline_proxy_controller/dist
- cp OutlineProxyController /usr/local/sbin/OutlineProxyController
Then copy this arch linux script to tools/outline_proxy_controller/build/install_arch_service.sh
And run it like $ sudo install_arch_service.sh
#!/bin/bash
set -eux
readonly PREFIX=/usr
readonly SERVICE_DIR=/etc/systemd/system
readonly SERVICE_NAME=outline_proxy_controller.service
readonly GROUP_NAME=outlinevpn
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)"
# Create outlinevpn group
groupadd -f "${GROUP_NAME}"
if id "${1}" &>/dev/null; then
usermod -aG "${GROUP_NAME}" "${1}"
echo "user ${1} has been added to ${GROUP_NAME} group"
else
echo "warn: no user will be added to ${GROUP_NAME} group" >&2
fi
# Copy/update the service's files.
cp -f "${SCRIPT_DIR}/OutlineProxyController" "${PREFIX}/bin"
cp -f "${SCRIPT_DIR}/${SERVICE_NAME}" "${SERVICE_DIR}/"
# Replace "--owning-user-id" argument in ".service" file with the actual user
if id "${1}" &>/dev/null; then
owneruid="$(id -u "${1}")"
sed -i "s/--owning-user-id=-1/--owning-user-id=${owneruid}/g" "${SERVICE_DIR}/${SERVICE_NAME}"
fi
# (Re-)start the service.
systemctl daemon-reload
systemctl enable "${SERVICE_NAME}"
systemctl restart "${SERVICE_NAME}"
# Sleep for a couple of seconds before exiting.
sleep 2
I am able to run the outline client and it connects.
The only weirdness seems that I get reconnected all the time. Will investigate this further when I have time.
the outline-manager and client work as app images without any issues so far.
Thanks for the contribution! I would be more than happy to review your pull request, if you wanted to link this as a workaround in the linux documentation.
Also, I went ahead and linked your solution to our Arch Linux Support ticket here: https://github.com/Jigsaw-Code/outline-client/issues/1685.
No way! Now it actually works on my Debian.
Thanks a lot!
I'd also like to say that the Outline Client didn't work on these Linux setups:
- Arch on my friend's laptop;
- Void on my laptop (it won't work even with this fix because it uses runit instead of systemd);
- Debian on my PC.
The only setup where Outline Client worked on was Fedora on my PC. And also Debian on my PC after using this fix.
The only weirdness seems that I get reconnected all the time. Will investigate this further when I have time.
Also, constantly reconnects, impossible to use.