From 9261aa193beb0ca543363a6003e54d48e920e790 Mon Sep 17 00:00:00 2001 From: KemoNine Date: Fri, 11 Jan 2019 06:10:19 +0000 Subject: [PATCH 1/5] refactor docker to support arm32/arm64/amd64 all in one build --- Dockerfile | 54 ++++++++++++++++++++++++++++++++---------- Dockerfile.arm64 | 25 ------------------- docker-install-tini.sh | 25 +++++++++++++++++++ 3 files changed, 66 insertions(+), 38 deletions(-) delete mode 100644 Dockerfile.arm64 create mode 100755 docker-install-tini.sh diff --git a/Dockerfile b/Dockerfile index 5b22f39bf..6a81d9701 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,48 @@ -FROM node:6-alpine +FROM node:6-stretch-slim -COPY . /cryptpad -WORKDIR /cryptpad - -RUN apk add --no-cache git tini \ - && npm install --production \ - && npm install -g bower \ - && bower install --allow-root - -EXPOSE 3000 3001 +# You want USE_SSL=true if not putting cryptpad behind a proxy +ENV USE_SSL=false +ENV STORAGE=\'./storage/file\' +ENV LOG_TO_STDOUT=true +# Persistent storage needs VOLUME /cryptpad/datastore VOLUME /cryptpad/customize +VOLUME /cryptpad/blobstage +VOLUME /cryptpad/pins +VOLUME /cryptpad/tasks +VOLUME /cryptpad/block -ENV USE_SSL=false -ENV STORAGE=\'./storage/file\' -ENV LOG_TO_STDOUT=true +# Required packages +# jq is a build only dependency, removed in cleanup stage +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + git jq python + +# Install tini for faux init +# sleep 1 is to ensure overlay2 can catch up with the copy prior to running chmod +COPY ./docker-install-tini.sh / +RUN chmod a+x /docker-install-tini.sh \ + && sleep 1 \ + && /docker-install-tini.sh \ + && rm /docker-install-tini.sh + +# Cleanup apt +RUN apt-get remove -y --purge jq python \ + && apt-get auto-remove -y \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* +# Install cryptpad +COPY . /cryptpad +WORKDIR /cryptpad +RUN npm install --production \ + && npm install -g bower \ + && bower install --allow-root + +# Unsafe / Safe ports +EXPOSE 3000 3001 + +# Run cryptpad on startup CMD ["/sbin/tini", "--", "/cryptpad/container-start.sh"] + diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 deleted file mode 100644 index ec11ddc55..000000000 --- a/Dockerfile.arm64 +++ /dev/null @@ -1,25 +0,0 @@ -FROM arm64v8/node:6 - -COPY . /cryptpad -WORKDIR /cryptpad - -RUN npm config set unsafe-perm true - -ADD https://github.com/krallin/tini/releases/download/v0.18.0/tini-static-arm64 /sbin/tini -RUN chmod a+x /sbin/tini - -RUN apt install -y git \ - && npm install --production \ - && npm install -g bower \ - && bower install --allow-root - -EXPOSE 3000 3001 - -VOLUME /cryptpad/datastore -VOLUME /cryptpad/customize - -ENV USE_SSL=false -ENV STORAGE=\'./storage/file\' -ENV LOG_TO_STDOUT=true - -CMD ["/sbin/tini", "--", "/cryptpad/container-start.sh"] diff --git a/docker-install-tini.sh b/docker-install-tini.sh new file mode 100755 index 000000000..a9a92e871 --- /dev/null +++ b/docker-install-tini.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +# Figure out latest release via GitHub API +release=$(curl --silent "https://api.github.com/repos/krallin/tini/releases/latest" | jq -r .tag_name) + +# _Reliable_ way to get which arch for tini download +arch=$(python < Date: Fri, 11 Jan 2019 17:57:04 +0000 Subject: [PATCH 2/5] Update to node:6-stretch as slim is not available on arm64v8 labels --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6a81d9701..182eece52 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM node:6-stretch-slim +# 6-stretch is the ONLY node 6 release supported by arm32v7, arm64v8 and x86-64 docker hub labels +FROM node:6-stretch # You want USE_SSL=true if not putting cryptpad behind a proxy ENV USE_SSL=false From 73a75c11c937fa6116d930296617d049383744a1 Mon Sep 17 00:00:00 2001 From: Paul Libbrecht Date: Wed, 23 Jan 2019 19:04:05 +0100 Subject: [PATCH 3/5] Actualizing German translations. PL --- www/common/translations/messages.de.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/www/common/translations/messages.de.js b/www/common/translations/messages.de.js index 3a916cab3..584dc7edd 100644 --- a/www/common/translations/messages.de.js +++ b/www/common/translations/messages.de.js @@ -556,6 +556,7 @@ define(function () { // Settings out.settings_cat_account = "Konto"; out.settings_cat_drive = "CryptDrive"; + out.settings_cat_cursor = "Kursor"; out.settings_cat_code = "Code"; out.settings_cat_pad = "Rich text"; out.settings_cat_creation = "Neues Dokument"; @@ -645,12 +646,20 @@ define(function () { out.settings_logoutEverywhere = "Das Ausloggen in allen andere Websitzungen erzwingen"; out.settings_logoutEverywhereConfirm = "Bist du sicher? Du wirst dich auf allen deinen Geräten wieder einloggen müssen."; + out.settings_driveDuplicateTitle = "Duplizierte eigene Dokumente"; + out.settings_driveDuplicateHint = "Wenn du eine deiner eigene Dokumente zu einem verteilten Ordner verschiebst, wird eine Kopie in deinem CryptDrive behalten, damit du die Kontrolle des Dokuments nicht verlierst. Du kannst duplizierte Dateien verbergen. Nur die Version in dem verteilten Ordner wird dann angezeigt, ausser sie wurde gelöscht. In diesem Fall, wird sie wieder angezeigt." + out.settings_driveDuplicateLabel = "Duplizierte Dokumente verbergen"; + out.settings_codeIndentation = 'Einrücken für den Code-Editor (Leerzeichen)'; out.settings_codeUseTabs = "Mit Tabs einrücken (anstatt mit Leerzeichen)"; + out.settings_codeFontSize = "Grösse des Zeichensatzes im Code-Editor"; out.settings_padWidth = "Maximalgrösse des Editors"; out.settings_padWidthHint = "Rich-text Dokumente benutzen normalerweise die grösste verfügbare Zeilenbreite, das kann manchmal schwer lesbar sein. Du kannst die Breite des Editors hier reduzieren."; out.settings_padWidthLabel = "Die Breite des Editors reduzieren"; + out.settings_padSpellcheckTitle = "Rechtschreibung"; + out.settings_padSpellcheckHint = "This option allows you to enable spellcheck in rich text pads. Spelling errors will be underlined in red and you'll have to hold your Ctrl or Meta key while right-clicking to see the correct options."; + out.settings_padSpellcheckLabel = "Enable spellcheck in rich text pads"; out.settings_creationSkip = "Den Erstellungsdialg für neue Dokumente überspringen"; out.settings_creationSkipHint = "Dieser Erstellungsdialog erlaubt Einstellungen für mehr Kontrolle und Sicherheit bei deinen Dokumenten. Aber der zusätzliche Dialog verlangsamt die Arbeit. Mit dieser Option kannst du diese Dialog überspringen und die Standard-Einstellungen wählen."; @@ -665,6 +674,7 @@ define(function () { out.settings_ownDriveHint = "Wir sind dabei dein CryptDrive zur neuen Version zu migrieren, damit du Zugang zu den neuen Features hast..."; out.settings_ownDriveButton = "Migrieren"; out.settings_ownDriveConfirm = "Bis du sicher?"; + out.settings_ownDrivePending = "Your account is being upgraded. Please do not close or reload this page until the process has completed."; out.settings_changePasswordTitle = "Ändere dein Passwort"; out.settings_changePasswordHint = "Ändere das Passwort deines Kontos ohne deine Daten zu verlieren. Du mußt einmal das jetzige Passwort eintragen und dann das gewünschte neue Passwort zweimal.
" + @@ -692,9 +702,6 @@ define(function () { out.upload_modal_title = "Uploadeinstellungen"; out.upload_modal_filename = "Dateiname (die Dateierweiterung {0} wird automatisch hinzugefügt)"; out.upload_modal_owner = "Eigene Datei"; - out.upload_rename = "Willst du einen neuen Name für {0} geben, bevor es zum Server hochgeladen wird?
" + - "Die Dateieendung ({1}) wird automatisch hinzugefügt. "+ - "Dieser Name bleibt für immer und wird für die andere Benutzer sichtbar."; out.upload_serverError = "Serverfehler: Die Datei kann aktuell nicht hochgeladen werden. "; out.upload_uploadPending = "Ein anderes Hochlade-Vorgang läuft gerade. Willst du den abbrechen und deine neue Datei hochladen?"; out.upload_success = "Deine Datei ({0}) wurde erfolgreich hochgeladen und in deinem CryptDrive hinzugefügt."; @@ -911,6 +918,10 @@ define(function () { " Jedes existes existierende Dokument kann eine Vorlage werden, indem es in den Vorlagen Abschnitt des CryptDrives geschoben wird." + " Du kannst auch eine Kopie eines Dokuments erstellen, die zur Vorlage wird, indem du auf der Vorlagen-Knopf () der Werkzeugleiste des Editors drückst." }, + abandoned: { + q: "Was ist ein verlassene Dokument?", + a: "Ein verlassene Dokument ist ein Dokument, das in dem Drive von keinem registrierten Benutzer ist und nicht sein sechs Monaten bearbeitet wurde. Verlassene Dokumente werden automatisch aus demm Server gelöscht." + }, }; out.faq.privacy = { title: 'Privacy', From 5410728bff0380d3fd332fa2449c56ad0c30c203 Mon Sep 17 00:00:00 2001 From: ansuz Date: Thu, 24 Jan 2019 14:47:39 +0100 Subject: [PATCH 4/5] lint compliance --- www/common/translations/messages.de.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/translations/messages.de.js b/www/common/translations/messages.de.js index 584dc7edd..6861d95ea 100644 --- a/www/common/translations/messages.de.js +++ b/www/common/translations/messages.de.js @@ -647,7 +647,7 @@ define(function () { out.settings_logoutEverywhereConfirm = "Bist du sicher? Du wirst dich auf allen deinen Geräten wieder einloggen müssen."; out.settings_driveDuplicateTitle = "Duplizierte eigene Dokumente"; - out.settings_driveDuplicateHint = "Wenn du eine deiner eigene Dokumente zu einem verteilten Ordner verschiebst, wird eine Kopie in deinem CryptDrive behalten, damit du die Kontrolle des Dokuments nicht verlierst. Du kannst duplizierte Dateien verbergen. Nur die Version in dem verteilten Ordner wird dann angezeigt, ausser sie wurde gelöscht. In diesem Fall, wird sie wieder angezeigt." + out.settings_driveDuplicateHint = "Wenn du eine deiner eigene Dokumente zu einem verteilten Ordner verschiebst, wird eine Kopie in deinem CryptDrive behalten, damit du die Kontrolle des Dokuments nicht verlierst. Du kannst duplizierte Dateien verbergen. Nur die Version in dem verteilten Ordner wird dann angezeigt, ausser sie wurde gelöscht. In diesem Fall, wird sie wieder angezeigt."; out.settings_driveDuplicateLabel = "Duplizierte Dokumente verbergen"; out.settings_codeIndentation = 'Einrücken für den Code-Editor (Leerzeichen)'; From 21d035393d0328a4157883a788747795d43b734e Mon Sep 17 00:00:00 2001 From: ansuz Date: Thu, 24 Jan 2019 14:48:18 +0100 Subject: [PATCH 5/5] disable english translations --- www/common/translations/messages.de.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/www/common/translations/messages.de.js b/www/common/translations/messages.de.js index 6861d95ea..7c860c2ec 100644 --- a/www/common/translations/messages.de.js +++ b/www/common/translations/messages.de.js @@ -658,8 +658,8 @@ define(function () { out.settings_padWidthHint = "Rich-text Dokumente benutzen normalerweise die grösste verfügbare Zeilenbreite, das kann manchmal schwer lesbar sein. Du kannst die Breite des Editors hier reduzieren."; out.settings_padWidthLabel = "Die Breite des Editors reduzieren"; out.settings_padSpellcheckTitle = "Rechtschreibung"; - out.settings_padSpellcheckHint = "This option allows you to enable spellcheck in rich text pads. Spelling errors will be underlined in red and you'll have to hold your Ctrl or Meta key while right-clicking to see the correct options."; - out.settings_padSpellcheckLabel = "Enable spellcheck in rich text pads"; + //out.settings_padSpellcheckHint = "This option allows you to enable spellcheck in rich text pads. Spelling errors will be underlined in red and you'll have to hold your Ctrl or Meta key while right-clicking to see the correct options."; + //out.settings_padSpellcheckLabel = "Enable spellcheck in rich text pads"; out.settings_creationSkip = "Den Erstellungsdialg für neue Dokumente überspringen"; out.settings_creationSkipHint = "Dieser Erstellungsdialog erlaubt Einstellungen für mehr Kontrolle und Sicherheit bei deinen Dokumenten. Aber der zusätzliche Dialog verlangsamt die Arbeit. Mit dieser Option kannst du diese Dialog überspringen und die Standard-Einstellungen wählen."; @@ -674,7 +674,7 @@ define(function () { out.settings_ownDriveHint = "Wir sind dabei dein CryptDrive zur neuen Version zu migrieren, damit du Zugang zu den neuen Features hast..."; out.settings_ownDriveButton = "Migrieren"; out.settings_ownDriveConfirm = "Bis du sicher?"; - out.settings_ownDrivePending = "Your account is being upgraded. Please do not close or reload this page until the process has completed."; + //out.settings_ownDrivePending = "Your account is being upgraded. Please do not close or reload this page until the process has completed."; out.settings_changePasswordTitle = "Ändere dein Passwort"; out.settings_changePasswordHint = "Ändere das Passwort deines Kontos ohne deine Daten zu verlieren. Du mußt einmal das jetzige Passwort eintragen und dann das gewünschte neue Passwort zweimal.
" +