Skip to content

Commit

Permalink
feat(docker): add non-root user, labels, and healthcheck (closes #433)
Browse files Browse the repository at this point in the history
Now works with Pterodactyl.
  • Loading branch information
eartharoid committed Jun 14, 2023
1 parent faddacc commit bd42781
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
root = true

[*]
indent_style = tab
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
Expand Down
17 changes: 13 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,19 @@ RUN CI=true pnpm install --prod --frozen-lockfile
COPY --link . .

FROM node:18-alpine AS runner
ENV NODE_ENV=production \
RUN adduser --disabled-password --home /home/container container
USER container
ENV USER=container \
HOME=/home/container \
NODE_ENV=production \
HTTP_HOST=0.0.0.0 \
HTTP_PORT=80
WORKDIR /usr/bot
WORKDIR /home/container
COPY --from=builder /build ./
EXPOSE ${HTTP_PORT}
ENTRYPOINT [ "/usr/bot/scripts/start.sh" ]
EXPOSE ${HTTP_PORT}/tcp
ENTRYPOINT [ "/home/container/scripts/start.sh" ]
HEALTHCHECK --interval=15s --timeout=5s --start-period=60s \
CMD curl -f http://localhost:${HTTP_PORT}/status || exit 1
LABEL org.opencontainers.image.source=https://github.com/discord-tickets/bot \
org.opencontainers.image.description="The most popular open-source ticket bot for Discord." \
org.opencontainers.image.licenses="GPL-3.0-or-later"
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"bot"
],
"author": "eartharoid",
"license": "GPL-3.0",
"license": "GPL-3.0-or-later",
"bugs": {
"url": "https://github.com/discord-tickets/bot/issues"
},
Expand Down
6 changes: 5 additions & 1 deletion src/http.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,11 @@ module.exports = async client => {
: responseTime >= 10
? '&e'
: '&a') + responseTime + 'ms';
const level = req.routerPath === '/*' ? 'verbose' : 'info';
const level = req.routerPath === '/status'
? 'debug'
: req.routerPath === '/*'
? 'verbose'
: 'info';
client.log[level].http(short(`${req.id} ${req.ip} ${req.method} ${req.routerPath ?? '*'} &m-+>&r ${status}&b in ${responseTime}`));
if (!req.routerPath) client.log.verbose.http(`${req.id} ${req.method} ${req.url}`);
done();
Expand Down
6 changes: 6 additions & 0 deletions src/routes/status.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports.get = () => ({
handler: async (req, res) => {
const { status } = res.context.config.client.ws;
res.code(status === 0 ? 200 : 425).send(status);
},
});

0 comments on commit bd42781

Please sign in to comment.