system: information panel and event log; about: download this build's source
System page laid out after 3CX's admin dashboard: a System information panel (version, host name, company, public IP, LAN IPs, ports, telephony, restart needed, copy buttons, how to restart) and an Event log panel (system_events, 90 days: trunk down/up, Asterisk down/up, restart needed, config failed, 911, public IP changed, backups, disk) with Load more and a CSV download. About (/about, no sign-in, linked from the login page, My phone and System): AGPL-3.0 notice, credits, the repository link, and "Code v<version>", which downloads selfphone.tar.gz: the api image now tars its own build context (no .env, data, node_modules, build output or .git) before installing anything. Task: M11-T7
This commit is contained in:
1 parent
a6ba61756c
commit
0ff0f9292b
29 files changed
+5035
-79
No files matched your search
@@ -3,6 +3,13 @@ FROM node:24-trixie-slim AS build
|
||||
RUN npm install -g corepack@latest && corepack enable
|
||||
WORKDIR /src
|
||||
COPY . .
|
||||
# The source of exactly this build, before anything is installed or built (AGPL-3.0 §13, 08 §4):
|
||||
# the build context minus .dockerignore, served at /api/about/source.
|
||||
RUN v=$(node -p "require('./package.json').version") \
|
||||
&& echo "$v" > /VERSION \
|
||||
&& tar --sort=name --owner=0 --group=0 --numeric-owner --transform "s,^\.,selfphoneng-$v," \
|
||||
-czf /selfphone.tar.gz . \
|
||||
&& tar -tzf /selfphone.tar.gz > /dev/null
|
||||
RUN pnpm install --frozen-lockfile \
|
||||
&& pnpm --filter @selfphoneng/shared build \
|
||||
&& pnpm --filter @selfphoneng/web build \
|
||||
@@ -27,6 +34,7 @@ COPY --from=build /src/apps/web/dist ./public
|
||||
COPY --from=build /src/apps/api/src/db/migrations ./dist/db/migrations
|
||||
# tsc only emits .js: files the code reads next to itself come over by hand.
|
||||
COPY --from=build /src/apps/api/src/auth/common-passwords.txt ./dist/auth/common-passwords.txt
|
||||
COPY --from=build /VERSION /selfphone.tar.gz ./
|
||||
ENV NODE_ENV=production
|
||||
ENTRYPOINT ["/usr/bin/tini","--"]
|
||||
CMD ["node","dist/index.js"]
|
||||
Reference in new issue
Block a user