Git Product home page Git Product logo

outline-server-multiarch's Introduction

outline-server-multiarch

The multi-arch distribution of Jigsaw's Outline-Server project for AArch servers.

Version Update Interval Target Supported OS/Arch
master daily upstream/master linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6
latest checked daily, released as upstream tags Latest tag linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6
release checked daily, not more updated (legacy) v1.9 or lower linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6

Usage

To install outline-server on your server using this docker image, paste following code before install:

# master release, updated daily (might fail sometime)
export SB_IMAGE="ghcr.io/seia-soto/shadowbox:master"

# stable release, NOT MORE UPDATED (It is for outline-server v1.9 or lower, use `latest` instead)
export SB_IMAGE="ghcr.io/seia-soto/shadowbox:release"

# latest release, updated irregularly
export SB_IMAGE="ghcr.io/seia-soto/shadowbox:latest"

# run install script
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

Development

Patching

There're Makefile in this repository and contains some useful commands for development, but you can continue only with git diff command.

Use make help to print help script.

Starting with make clone-upstream apply-patches would be help.

Local build

The build script uses Docker Buildx and you cannot publish the output image directly to the Docker daemon.

To build image locally, you can use following command with prepared environment:

  • For single-arch build, you just need to install:
    • jq
    • git
    • curl
    • tar
    • npm from Node.JS (use v12 for latest build, otherwise use v16)
    • Docker with Buildx and BuildKit support
  • For multi-arch build, you also need to install:
    • QEMU emulator for cross-platform build
# clone this repo
git clone https://github.com/seia-soto/outline-server-multiarch.git

# go to repo
cd outline-server-multiarch

: '
# by HoJeong Go

Usage:

    ./build.sh $arch $tag $checkpoint

    -- Arguments:

    $arch {string} The arch to build, using docker platform style
    $tag {string} The docker tag to use while building the image
    $checkpoint {string} The git branch or tag to checkout on Jigsaw-Code/Outline-Server

    -- Environments:

    $AB_LEAVE_BASE_DIRECTORY {any} If it is not empty string, script will not clean working directory

About:

    This script builds Outline-Server docker buildx image
    with specific arch by downloading compatible third_party
    automatically.
'

# set local image name to use
export SB_IMAGE="shadowbox-local"

PLATFORM="linux/amd64" # use one of linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6, or all
CHECKPOINT="latest" # use latest for latest tag or `master`

# build latest, use false for use_legacy_install if you're building master branch
bash ./build.sh "${PLATFORM}" "${SB_IMAGE}" "${CHECKPOINT}"

# run install script
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

Troubleshooting

Unsupported machine type: ${MACHINE_TYPE}. Please run this script on a x86_64 machine.

You can use sed '/local MACHINE_TYPE/,/fi/{d}' to remove lines.

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

LICENSE

This repository contains, modified and uses the hard work by Outline-Server Authors. The following files are originally from Outline-Server Authors and modified for personal use.

  • extra/scripts/build.action.sh

Also, the build script which named /build.sh will clone the Outline-Server repository and modify for personal use.

Other files which created by HoJeong Go (a.k.a Seia-Soto) has been licensed with MIT License.

MIT License Copyright 2022-2023 HoJeong Go

Permission is hereby granted, free of
charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to the
following conditions:

The above copyright notice and this permission notice
(including the next paragraph) shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

outline-server-multiarch's People

Contributors

seia-soto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

outline-server-multiarch's Issues

[Proposal] Post-testing after build

I see that the workflow has been successfully completed even the docker build include errors in its process. However, I don't have an idea yet to catch this.

[Proposal] Support conditional matrix on GitHub Actions

The length of CI script is inefficient since GitHub Actions does not support condition matrix strategy or conditional matrix computation yet. Currently, I approached via variable separation but it should not be done in this way.

[Placeholder] Sorry! Something went wrong.

I know way too little with how bash works but exporting the SB_IMAGE env var separately before running the command doesn't seem to work as the script fails with Sorry! Something went wrong.
However, SB_IMAGE=ghcr.io/seia-soto/shadowbox:latest sudo --preserve-env bash -c ./install_server.sh worked for me.

Thank you for this (issue was kind of an excuse to say this lmao)

Support

If CI didn't release a new image or something started not working on your side after the update, please leave a comment with your environment information and error summary. Leaving a comment here will trigger the GitHub system to email me about your case.

Before you report

Not a bug

If you're getting a connection failure:

  • check your firewall and network status
  • try with proxy client, specifically on Windows with OpenVPN drive bug

Connections

Direct contact

If your data contains security concerned content, please email to following address with PGP encrypted: [email protected] (OpenPGP Key Search)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.