| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/bin/bash
- #
- # Configuration options (set by environment variables during script execution)
- # - MTG_CONFIG - directory where mtg stores its configuration
- # - MTG_IMAGENAME - a name of the docker image to use
- # - MTG_PORT - which port of the host system should be used
- # - MTG_CONTAINER - a name of the container to use
- #
- # Example:
- # export MTG_CONFIG="$HOME/mtg_config"
- # export MTG_IMAGENAME="nineseconds/mtg:latest"
- # curl -sfL --compressed https://raw.githubusercontent.com/9seconds/mtg/master/run.sh | bash
-
- set -eu -o pipefail
-
- export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
- export MTG_CONFIG="${MTG_CONFIG:-$XDG_CONFIG_HOME/mtg}"
-
- mkdir -p "$MTG_CONFIG" || true
-
- MTG_SECRET="$MTG_CONFIG/secret"
- MTG_ENV="$MTG_CONFIG/env"
-
- if [ ! -f "$MTG_ENV" ]; then
- MTG_IMAGENAME="${MTG_IMAGENAME:-nineseconds/mtg:latest}"
- MTG_PORT="${MTG_PORT:-3128}"
- MTG_CONTAINER="${MTG_CONTAINER:-mtg}"
-
- echo "MTG_IMAGENAME=${MTG_IMAGENAME}" > "$MTG_ENV"
- echo "MTG_PORT=${MTG_PORT}" >> "$MTG_ENV"
- echo "MTG_CONTAINER=${MTG_CONTAINER}" >> "$MTG_ENV"
- fi
-
- set -a
- source "$MTG_ENV"
- set +a
-
- docker pull "$MTG_IMAGENAME"
- if [ ! -f "$MTG_SECRET" ]; then
- docker run \
- --rm \
- "$MTG_IMAGENAME" \
- generate-secret tls -c "$(openssl rand -hex 16).com" \
- > "$MTG_SECRET"
- fi
-
- echo
- echo "Proxy secret is $(cat "$MTG_SECRET"). Port is $MTG_PORT."
- echo
-
- docker ps --filter "Name=$MTG_CONTAINER" -aq | xargs -r docker rm -fv
- docker run \
- -d \
- --restart=unless-stopped \
- --name "$MTG_CONTAINER" \
- --ulimit nofile=51200:51200 \
- -p "$MTG_PORT:3128" \
- "$MTG_IMAGENAME" run "$(cat "$MTG_SECRET")"
|