2 Commits

Author SHA1 Message Date
fd64e8f816 move action to gitea
All checks were successful
Docker Image CI / docker (push) Successful in 2m27s
2025-07-18 19:57:59 -07:00
f71e8a6fcc fix action 2025-05-10 17:51:24 -07:00
4 changed files with 21 additions and 81 deletions

View File

@@ -1,23 +1,23 @@
FROM node:lts-slim AS base
RUN npm install -g holesail@2.1.0
FROM base AS dev
WORKDIR /
WORKDIR /temp
COPY run.sh .
COPY fetch-my-mc-connector.js .
RUN chmod +x run.sh
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 ""
RUN npm install -g holesail@1.10.1
CMD [ "/usr/bin/bash", "/run.sh" ]
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 ""
#EXPOSE 8989
WORKDIR /data
ENTRYPOINT [ "/temp/run.sh" ]

View File

@@ -1,17 +0,0 @@
const apiKey = process.env.MY_MC_API_KEY;
const result = fetch('https://api.my-mc.link/my-hash',{
method: "GET",
headers: {
'Accept': 'application/json', 'Content-Type': 'application/json', 'x-my-mc-auth': apiKey}
})
.then(async response => {
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);
})

51
run.sh
View File

@@ -1,9 +1,5 @@
#!/bin/bash
#set -x
pid=0
CYAN="\033[1;96m"
RED="\033[0;91m"
GREEN="\033[0;92m"
@@ -25,26 +21,20 @@ success() {
print "$GREEN" "$1"
}
get_connector_my_mc() {
KEY="$(/usr/local/bin/node /fetch-my-mc-connector.js)"
}
cmd_argument_builder () {
local args="";
case "$MODE" in
"client")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$KEY" ]] && args="$args $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
[[ "$CONNECTOR" ]] && args="$args $CONNECTOR";
;;
"server")
[[ "$PORT" ]] && args="$args --live $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$KEY" ]] && args="$args --key $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
;;
"filemanager")
args="--filemanager";
@@ -55,35 +45,13 @@ cmd_argument_builder () {
[[ "$PASSWORD" ]] && args="$args --password $PASSWORD";
[[ "$ROLE" = "admin" ]] && args="$args --role admin";
[[ "$ROLE" = "user" ]] && args="$args --role user";
[[ "$KEY" ]] && args="$args --key $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
;;
"my-mc")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$KEY" ]] && args="$args --connect $KEY";
[[ "$UDP" = "true" ]] && args="$args --udp";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
;;
esac
printf "%s" "$args";
}
# SIGUSR1-handler
my_handler() {
echo "my_handler"
}
term_handler() {
if [ $pid -ne 0 ]; then
kill -SIGTERM "$pid"
wait "$pid"
fi
exit 143; # 128 + 15 -- SIGTERM
}
if ! get_connector_my_mc; then exit 1; fi
ARGS="$(cmd_argument_builder)"
@@ -92,16 +60,5 @@ if [[ ! $ARGS ]]; then
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 SIGINT
holesail $ARGS
# run application
/usr/local/bin/holesail $ARGS &
pid="$!"
# wait forever
while true; do
tail -f /dev/null & wait ${!}
done