9 Commits

Author SHA1 Message Date
21b21ce73c fix: fix my-mc command 2025-05-27 23:57:57 -07:00
4a7fbef176 test 2025-05-27 19:44:32 -07:00
a1ec0ba829 add KEY default value 2025-05-27 13:57:23 -07:00
6d78af4d3a fix: rename CONNECTOR envar to MY_MC_API_KEY 2025-05-27 13:46:23 -07:00
85428100c0 fix: --connector arg is renamed to --key 2025-05-27 13:33:42 -07:00
407cfcfb69 bump holesail version to 2.1.0 2025-05-25 06:38:01 -07:00
5e03c2c30d fix env UDP option 2025-05-14 01:13:43 -07:00
9c1d769ed8 add UDP environment variable 2025-05-13 18:24:58 -07:00
7989b82c04 handle ctrl-c now 2025-05-13 17:13:40 -07:00
4 changed files with 47 additions and 94 deletions

View File

@@ -1,60 +0,0 @@
name: Docker Image CI
on:
# schedule:
# - cron: "0 10 * * *"
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
anaxios/holesail
# generate Docker tags based on the following events/attributes
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Login to Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# - name: Login to GHCR
# if: github.event_name != 'pull_request'
# uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.repository_owner }}
# password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@@ -1,20 +1,23 @@
FROM node:lts-slim AS base
RUN npm install -g holesail@2.1.0
FROM base AS dev
WORKDIR /
COPY run.sh .
COPY fetch-my-mc-connector.js .
RUN chmod +x run.sh
RUN npm install -g holesail@2.0.3
ENV MODE=server
ENV HOST=0.0.0.0
ENV PORT=8989
ENV PUBLIC=true
ENV USERNAME=admin
ENV PASSWORD=admin
ENV ROLE=user
ENV KEY=""
ENV MY_MC_API_KEY=""
#ENV FORCE ""
ENV MODE server
ENV HOST 0.0.0.0
ENV PORT 8989
ENV PUBLIC true
ENV USERNAME admin
ENV PASSWORD admin
ENV ROLE user
ENV CONNECTOR ""
ENV FORCE ""
ENTRYPOINT [ "/run.sh" ]
CMD [ "/usr/bin/bash", "/run.sh" ]

View File

@@ -1,4 +1,4 @@
const apiKey = process.env.CONNECTOR;
const apiKey = process.env.MY_MC_API_KEY;
const result = fetch('https://api.my-mc.link/my-hash',{
method: "GET",
@@ -9,5 +9,9 @@ const result = fetch('https://api.my-mc.link/my-hash',{
const r = await response.json();
if (r.success == true) {
console.log(r.message);
}
} else {
throw new Error("failed to fetch holesail key");
}
}).catch(err => {
throw Error(err);
})

46
run.sh
View File

@@ -25,8 +25,8 @@ success() {
print "$GREEN" "$1"
}
get_connector_my-mc() {
printf "$(node /fetch-my-mc-connector.js)"
get_connector_my_mc() {
KEY="$(/usr/local/bin/node /fetch-my-mc-connector.js)"
}
cmd_argument_builder () {
@@ -35,14 +35,16 @@ cmd_argument_builder () {
"client")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$CONNECTOR" ]] && args="$args $CONNECTOR";
[[ "$KEY" ]] && args="$args $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"server")
[[ "$PORT" ]] && args="$args --live $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
[[ "$KEY" ]] && args="$args --key $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"filemanager")
args="--filemanager";
@@ -53,29 +55,24 @@ cmd_argument_builder () {
[[ "$PASSWORD" ]] && args="$args --password $PASSWORD";
[[ "$ROLE" = "admin" ]] && args="$args --role admin";
[[ "$ROLE" = "user" ]] && args="$args --role user";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
[[ "$KEY" ]] && args="$args --key $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"my-mc")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$CONNECTOR" ]] && args="$args $(get_connector_my-mc)";
[[ "$KEY" ]] && args="$args --connect $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
esac
printf "%s" "$args";
}
ARGS="$(cmd_argument_builder)"
if [[ ! $ARGS ]]; then
error "Invalid Mode."
exit 1
fi
# SIGUSR1-handler
# my_handler() {
# echo "my_handler"
# }
my_handler() {
echo "my_handler"
}
term_handler() {
if [ $pid -ne 0 ]; then
@@ -85,17 +82,26 @@ term_handler() {
exit 143; # 128 + 15 -- SIGTERM
}
if ! get_connector_my_mc; then exit 1; fi
ARGS="$(cmd_argument_builder)"
if [[ ! $ARGS ]]; then
error "Invalid Mode."
exit 1
fi
# setup handlers
# on callback, kill the last background process, which is `tail -f /dev/null` and execute the specified handler
#trap 'kill ${!}; my_handler' SIGUSR1
trap 'kill ${!}; term_handler' SIGTERM
trap 'kill ${!}; term_handler' SIGTERM SIGINT
# run application
holesail $ARGS &
/usr/local/bin/holesail $ARGS &
pid="$!"
# wait forever
while true
do
while true; do
tail -f /dev/null & wait ${!}
done