Commit graph

52 commits

Author SHA1 Message Date
SamTV12345
27dab95113
Fixed documentation to be pnpm run plugins i for plugin installation (#6405) 2024-05-24 21:57:39 +02:00
SamTV12345
fb2f4e8f54
Bumped pnpm (#6351)
* Bumped pnpm

* Install correct pnpm version

* Install specific pnpm version.
2024-04-24 19:08:48 +02:00
SamTV12345
fb56809e55
Feat/oauth2 (#6281): Added oauth to API paths
* Added oauth provider.

* Fixed provider.

* Added auth flow.

* Fixed auth flow and added scaffolding vite config.

* Added working oauth2.

* Fixed dockerfile.

* Adapted run.sh script

* Moved api tests to oauth2.

* Updated security schemes.

* Removed api key from existance.

* Fixed installation

* Added missing issuer in config.

* Fixed dev dependencies.

* Updated lock file.
2024-03-26 17:11:24 +01:00
Stefan Müller
1382c0c955
Improve dockerfile (#6254)
* Do not cache packages during installation

* Delete all caching directories after dependency installation
2024-03-23 07:37:06 +01:00
Denys Halenok
bd2198a70e
Allow providing local plugins to Docker image (#6243)
* Allow installing local and remote plugins simultaneously

* Add ETHERPAD_LOCAL_PLUGINS arg to Dockerfile
2024-03-19 12:51:11 +01:00
JannikStreek
bb8544d564
fix crash in docker development build as src/pnpm-lock.yaml does not exist anymore (#6244) 2024-03-19 12:49:48 +01:00
SamTV12345
dfc6377589 Fixed admin locales not present. 2024-03-18 21:04:13 +01:00
Stefan Müller
fe106f0afc
Improve plugins docker build and fixed plugin loading when dependencies are specified (#6164)
* Install pnpm only local - not global

* Install plugins during docker build with live-plugin-manager

* Migrated installer to ts.

* Added missing workspace script.

* Fixed docker build.

* Fix Dockerfile

* Fixed installer not being yet initialized.

* Ported installer to correct install path.

* Fixed pnpm installation.

* Fixed docker build.

* Fixed plugin loading.

* Fixed plugins not being able to be loaded.

* Fix plugin installation instructions in README

* Fixed startup.

* Fixed folder not present.

* Added unlinking dependencies.

* Added deleting dependencies.

* Fixed listing plugins.

---------

Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com>
2024-03-14 16:06:32 +01:00
SamTV12345
db46ffb63b
Feat/admin react (#6211)
* Added vite react admin ui.

* Added react i18next.

* Added pads manager.

* Fixed docker build.

* Fixed windows build.

* Fixed installOnWindows script.

* Install only if path exists.
2024-03-09 23:07:09 +01:00
Dmitry Ledentsov
7d715f066f
build(docker): build from behind a proxy (#6201)
* feat: Docker build from behind a proxy

* fix(docker): do not persist build-time proxy settings
2024-03-06 13:50:14 +01:00
JannikStreek
04063d664b
cleanup after workspace refactoring (#6174)
* fix bin folder and workflows as far its possible

cleanup of dockerfile

changed paths of scripts

add lock file

fix working directory for workflows

fix windows bin

fix travis (is travis used anyway?)

fix package refs

remove pnpm-lock file in root as these conflicts with the docker volume setup

optimize comments

use install again

refactor prod image call to run

fix --workspace can only be used inside a workspace

correct comment

try fix pipeline

try fix pipeline for upgrade-from-latest-release

install all deps

smaller adjustments

save

update dockerfile

remove workspace command

fix run test command

start repair latest release workflow

start repair latest release workflow

start repair latest release workflow

further repairs

* remove test plugin from docker compose
2024-02-21 21:50:11 +01:00
JannikStreek
b4ac96d823
Refactor project structure and introduce workspaces (#6170)
* prototype for structure change - working

* move server.ts

* Revert "move server.ts"

This reverts commit 4cf2e61dc0.

* adjusted package file

* further cleanup

* add workspace root flag

* fix docker install

* fix loadtest

* fix run
2024-02-19 22:31:27 +01:00
JannikStreek
03c8518e66
add docker dev setup (#6155)
* fix docker setup

* wording fix

* remove production env

* remove unneeded docker parts

* fix image size

* add readme

* add dev readme

* further refactoring

* make version work

* cleanup ignore

* refactor commit

* fix pnpm mount
2024-02-16 20:58:27 +01:00
SamTV12345
361b38ae50
Added pnpm (#6148)
* Added pnpm

* Removed cache for npm.

* Fixed.

* Added pnpm

* Fixed install script.

* Fixed windows script.

* Fixed.

* Fixed.

* Fixed install.

* Only install direct dependencies.

* Only install direct dependencies.

* Only install direct dependencies.

* Fixed windows build.

* fixed.

* fixed deploy.

* Fixed docker build.

* Fixed windows deploy

* Fixed docker build

* Fixed healthcheck.

* fixed.

* Fixed detection of live plugin managers dependencies.

* fixed.

* Remove Node 19 as it is not supported.

* Fixed.

* Fixed installDeps.sh

* Fixed.

* Fixed windows install.

* Fixed cypress path.

* Fixed.

* Run etherpad in background.

* Install cypress.
2024-02-11 09:51:42 +01:00
SamTV12345
ead3c0ea38
Added typescript to etherpad
* Fixed determining file extension.

* Added ts-node

* Fixed backend tests.

* Fixed frontend test runs.

* Fixed tests.

* Use script approach for starting etherpad.

* Change directory to src.

* Fixed env.

* Change directory

* Fixed build arg.

* Fixed docker build.

* Fixed.

* Fixed cypress file path.

* Fixed.

* Use latest node container.

* Fixed windows workflow.

* Use tsx and optimized docker image.

* Added workflow for type checks.

* Fixed.

* Added tsconfig.

* Converted more files to typescript.

* Removed commented keys.

* Typed caching middleware.

* Added script for checking the types.

* Moved SecretRotator to typescript.

* Fixed npm installation and moved to types folder.

* Use better scripts for watching typescript changes.

* Update windows.yml

* Fixed order of npm installation.

* Converted i18n.

* Added more types.

* Added more types.

* Fixed import.

* Fixed tests.

* Fixed tests.

* Fixed type checking test.

* Fixed stats

* Added express types.

* fixed.
2024-02-05 21:13:02 +01:00
SamTV12345
bfa55e6523 Always install npm@6 for correct package-lock.json version. 2023-12-15 21:43:11 +01:00
Denys Halenok
53ef77a24d
Add ability to specify configuration file as a build arg (#5944) 2023-09-23 11:46:14 +02:00
ppom
2632698543
fix abiword not working in container (#5907)
cc @rdelaage
on alpine, plugin command (used in src/node/utils/Abiword.js at line 31)
is not installed by defaut. Add this plugin when installing abiword.

Co-authored-by: ppom <>
2023-09-04 18:55:21 +02:00
SamTV12345
8e690aa342
Add bash to the docker image. 2023-07-01 19:43:30 +02:00
SamTV12345
9a679aca56
Optimize/docker container (#5800)
* Bumped ueberdb2 to 4.1.1

* Install only production ready dependencies.

* Added optimized Dockerfile.

* Fixed variable detection.

* Move to own variable for detecting production build.

* Use shell syntax for parameter expansion.

* Use shell as default.
2023-07-01 19:23:17 +02:00
SamTV12345
db42f23fcc
Added optimized alpine image for better security and smaller image. (#5780) 2023-06-27 22:17:55 +02:00
Debendra Oli
7185693a68 fix: also install libreoffice deps.
Installs java deps when `libreoffice` install is selected.
2023-06-20 14:59:40 +01:00
Richard Hansen
7f0bf111fe Docker: Configurable time zone 2022-03-14 17:32:05 -04:00
Richard Hansen
f1856cf95a Docker: Use new /health endpoint for HEALTHCHECK 2021-12-21 17:19:56 -05:00
Richard Hansen
11de525508 Docker: Install and use link for etherpad binary 2021-12-21 17:19:56 -05:00
Richard Hansen
306e46c21d Docker: Upgrade Debian packages 2021-11-29 03:52:46 -05:00
Tommy
48080411fc Docker: Update to the latest LTS image
The Node.js 14 slim image has quite a few vulnerabilities, and I have
tested the latest slim image. It works just fine.

When installing plugins, `--legacy-peer-deps` is passed to npm because
npm v7 (which comes with Node.js v16, the current LTS) changed how
peer deps are handled. The new behavior is incompatible with how
plugins have historically been installed.
2021-11-29 03:52:46 -05:00
Stefan Müller
ed6fa9400a Add healthcheck to Dockerfile 2021-07-23 20:14:42 -04:00
Richard Hansen
2e2cb38225 Docker: Install git and ca-certificates packages
This makes it possible to install plugins from Git repositories.
2021-06-18 17:50:44 -04:00
Richard Hansen
2a367f6171 Docker: Pass --no-install-recommends to apt-get intall 2021-06-18 17:50:44 -04:00
Richard Hansen
d4e201b1b0 Docker: Set DEBIAN_FRONTEND=noninteractive when running apt-get 2021-06-18 17:50:44 -04:00
Richard Hansen
e108161f60 Docker: Use apt-get instead of apt
This silences the following warning:

> WARNING: apt does not have a stable CLI interface. Use with caution
> in scripts.
2021-06-18 17:50:44 -04:00
Richard Hansen
b9e495e228 Docker: Combine abiword and libreoffice install steps
This avoids multiple `apt update` runs if both are to be installed,
and it will make it easier to add more packages in the future.
2021-06-18 17:50:44 -04:00
Richard Hansen
e9785f37ee Docker: Install plugins before core deps 2021-06-18 17:50:44 -04:00
Richard Hansen
5946244bef Docker: Nuke all of ~/.npm after installing packages 2021-06-18 17:50:44 -04:00
Richard Hansen
aeb56dd594 Docker: Don't create package-lock.json when installing plugins 2021-06-18 17:50:44 -04:00
Richard Hansen
eccec0ba0a Docker: Invoke npm only once when installing plugins
This speeds up the build process.
2021-03-04 19:07:03 +00:00
Richard Hansen
c07bfe10bd Docker: Add arg for the Etherpad directory
This makes it possible for users to match the directory inside the
container to the host system (for convenience or to avoid confusion).
2021-03-04 19:07:03 +00:00
Richard Hansen
34d9069874 Docker: Add args for the etherpad user's home, UID, GID, and shell
Now one can create an `etherpad` user and group on the host system and
set the container's UID and GID to match:

    adduser --system --group etherpad &&
    uid=$(id -u etherpad) &&
    gid=$(id -g etherpad) &&
    docker build --build-arg EP_UID="${uid}" --build-arg EP_GID="${gid}" .

This ensures that files created by user `etherpad` inside the
container are owned by user `etherpad` outside the container.
2021-03-04 19:07:03 +00:00
Stefan
de186fbe36
Update node in docker to version 14 (#4844) 2021-02-22 01:34:34 -05:00
Ole Langbehn
24c1639f11
feat(docker): Add build var for optionally installing abiword (#4796)
This MR introduces a docker build variable `INSTALL_ABIWORD`. When set
to any value other than `0`, ABIWORD is installed in the resulting
docker container, enabling the possibility to configure ABIWORD in
settings.json.docker or via ENV VAR `ABIWORD` for exporting to
DOC/PDF/ODT.

Documentation is included inline and in the docker markdown file.
2021-02-18 04:27:52 -05:00
Richard Hansen
bdd32f8915 Replace node_modules/ep_etherpad-lite with src 2021-02-16 10:35:05 +00:00
Richard Hansen
8b28e00784 restructure: Prefix bin/ and tests/ with src/
This is a follow-up to commit
2ea8ea1275.
2021-02-05 21:52:08 +00:00
jeanfabrice
52f8fc9ba3
legacySupport: Run node 10 with '--experimental_worker' flags (#4392)
* Run node 10 with '--experimental_worker' flags
* Use dedicated function to retrieve node/npm program version

The goal of this commit is to ensure that any linux based node 10 deployments run with the experimental_worker flag.  This flag is required for workers to "work" in node 10.  This will not affect other versions of node.  This resolves #4335 where Docker would fail due to being based on node 10.
2020-10-06 13:28:11 +01:00
John McLear
0158a4fa02 Revert "docker: use full node(not slim) so we have terser support"
This reverts commit fb163093e3.
2020-06-07 20:36:52 +00:00
John McLear
fb163093e3 docker: use full node(not slim) so we have terser support 2020-06-07 20:31:41 +00:00
Richard Hansen
a4713a8308
Docker: Abort image build when npm install fails (#4026)
Without this change, plugin install failures are silently ignored.
2020-06-01 20:16:08 +01:00
muxator
5ade38c86b docker: build & run the container in production mode
This is leaner (no development dependencies are included in the container) and
faster (among other things, assets are minified & compressed).
2020-04-19 04:41:29 +02:00
Paul Tiedtke
ffc718e8c0 docker: add support for arbitrary user ids (for OpenShift compatibility)
This solves a compatibility problem with OpenShift. In OpenShift security
model, the containers are run by arbitrary user ids, but the users are always
a member of the root group.

This PR adjusts the permissions accordingly.

Documentation reference:
https://docs.openshift.com/container-platform/3.11/creating_images/guidelines.html#use-uid
2020-04-08 15:06:08 +02:00
Pierre Prinetti
50142f6580 docker: Set the home directory for the user
Before this change, the docker user had home in a directory it had no
permissions on. The inability of creating a cache directory in `$HOME`
prevented npm to work properly.

Additionally, the `node_modules` in the base working directory had its
owner set to root, preventing further changes.

With this change, the `etherpad` user has a home directory.
Additionally, `npm i` is now run by `etherpad` rather than the root
user; this way, it is possible to dynamically change the `node_modules`
content in day 2 operations.

Note that while switching to the `useradd` builtin, a conflict was
discovered with the GID 65534 that was previously used. This change is
changing the `etherpad` user's UID to 5001 to avoid said conflict. As a
consequence, a `chmod -R 5001:5001` must be run prior to attaching
volumes created from previous Etherpad versions.
2019-12-02 22:14:11 +01:00