61 lines
3.2 KiB
Docker
61 lines
3.2 KiB
Docker
# Vaultnord sitt hvelv-image: offisiell Vaultwarden med vårt preg lagt inn.
|
|
#
|
|
# Ingen kildekode er endret. Vi legger til statiske filer i den ferdigbygde
|
|
# web-klienten og setter inn to linjer i index.html. Oppgradering er å bytte
|
|
# VW_VERSION og bygge på nytt - det tar sekunder, og web-klienten bygges ikke.
|
|
#
|
|
# Endringene er publisert i git.skui.io/vaultnord.no/vaultnord-brand, som AGPL
|
|
# krever når man distribuerer en endret versjon.
|
|
|
|
ARG VW_VERSION=alpine
|
|
|
|
# Egne norske tekster legges oppå klientens språkfil. Bitwardens nb-oversettelse
|
|
# er ufullstendig, og klienten faller tilbake til engelsk der den mangler - det
|
|
# gir et halvt norsk grensesnitt. Vi retter de skjermene kundene faktisk møter.
|
|
FROM vaultwarden/server:${VW_VERSION} AS kilde
|
|
|
|
FROM alpine:3.21 AS sprak
|
|
RUN apk add --no-cache jq
|
|
COPY --from=kilde /web-vault/locales/nb/messages.json /nb.json
|
|
ARG LOCALE_DIR=vault-image/locale
|
|
COPY ${LOCALE_DIR}/nb.json /over.json
|
|
RUN jq -s '.[0] * .[1]' /nb.json /over.json > /merged.json \
|
|
&& jq -e '.vaultWelcomeDialogTitle.message | test("Velkommen")' /merged.json >/dev/null
|
|
|
|
FROM vaultwarden/server:${VW_VERSION}
|
|
COPY --from=sprak /merged.json /web-vault/locales/nb/messages.json
|
|
|
|
# Ressursene ligger i brand/ i det offentlige repoet og i
|
|
# vault-image/brand/ i arbeidsrepoet. Byggekonteksten avgjør hvilken.
|
|
ARG BRAND_DIR=vault-image/brand
|
|
COPY ${BRAND_DIR}/ /web-vault/_vaultnord/
|
|
|
|
# Egne e-postmaler. Uten disse går invitasjonene ut med Vaultwardens navn og
|
|
# utseende - det er kundens første inntrykk av tjenesten, og det skal være vårt.
|
|
ARG MAIL_DIR=vault-image/mail
|
|
COPY ${MAIL_DIR}/ /vaultnord/templates/
|
|
|
|
RUN set -eux; \
|
|
cp /web-vault/_vaultnord/favicon.png /web-vault/images/favicon-32x32.png; \
|
|
cp /web-vault/_vaultnord/favicon-16.png /web-vault/images/favicon-16x16.png; \
|
|
cp /web-vault/_vaultnord/apple-touch-icon.png /web-vault/images/apple-touch-icon.png; \
|
|
sed -i 's#</head>#<link rel="stylesheet" href="/_vaultnord/brand.css"><link rel="icon" href="/_vaultnord/favicon.png"></head>#' /web-vault/index.html; \
|
|
sed -i 's#</body>#<div id="vaultnord-footer">Driftet av <a href="https://vaultnord.no">Vaultnord</a> \· <a href="/_vaultnord/kilde.html">kildekode og lisens</a></div></body>#' /web-vault/index.html; \
|
|
grep -q '_vaultnord/brand.css' /web-vault/index.html; \
|
|
\
|
|
# Web-klienten sier "Bitwarden" i grensesnittet - i velkomstskjermen, i
|
|
# hjelpetekster og i knappene. Vi bytter navnet i språkfilene. URL-er går
|
|
# klar: de skriver bitwarden.com med liten forbokstav.
|
|
find /web-vault/locales -name messages.json -exec \
|
|
sed -i 's/Bitwarden/Vaultnord/g' {} +; \
|
|
grep -q 'Vaultnord' /web-vault/locales/nb/messages.json; \
|
|
\
|
|
# Brandingen henger på navn i web-klienten. Finnes de ikke lenger, har
|
|
# oppstrøms endret noe, og pynten ville blitt stille borte. Da skal bygget
|
|
# stoppe her i stedet - se lista øverst i brand.css.
|
|
for marker in new-logo-themed bit-nav-logo bit-landing-footer \
|
|
--color-brand-600 --color-illustration-bg-primary tw-min-h-screen; do \
|
|
grep -rqs -- "$marker" /web-vault/ \
|
|
|| { echo "FANT IKKE '$marker' i web-klienten - brandingen må oppdateres" >&2; exit 1; }; \
|
|
done
|