mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-20 23:46:14 -04:00
修改端口9001为9002
This commit is contained in:
parent
8497f652bc
commit
a5cf527e8d
47 changed files with 109 additions and 109 deletions
|
@ -4,8 +4,8 @@
|
|||
# Always ensure to load the env variables in every terminal session.
|
||||
# Otherwise the env variables will not be available
|
||||
|
||||
DOCKER_COMPOSE_APP_PORT_PUBLISHED=9001
|
||||
DOCKER_COMPOSE_APP_PORT_TARGET=9001
|
||||
DOCKER_COMPOSE_APP_PORT_PUBLISHED=9002
|
||||
DOCKER_COMPOSE_APP_PORT_TARGET=9002
|
||||
|
||||
# IMPORTANT: When the env var DEFAULT_PAD_TEXT is unset or empty, then the pad is not established (not the landing page).
|
||||
# The env var DEFAULT_PAD_TEXT seems to be mandatory in the latest version of etherpad.
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
# Always ensure to load the env variables in every terminal session.
|
||||
# Otherwise the env variables will not be available
|
||||
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED=9001
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_TARGET=9001
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED=9002
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_TARGET=9002
|
||||
|
||||
# IMPORTANT: When the env var DEFAULT_PAD_TEXT is unset or empty, then the pad is not established (not the landing page).
|
||||
# The env var DEFAULT_PAD_TEXT seems to be mandatory in the latest version of etherpad.
|
||||
|
|
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
|
@ -63,7 +63,7 @@ jobs:
|
|||
-
|
||||
name: Test
|
||||
run: |
|
||||
docker run --rm -d -p 9001:9001 --name test ${{ env.TEST_TAG }}
|
||||
docker run --rm -d -p 9002:9002 --name test ${{ env.TEST_TAG }}
|
||||
./bin/installDeps.sh
|
||||
docker logs -f test &
|
||||
while true; do
|
||||
|
|
2
.github/workflows/frontend-admin-tests.yml
vendored
2
.github/workflows/frontend-admin-tests.yml
vendored
|
@ -133,7 +133,7 @@ jobs:
|
|||
pnpm run prod &
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
|
6
.github/workflows/frontend-tests.yml
vendored
6
.github/workflows/frontend-tests.yml
vendored
|
@ -69,7 +69,7 @@ jobs:
|
|||
pnpm run prod &
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
@ -139,7 +139,7 @@ jobs:
|
|||
pnpm run prod &
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
@ -216,7 +216,7 @@ jobs:
|
|||
pnpm run prod &
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
|
2
.github/workflows/rate-limit.yml
vendored
2
.github/workflows/rate-limit.yml
vendored
|
@ -58,7 +58,7 @@ jobs:
|
|||
-
|
||||
name: run docker images
|
||||
run: |
|
||||
docker run --name etherpad-docker -p 9000:9001 --rm --network ep_net --ip 172.23.42.2 -e 'TRUST_PROXY=true' epl-debian-slim &
|
||||
docker run --name etherpad-docker -p 9000:9002 --rm --network ep_net --ip 172.23.42.2 -e 'TRUST_PROXY=true' epl-debian-slim &
|
||||
docker run -p 8081:80 --rm --network ep_net --ip 172.23.42.1 -d nginx-latest
|
||||
docker run --rm --network ep_net --ip 172.23.42.3 --name anotherip -dt anotherip
|
||||
-
|
||||
|
|
2
.github/workflows/windows.yml
vendored
2
.github/workflows/windows.yml
vendored
|
@ -70,7 +70,7 @@ jobs:
|
|||
pnpm i
|
||||
pnpm exec playwright install --with-deps
|
||||
pnpm run prod &
|
||||
curl --connect-timeout 10 --max-time 20 --retry 5 --retry-delay 10 --retry-max-time 60 --retry-connrefused http://127.0.0.1:9001/p/test
|
||||
curl --connect-timeout 10 --max-time 20 --retry 5 --retry-delay 10 --retry-max-time 60 --retry-connrefused http://127.0.0.1:9002/p/test
|
||||
pnpm exec playwright install chromium --with-deps
|
||||
pnpm run test-ui --project=chromium
|
||||
# On release, create release
|
||||
|
|
|
@ -72,7 +72,7 @@ jobs:
|
|||
- "cd src && pnpm install && cd -"
|
||||
script:
|
||||
- "docker build -t etherpad:test ."
|
||||
- "docker run -d -p 9001:9001 etherpad:test && sleep 3"
|
||||
- "docker run -d -p 9002:9002 etherpad:test && sleep 3"
|
||||
- "cd src && pnpm run test-container"
|
||||
- name: "Load test Etherpad without Plugins"
|
||||
install:
|
||||
|
@ -115,7 +115,7 @@ jobs:
|
|||
- "cd src && pnpm install && cd -"
|
||||
script:
|
||||
- "docker build -t etherpad:test ."
|
||||
- "docker run -d -p 9001:9001 etherpad:test && sleep 3"
|
||||
- "docker run -d -p 9002:9002 etherpad:test && sleep 3"
|
||||
- "cd src && pnpm run test-container"
|
||||
- name: "Load test Etherpad with Plugins"
|
||||
install:
|
||||
|
@ -133,7 +133,7 @@ jobs:
|
|||
- "docker build -f src/tests/ratelimit/Dockerfile.nginx -t nginx-latest ."
|
||||
- "docker build -f src/tests/ratelimit/Dockerfile.anotherip -t anotherip ."
|
||||
- "docker run -p 8081:80 --rm --network ep_net --ip 172.23.42.1 -d nginx-latest"
|
||||
- "docker run --name etherpad-docker -p 9000:9001 --rm --network ep_net --ip 172.23.42.2 -e 'TRUST_PROXY=true' epl-debian-slim &"
|
||||
- "docker run --name etherpad-docker -p 9000:9002 --rm --network ep_net --ip 172.23.42.2 -e 'TRUST_PROXY=true' epl-debian-slim &"
|
||||
- "docker run --rm --network ep_net --ip 172.23.42.3 --name anotherip -dt anotherip"
|
||||
- "./bin/installDeps.sh"
|
||||
script:
|
||||
|
|
|
@ -852,7 +852,7 @@ grow! :)
|
|||
# 1.8.3
|
||||
* FEATURE: colibris is now the default skin for new installs
|
||||
* FEATURE: improved colibris visuals, and migrated to Flexbox layout
|
||||
* FEATURE: skin variants: colibris skin colors can be easily customized. Visit http://127.0.0.1:9001/p/test#skinvariantsbuilder
|
||||
* FEATURE: skin variants: colibris skin colors can be easily customized. Visit http://127.0.0.1:9002/p/test#skinvariantsbuilder
|
||||
* REQUIREMENTS: minimum required Node version is **10.13.0 LTS**.
|
||||
* MINOR: stability fixes for the async migration in 1.8.0 (fixed many UnhandledPromiseRejectionWarning and the few remaining crashes)
|
||||
* MINOR: improved stability of import/export functionality
|
||||
|
|
|
@ -156,7 +156,7 @@ COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json
|
|||
USER etherpad
|
||||
|
||||
HEALTHCHECK --interval=5s --timeout=3s \
|
||||
CMD curl --silent http://localhost:9001/health | grep -E "pass|ok|up" > /dev/null || exit 1
|
||||
CMD curl --silent http://localhost:9002/health | grep -E "pass|ok|up" > /dev/null || exit 1
|
||||
|
||||
EXPOSE 9001
|
||||
EXPOSE 9002
|
||||
CMD ["pnpm", "run", "prod"]
|
||||
|
|
|
@ -74,7 +74,7 @@ services:
|
|||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9002}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9002}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
|
@ -110,7 +110,7 @@ volumes:
|
|||
4. Run `pnpm i`
|
||||
5. Run `pnpm run build:etherpad`
|
||||
6. Run `pnpm run prod`
|
||||
7. Visit `http://localhost:9001` in your browser.
|
||||
7. Visit `http://localhost:9002` in your browser.
|
||||
|
||||
### Docker container
|
||||
|
||||
|
@ -132,7 +132,7 @@ site](https://static.etherpad.org).
|
|||
### Plugin Installation
|
||||
|
||||
You can install plugins from the admin web interface (e.g.,
|
||||
http://127.0.0.1:9001/admin/plugins).
|
||||
http://127.0.0.1:9002/admin/plugins).
|
||||
|
||||
Alternatively, you can install plugins from the command line:
|
||||
|
||||
|
@ -207,7 +207,7 @@ edit `settings.json` and restart Etherpad each time.
|
|||
|
||||
### Customize the style with skin variants
|
||||
|
||||
Open http://127.0.0.1:9001/p/test#skinvariantsbuilder in your browser and start
|
||||
Open http://127.0.0.1:9002/p/test#skinvariantsbuilder in your browser and start
|
||||
playing!
|
||||
|
||||

|
||||
|
|
|
@ -8,7 +8,7 @@ import {LoadingScreen} from "./utils/LoadingScreen.tsx";
|
|||
import {Trans, useTranslation} from "react-i18next";
|
||||
import {Cable, Construction, Crown, NotepadText, Wrench, PhoneCall} from "lucide-react";
|
||||
|
||||
const WS_URL = import.meta.env.DEV? 'http://localhost:9001' : ''
|
||||
const WS_URL = import.meta.env.DEV? 'http://localhost:9002' : ''
|
||||
export const App = ()=> {
|
||||
const setSettings = useStore(state => state.setSettings);
|
||||
const {t} = useTranslation()
|
||||
|
|
|
@ -21,16 +21,16 @@ export default defineConfig({
|
|||
server:{
|
||||
proxy: {
|
||||
'/socket.io/*': {
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api/, '')
|
||||
},
|
||||
'/admin-auth/': {
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
},
|
||||
'/stats': {
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
# Start the services!
|
||||
|
||||
service etherpad start
|
||||
echo "Give Etherpad about 3 minutes to install dependencies then visit http://localhost:9001 in your web browser"
|
||||
echo "Give Etherpad about 3 minutes to install dependencies then visit http://localhost:9002 in your web browser"
|
||||
echo "To stop etherpad type 'service etherpad stop', To restart type 'service etherpad restart'".
|
||||
rm -f /tmp/etherpad.log /tmp/etherpad.err
|
||||
|
|
|
@ -23,6 +23,6 @@ script
|
|||
exec su -s /bin/sh -c 'exec "$0" "$@"' $EPUSER -- node --import tsx src/node/server.ts \
|
||||
>> $EPLOGS/access.log \
|
||||
2>> $EPLOGS/error.log
|
||||
echo "Etherpad is running on http://localhost:9001 - To change settings edit /opt/etherpad/settings.json"
|
||||
echo "Etherpad is running on http://localhost:9002 - To change settings edit /opt/etherpad/settings.json"
|
||||
|
||||
end script
|
||||
|
|
|
@ -38,8 +38,8 @@ SectionEnd
|
|||
Section
|
||||
CreateDirectory "$SMPROGRAMS\Etherpad Foundation"
|
||||
CreateShortCut "$SMPROGRAMS\Etherpad Foundation\Etherpad Server.lnk" "$INSTDIR\start.bat" "brand.ico" "Etherpad Server"
|
||||
CreateShortCut "$SMPROGRAMS\Etherpad Foundation\Etherpad.lnk" "http://127.0.0.1:9001" "brand.ico" "Etherpad"
|
||||
CreateShortCut "$SMPROGRAMS\Etherpad Foundation\Etherpad Admin.lnk" "http://127.0.0.1:9001/admin" "brand.ico" "Etherpad Admin"
|
||||
CreateShortCut "$SMPROGRAMS\Etherpad Foundation\Etherpad.lnk" "http://127.0.0.1:9002" "brand.ico" "Etherpad"
|
||||
CreateShortCut "$SMPROGRAMS\Etherpad Foundation\Etherpad Admin.lnk" "http://127.0.0.1:9002/admin" "brand.ico" "Etherpad Admin"
|
||||
CreateShortCut "$SMPROGRAMS\Etherpad Foundation\Uninstall Etherpad Server.lnk" "$INSTDIR\uninstall.exe"
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
Exec '$INSTDIR\start.bat'
|
||||
|
|
|
@ -28,7 +28,7 @@ To run the backend tests, run the following from the Etherpad working directory:
|
|||
(cd src && pnpm test)
|
||||
```
|
||||
|
||||
To run the frontend tests, visit: http://localhost:9001/tests/frontend/
|
||||
To run the frontend tests, visit: http://localhost:9002/tests/frontend/
|
||||
|
||||
## Copyright and License
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ jobs:
|
|||
pnpm run prod &
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
|
|
@ -24,7 +24,7 @@ By default, the Etherpad Docker image is built and run in `production` mode: no
|
|||
A docker compose file is provided in the project. Please first copy `.env.default` to `.env` and adjust the variables to your preference.
|
||||
|
||||
```
|
||||
docker compose up -d # will build and start the docker container on port 9001 with development settings.
|
||||
docker compose up -d # will build and start the docker container on port 9002 with development settings.
|
||||
```
|
||||
|
||||
Starting dev server:
|
||||
|
@ -108,7 +108,7 @@ To run your instance:
|
|||
|
||||
[source,bash]
|
||||
----
|
||||
docker run --detach --publish <DESIRED_PORT>:9001 <YOUR_USERNAME>/etherpad
|
||||
docker run --detach --publish <DESIRED_PORT>:9002 <YOUR_USERNAME>/etherpad
|
||||
----
|
||||
|
||||
And point your browser to `http://<YOUR_IP>:<DESIRED_PORT>`
|
||||
|
@ -140,7 +140,7 @@ The `settings.json.docker` available by default allows to control almost every s
|
|||
| `0.0.0.0`
|
||||
| `PORT`
|
||||
| port which etherpad should bind at
|
||||
| `9001`
|
||||
| `9002`
|
||||
| `ADMIN_PASSWORD`
|
||||
| the password for the `admin` user (leave unspecified if you do not want to create it)
|
||||
|
|
||||
|
@ -533,7 +533,7 @@ Use a Postgres database, no admin user enabled:
|
|||
----
|
||||
docker run -d \
|
||||
--name etherpad \
|
||||
-p 9001:9001 \
|
||||
-p 9002:9002 \
|
||||
-e 'DB_TYPE=postgres' \
|
||||
-e 'DB_HOST=db.local' \
|
||||
-e 'DB_PORT=4321' \
|
||||
|
@ -549,7 +549,7 @@ Run enabling the administrative user `admin`:
|
|||
----
|
||||
docker run -d \
|
||||
--name etherpad \
|
||||
-p 9001:9001 \
|
||||
-p 9002:9002 \
|
||||
-e 'ADMIN_PASSWORD=supersecret' \
|
||||
etherpad/etherpad
|
||||
----
|
||||
|
@ -560,6 +560,6 @@ Run a test instance running DirtyDB on a persistent volume:
|
|||
----
|
||||
docker run -d \
|
||||
-v etherpad_data:/opt/etherpad-lite/var \
|
||||
-p 9001:9001 \
|
||||
-p 9002:9002 \
|
||||
etherpad/etherpad
|
||||
----
|
||||
|
|
|
@ -69,7 +69,7 @@ docker build --build-arg ETHERPAD_PLUGINS="ep_comments_page ep_author_neat" --ta
|
|||
|
||||
To run your instance:
|
||||
```bash
|
||||
docker run --detach --publish <DESIRED_PORT>:9001 <YOUR_USERNAME>/etherpad
|
||||
docker run --detach --publish <DESIRED_PORT>:9002 <YOUR_USERNAME>/etherpad
|
||||
```
|
||||
|
||||
And point your browser to `http://<YOUR_IP>:<DESIRED_PORT>`
|
||||
|
@ -86,7 +86,7 @@ The `settings.json.docker` available by default allows to control almost every s
|
|||
| `FAVICON` | favicon default name, or a fully specified URL to your own favicon | `favicon.ico` |
|
||||
| `DEFAULT_PAD_TEXT` | The default text of a pad | `Welcome to Etherpad! This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents! Get involved with Etherpad at https://etherpad.org` |
|
||||
| `IP` | IP which etherpad should bind at. Change to `::` for IPv6 | `0.0.0.0` |
|
||||
| `PORT` | port which etherpad should bind at | `9001` |
|
||||
| `PORT` | port which etherpad should bind at | `9002` |
|
||||
| `ADMIN_PASSWORD` | the password for the `admin` user (leave unspecified if you do not want to create it) | |
|
||||
| `USER_PASSWORD` | the password for the first user `user` (leave unspecified if you do not want to create it) | |
|
||||
|
||||
|
@ -244,7 +244,7 @@ Use a Postgres database, no admin user enabled:
|
|||
```shell
|
||||
docker run -d \
|
||||
--name etherpad \
|
||||
-p 9001:9001 \
|
||||
-p 9002:9002 \
|
||||
-e 'DB_TYPE=postgres' \
|
||||
-e 'DB_HOST=db.local' \
|
||||
-e 'DB_PORT=4321' \
|
||||
|
@ -259,7 +259,7 @@ Run enabling the administrative user `admin`:
|
|||
```shell
|
||||
docker run -d \
|
||||
--name etherpad \
|
||||
-p 9001:9001 \
|
||||
-p 9002:9002 \
|
||||
-e 'ADMIN_PASSWORD=supersecret' \
|
||||
etherpad/etherpad
|
||||
```
|
||||
|
@ -269,7 +269,7 @@ Run a test instance running DirtyDB on a persistent volume:
|
|||
```shell
|
||||
docker run -d \
|
||||
-v etherpad_data:/opt/etherpad-lite/var \
|
||||
-p 9001:9001 \
|
||||
-p 9002:9002 \
|
||||
etherpad/etherpad
|
||||
```
|
||||
|
||||
|
@ -306,7 +306,7 @@ services:
|
|||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9002}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9002}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
|
|
|
@ -40,7 +40,7 @@ services:
|
|||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_DEV_ENV_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_DEV_PORT_TARGET:-9001}"
|
||||
- "${DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED:-9002}:${DOCKER_COMPOSE_APP_DEV_PORT_TARGET:-9002}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
|
|
|
@ -26,7 +26,7 @@ services:
|
|||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9002}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9002}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
|
|
|
@ -50,14 +50,14 @@
|
|||
* specify "null" as the default value.
|
||||
*
|
||||
* EXAMPLE:
|
||||
* "port": "${PORT:9001}"
|
||||
* "port": "${PORT:9002}"
|
||||
* "minify": "${MINIFY}"
|
||||
* "skinName": "${SKIN_NAME:colibris}"
|
||||
*
|
||||
* Would read the configuration values for those items from the environment
|
||||
* variables PORT, MINIFY and SKIN_NAME.
|
||||
*
|
||||
* If PORT and SKIN_NAME variables were not defined, the default values 9001 and
|
||||
* If PORT and SKIN_NAME variables were not defined, the default values 9002 and
|
||||
* "colibris" would be used.
|
||||
* The configuration value "minify", on the other hand, does not have a
|
||||
* designated default value. Thus, if the environment variable MINIFY were
|
||||
|
@ -66,18 +66,18 @@
|
|||
* REMARKS:
|
||||
* 1) please note that variable substitution always needs to be quoted.
|
||||
*
|
||||
* "port": 9001, <-- Literal values. When not using
|
||||
* "port": 9002, <-- Literal values. When not using
|
||||
* "minify": false substitution, only strings must be
|
||||
* "skinName": "colibris" quoted. Booleans and numbers must not.
|
||||
*
|
||||
* "port": "${PORT:9001}" <-- CORRECT: if you want to use a variable
|
||||
* "port": "${PORT:9002}" <-- CORRECT: if you want to use a variable
|
||||
* "minify": "${MINIFY:true}" substitution, put quotes around its name,
|
||||
* "skinName": "${SKIN_NAME}" even if the required value is a number or
|
||||
* a boolean.
|
||||
* Etherpad will take care of rewriting it
|
||||
* to the proper type if necessary.
|
||||
*
|
||||
* "port": ${PORT:9001} <-- ERROR: this is not valid json. Quotes
|
||||
* "port": ${PORT:9002} <-- ERROR: this is not valid json. Quotes
|
||||
* "minify": ${MINIFY} around variable names are missing.
|
||||
* "skinName": ${SKIN_NAME}
|
||||
*
|
||||
|
@ -162,7 +162,7 @@
|
|||
* "port" : "/somepath/etherpad.socket", // <-- path to a Unix socket
|
||||
*/
|
||||
"ip": "${IP:0.0.0.0}",
|
||||
"port": "${PORT:9001}",
|
||||
"port": "${PORT:9002}",
|
||||
|
||||
/*
|
||||
* Option to hide/show the settings.json in admin page.
|
||||
|
@ -659,21 +659,21 @@
|
|||
*/
|
||||
"lowerCasePadIds": "${LOWER_CASE_PAD_IDS:false}",
|
||||
"sso": {
|
||||
"issuer": "${SSO_ISSUER:http://localhost:9001}",
|
||||
"issuer": "${SSO_ISSUER:http://localhost:9002}",
|
||||
"clients": [
|
||||
{
|
||||
"client_id": "${ADMIN_CLIENT:admin_client}",
|
||||
"client_secret": "${ADMIN_SECRET:admin}",
|
||||
"grant_types": ["authorization_code"],
|
||||
"response_types": ["code"],
|
||||
"redirect_uris": ["${ADMIN_REDIRECT:http://localhost:9001/admin/}"]
|
||||
"redirect_uris": ["${ADMIN_REDIRECT:http://localhost:9002/admin/}"]
|
||||
},
|
||||
{
|
||||
"client_id": "${USER_CLIENT:user_client}",
|
||||
"client_secret": "${USER_SECRET:user}",
|
||||
"grant_types": ["authorization_code"],
|
||||
"response_types": ["code"],
|
||||
"redirect_uris": ["${USER_REDIRECT:http://localhost:9001/}"]
|
||||
"redirect_uris": ["${USER_REDIRECT:http://localhost:9002/}"]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -41,14 +41,14 @@
|
|||
* specify "null" as the default value.
|
||||
*
|
||||
* EXAMPLE:
|
||||
* "port": "${PORT:9001}"
|
||||
* "port": "${PORT:9002}"
|
||||
* "minify": "${MINIFY}"
|
||||
* "skinName": "${SKIN_NAME:colibris}"
|
||||
*
|
||||
* Would read the configuration values for those items from the environment
|
||||
* variables PORT, MINIFY and SKIN_NAME.
|
||||
*
|
||||
* If PORT and SKIN_NAME variables were not defined, the default values 9001 and
|
||||
* If PORT and SKIN_NAME variables were not defined, the default values 9002 and
|
||||
* "colibris" would be used.
|
||||
* The configuration value "minify", on the other hand, does not have a
|
||||
* designated default value. Thus, if the environment variable MINIFY were
|
||||
|
@ -57,18 +57,18 @@
|
|||
* REMARKS:
|
||||
* 1) please note that variable substitution always needs to be quoted.
|
||||
*
|
||||
* "port": 9001, <-- Literal values. When not using
|
||||
* "port": 9002, <-- Literal values. When not using
|
||||
* "minify": false substitution, only strings must be
|
||||
* "skinName": "colibris" quoted. Booleans and numbers must not.
|
||||
*
|
||||
* "port": "${PORT:9001}" <-- CORRECT: if you want to use a variable
|
||||
* "port": "${PORT:9002}" <-- CORRECT: if you want to use a variable
|
||||
* "minify": "${MINIFY:true}" substitution, put quotes around its name,
|
||||
* "skinName": "${SKIN_NAME}" even if the required value is a number or
|
||||
* a boolean.
|
||||
* Etherpad will take care of rewriting it
|
||||
* to the proper type if necessary.
|
||||
*
|
||||
* "port": ${PORT:9001} <-- ERROR: this is not valid json. Quotes
|
||||
* "port": ${PORT:9002} <-- ERROR: this is not valid json. Quotes
|
||||
* "minify": ${MINIFY} around variable names are missing.
|
||||
* "skinName": ${SKIN_NAME}
|
||||
*
|
||||
|
@ -153,7 +153,7 @@
|
|||
* "port" : "/somepath/etherpad.socket", // <-- path to a Unix socket
|
||||
*/
|
||||
"ip": "0.0.0.0",
|
||||
"port": 9001,
|
||||
"port": 9002,
|
||||
|
||||
/*
|
||||
* Option to hide/show the settings.json in admin page.
|
||||
|
@ -667,21 +667,21 @@
|
|||
"lowerCasePadIds": false,
|
||||
|
||||
"sso": {
|
||||
"issuer": "${SSO_ISSUER:http://localhost:9001}",
|
||||
"issuer": "${SSO_ISSUER:http://localhost:9002}",
|
||||
"clients": [
|
||||
{
|
||||
"client_id": "${ADMIN_CLIENT:admin_client}",
|
||||
"client_secret": "${ADMIN_SECRET:admin}",
|
||||
"grant_types": ["authorization_code"],
|
||||
"response_types": ["code"],
|
||||
"redirect_uris": ["${ADMIN_REDIRECT:http://localhost:9001/admin/}"]
|
||||
"redirect_uris": ["${ADMIN_REDIRECT:http://localhost:9002/admin/}"]
|
||||
},
|
||||
{
|
||||
"client_id": "${USER_CLIENT:user_client}",
|
||||
"client_secret": "${USER_SECRET:user}",
|
||||
"grant_types": ["authorization_code"],
|
||||
"response_types": ["code"],
|
||||
"redirect_uris": ["${USER_REDIRECT:http://localhost:9001/}"]
|
||||
"redirect_uris": ["${USER_REDIRECT:http://localhost:9002/}"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -127,7 +127,7 @@ exports.ip = '0.0.0.0';
|
|||
/**
|
||||
* The Port ep-lite should listen to
|
||||
*/
|
||||
exports.port = process.env.PORT || 9001;
|
||||
exports.port = process.env.PORT || 9002;
|
||||
|
||||
/**
|
||||
* Should we suppress Error messages from being in Pad Contents
|
||||
|
@ -371,7 +371,7 @@ exports.users = {};
|
|||
* This setting is used for configuring sso
|
||||
*/
|
||||
exports.sso = {
|
||||
issuer: "http://localhost:9001"
|
||||
issuer: "http://localhost:9002"
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -575,7 +575,7 @@ const storeSettings = (settingsObj: any) => {
|
|||
* them to appropriate JS types. Otherwise return stringValue as-is.
|
||||
*
|
||||
* Please note that this function is used for converting types for default
|
||||
* values in the settings file (for example: "${PORT:9001}"), and that there is
|
||||
* values in the settings file (for example: "${PORT:9002}"), and that there is
|
||||
* no coercition for "null" values.
|
||||
*
|
||||
* If the user wants a variable to be null by default, he'll have to use the
|
||||
|
@ -630,7 +630,7 @@ const coerceValue = (stringValue: string) => {
|
|||
* | settings.json | ENV_VAR | guration value |
|
||||
* |---------------------------|---------------|------------------|
|
||||
* | "${ENV_VAR}" | "some_string" | "some_string" |
|
||||
* | "${ENV_VAR}" | "9001" | 9001 |
|
||||
* | "${ENV_VAR}" | "9002" | 9002 |
|
||||
* | "${ENV_VAR}" | undefined | null |
|
||||
* | "${ENV_VAR:some_default}" | "some_string" | "some_string" |
|
||||
* | "${ENV_VAR:some_default}" | undefined | "some_default" |
|
||||
|
|
|
@ -22,7 +22,7 @@ export default defineConfig({
|
|||
use: {
|
||||
/* Base URL to use in actions like `await page.goto('/')`. */
|
||||
// baseURL: 'http://127.0.0.1:3000',
|
||||
baseURL: "localhost:9001",
|
||||
baseURL: "localhost:9002",
|
||||
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
||||
trace: 'on-first-retry',
|
||||
video: 'on-first-retry',
|
||||
|
|
|
@ -44,7 +44,7 @@ export const generateJWTToken = () => {
|
|||
jti: '123',
|
||||
exp: Math.floor(Date.now() / 1000) + 60 * 60,
|
||||
aud: 'account',
|
||||
iss: 'http://localhost:9001',
|
||||
iss: 'http://localhost:9002',
|
||||
admin: true
|
||||
})
|
||||
jwt.setProtectedHeader({alg: 'RS256'})
|
||||
|
@ -58,7 +58,7 @@ export const generateJWTTokenUser = () => {
|
|||
jti: '123',
|
||||
exp: Math.floor(Date.now() / 1000) + 60 * 60,
|
||||
aud: 'account',
|
||||
iss: 'http://localhost:9001',
|
||||
iss: 'http://localhost:9002',
|
||||
})
|
||||
jwt.setProtectedHeader({alg: 'RS256'})
|
||||
return jwt.sign(privateKeyExported!)
|
||||
|
|
|
@ -80,7 +80,7 @@ describe(__filename, function () {
|
|||
Try to import to files of varying size.
|
||||
|
||||
Example Curl command for testing import URI:
|
||||
curl -s -v --form file=@/home/jose/test.txt http://127.0.0.1:9001/p/foo/import
|
||||
curl -s -v --form file=@/home/jose/test.txt http://127.0.0.1:9002/p/foo/import
|
||||
*/
|
||||
|
||||
describe('Imports and Exports', function () {
|
||||
|
|
|
@ -25,7 +25,7 @@ function loadSettings() {
|
|||
|
||||
// custom settings for running in a container
|
||||
settings.ip = 'localhost';
|
||||
settings.port = '9001';
|
||||
settings.port = '9002';
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ test.describe('admin settings',()=> {
|
|||
|
||||
|
||||
test('Are Settings visible, populated, does save work', async ({page}) => {
|
||||
await page.goto('http://localhost:9001/admin/settings');
|
||||
await page.goto('http://localhost:9002/admin/settings');
|
||||
await page.waitForSelector('.settings');
|
||||
const settings = page.locator('.settings');
|
||||
await expect(settings).not.toBeEmpty();
|
||||
|
@ -48,7 +48,7 @@ test.describe('admin settings',()=> {
|
|||
})
|
||||
|
||||
test('restart works', async function ({page}) {
|
||||
await page.goto('http://localhost:9001/admin/settings');
|
||||
await page.goto('http://localhost:9002/admin/settings');
|
||||
await page.waitForSelector('.settings')
|
||||
await restartEtherpad(page)
|
||||
await page.waitForSelector('.settings')
|
||||
|
|
|
@ -3,18 +3,18 @@ import {loginToAdmin} from "../helper/adminhelper";
|
|||
|
||||
test.beforeEach(async ({ page })=>{
|
||||
await loginToAdmin(page, 'admin', 'changeme1');
|
||||
await page.goto('http://localhost:9001/admin/help')
|
||||
await page.goto('http://localhost:9002/admin/help')
|
||||
})
|
||||
|
||||
test('Shows troubleshooting page manager', async ({page}) => {
|
||||
await page.goto('http://localhost:9001/admin/help')
|
||||
await page.goto('http://localhost:9002/admin/help')
|
||||
await page.waitForSelector('.menu')
|
||||
const menu = page.locator('.menu');
|
||||
await expect(menu.locator('li')).toHaveCount(5);
|
||||
})
|
||||
|
||||
test('Shows a version number', async function ({page}) {
|
||||
await page.goto('http://localhost:9001/admin/help')
|
||||
await page.goto('http://localhost:9002/admin/help')
|
||||
await page.waitForSelector('.menu')
|
||||
const helper = page.locator('.help-block').locator('div').nth(1)
|
||||
const version = (await helper.textContent())!.split('.');
|
||||
|
@ -22,7 +22,7 @@ test('Shows a version number', async function ({page}) {
|
|||
});
|
||||
|
||||
test('Lists installed parts', async function ({page}) {
|
||||
await page.goto('http://localhost:9001/admin/help')
|
||||
await page.goto('http://localhost:9002/admin/help')
|
||||
await page.waitForSelector('.menu')
|
||||
await page.waitForSelector('.innerwrapper ul')
|
||||
const parts = page.locator('.innerwrapper ul').nth(1);
|
||||
|
@ -30,7 +30,7 @@ test('Lists installed parts', async function ({page}) {
|
|||
});
|
||||
|
||||
test('Lists installed hooks', async function ({page}) {
|
||||
await page.goto('http://localhost:9001/admin/help')
|
||||
await page.goto('http://localhost:9002/admin/help')
|
||||
await page.waitForSelector('.menu')
|
||||
await page.waitForSelector('.innerwrapper ul')
|
||||
const helper = page.locator('.innerwrapper ul').nth(2);
|
||||
|
|
|
@ -3,7 +3,7 @@ import {loginToAdmin} from "../helper/adminhelper";
|
|||
|
||||
test.beforeEach(async ({ page })=>{
|
||||
await loginToAdmin(page, 'admin', 'changeme1');
|
||||
await page.goto('http://localhost:9001/admin/plugins')
|
||||
await page.goto('http://localhost:9002/admin/plugins')
|
||||
})
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import {expect, Page} from "@playwright/test";
|
|||
|
||||
export const loginToAdmin = async (page: Page, username: string, password: string) => {
|
||||
|
||||
await page.goto('http://localhost:9001/admin/');
|
||||
await page.goto('http://localhost:9002/admin/');
|
||||
|
||||
await page.waitForSelector('input[name="username"]');
|
||||
await page.fill('input[name="username"]', username);
|
||||
|
|
|
@ -116,13 +116,13 @@ export const appendQueryParams = async (page: Page, queryParameters: MapArrayTyp
|
|||
export const goToNewPad = async (page: Page) => {
|
||||
// create a new pad before each test run
|
||||
const padId = "FRONTEND_TESTS"+randomUUID();
|
||||
await page.goto('http://localhost:9001/p/'+padId);
|
||||
await page.goto('http://localhost:9002/p/'+padId);
|
||||
await page.waitForSelector('iframe[name="ace_outer"]');
|
||||
return padId;
|
||||
}
|
||||
|
||||
export const goToPad = async (page: Page, padId: string) => {
|
||||
await page.goto('http://localhost:9001/p/'+padId);
|
||||
await page.goto('http://localhost:9002/p/'+padId);
|
||||
await page.waitForSelector('iframe[name="ace_outer"]');
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ const { defineConfig } = require('cypress')
|
|||
|
||||
module.exports = defineConfig({
|
||||
e2e: {
|
||||
baseUrl: "http://127.0.0.1:9001",
|
||||
baseUrl: "http://127.0.0.1:9002",
|
||||
supportFile: false,
|
||||
specPattern: 'tests/frontend/cypress/integration/**/*.js'
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ Cypress.Commands.add('iframe', {prevSubject: 'element'},
|
|||
|
||||
describe(__filename, () => {
|
||||
it('Pad content exists', () => {
|
||||
cy.visit('http://127.0.0.1:9001/p/test');
|
||||
cy.visit('http://127.0.0.1:9002/p/test');
|
||||
cy.wait(10000); // wait for Minified JS to be built...
|
||||
cy.get('iframe[name="ace_outer"]', {timeout: 10000}).iframe()
|
||||
.find('.line-number:first')
|
||||
|
|
|
@ -17,8 +17,8 @@ describe('timeslider', function () {
|
|||
await helper.waitForPromise(() => helper.contentWindow().location.hash === '#1');
|
||||
|
||||
// expect URI to be similar to
|
||||
// http://192.168.1.48:9001/p/2/1/export/html
|
||||
// http://192.168.1.48:9001/p/735773577399/1/export/html
|
||||
// http://192.168.1.48:9002/p/2/1/export/html
|
||||
// http://192.168.1.48:9002/p/735773577399/1/export/html
|
||||
const rev1ExportLink = helper.contentWindow().$('#exporthtmla').attr('href');
|
||||
expect(rev1ExportLink).to.contain('/1/export/html');
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@ log "Assuming src/bin/installDeps.sh has already been run"
|
|||
( cd src && npm run dev --experimental-worker "${@}" &
|
||||
ep_pid=$!)
|
||||
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9001)..."
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9002)..."
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
@ -27,7 +27,7 @@ while [ $(($(now) - $start)) -le 15 ] && ! can_connect; do
|
|||
done
|
||||
[ "$connected" = true ] \
|
||||
|| fatal "Timed out waiting for Etherpad to accept connections"
|
||||
log "Successfully connected to Etherpad on http://localhost:9001"
|
||||
log "Successfully connected to Etherpad on http://localhost:9002"
|
||||
|
||||
# start the remote runner
|
||||
try cd "${MY_DIR}"
|
||||
|
|
|
@ -54,7 +54,7 @@ const sauceTestWorker = async.queue(async ({name, pfx, browser, version, platfor
|
|||
const driver = await builder.build();
|
||||
const url = `https://saucelabs.com/jobs/${(await driver.getSession()).getId()}`;
|
||||
try {
|
||||
await driver.get('http://localhost:9001/tests/frontend/');
|
||||
await driver.get('http://localhost:9002/tests/frontend/');
|
||||
log(`Remote sauce test started! ${url}`, pfx);
|
||||
// @TODO this should be configured in testSettings, see
|
||||
// https://wiki.saucelabs.com/display/DOCS/Test+Configuration+Options#TestConfigurationOptions-Timeouts
|
||||
|
|
|
@ -14,10 +14,10 @@ log "Assuming bin/installDeps.sh has already been run"
|
|||
(cd src && npm run dev --experimental-worker "${@}" &
|
||||
ep_pid=$!)
|
||||
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9001)..."
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9002)..."
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
@ -27,7 +27,7 @@ while [ $(($(now) - $start)) -le 15 ] && ! can_connect; do
|
|||
done
|
||||
[ "$connected" = true ] \
|
||||
|| fatal "Timed out waiting for Etherpad to accept connections"
|
||||
log "Successfully connected to Etherpad on http://localhost:9001"
|
||||
log "Successfully connected to Etherpad on http://localhost:9002"
|
||||
|
||||
# start the remote runner
|
||||
try cd "${MY_DIR}"
|
||||
|
|
|
@ -22,10 +22,10 @@ log "Assuming src/bin/installDeps.sh has already been run"
|
|||
(cd src && npm run dev "${@}" &
|
||||
ep_pid=$!)
|
||||
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9001)..."
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9002)..."
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
@ -35,7 +35,7 @@ while [ $(($(now) - $start)) -le 15 ] && ! can_connect; do
|
|||
done
|
||||
[ "$connected" = true ] \
|
||||
|| fatal "Timed out waiting for Etherpad to accept connections"
|
||||
log "Successfully connected to Etherpad on http://localhost:9001"
|
||||
log "Successfully connected to Etherpad on http://localhost:9002"
|
||||
|
||||
log "Running the backend tests..."
|
||||
try cd src
|
||||
|
|
|
@ -27,10 +27,10 @@ log "Assuming src/bin/installDeps.sh has already been run"
|
|||
(cd src && pnpm run prod &
|
||||
ep_pid=$!)
|
||||
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9001)..."
|
||||
log "Waiting for Etherpad to accept connections (http://localhost:9002)..."
|
||||
connected=false
|
||||
can_connect() {
|
||||
curl -sSfo /dev/null http://localhost:9001/ || return 1
|
||||
curl -sSfo /dev/null http://localhost:9002/ || return 1
|
||||
connected=true
|
||||
}
|
||||
now() { date +%s; }
|
||||
|
@ -40,10 +40,10 @@ while [ $(($(now) - $start)) -le 60 ] && ! can_connect; do
|
|||
done
|
||||
[ "$connected" = true ] \
|
||||
|| fatal "Timed out waiting for Etherpad to accept connections"
|
||||
log "Successfully connected to Etherpad on http://localhost:9001"
|
||||
log "Successfully connected to Etherpad on http://localhost:9002"
|
||||
|
||||
# Build the minified files
|
||||
try curl http://localhost:9001/p/minifyme -f -s >/dev/null
|
||||
try curl http://localhost:9002/p/minifyme -f -s >/dev/null
|
||||
|
||||
# just in case, let's wait for another 10 seconds before going on
|
||||
sleep 10
|
||||
|
|
|
@ -4,7 +4,7 @@ http {
|
|||
access_log /dev/fd/1;
|
||||
error_log /dev/fd/2;
|
||||
location / {
|
||||
proxy_pass http://172.23.42.2:9001/;
|
||||
proxy_pass http://172.23.42.2:9002/;
|
||||
proxy_set_header Host $host;
|
||||
proxy_pass_header Server;
|
||||
# be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"title":"Etherpad","favicon":null,"skinName":"colibris","skinVariants":"super-light-toolbar super-light-editor light-background","ip":"0.0.0.0","port":9001,"showSettingsInAdminPage":true,"dbType":"dirty","dbSettings":{"filename":"var/dirty.db"},"defaultPadText":"Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at https://etherpad.org\n","padOptions":{"noColors":false,"showControls":true,"showChat":true,"showLineNumbers":true,"useMonospaceFont":false,"userName":null,"userColor":null,"rtl":false,"alwaysShowChat":false,"chatAndUsers":false,"lang":null},"padShortcutEnabled":{"altF9":true,"altC":true,"cmdShift2":true,"delete":true,"return":true,"esc":true,"cmdS":true,"tab":true,"cmdZ":true,"cmdY":true,"cmdI":true,"cmdB":true,"cmdU":true,"cmd5":true,"cmdShiftL":true,"cmdShiftN":true,"cmdShift1":true,"cmdShiftC":true,"cmdH":true,"ctrlHome":true,"pageUp":true,"pageDown":true},"suppressErrorsInPadText":false,"requireSession":false,"editOnly":false,"minify":true,"maxAge":21600,"abiword":null,"soffice":null,"allowUnknownFileEnds":true,"requireAuthentication":false,"requireAuthorization":false,"trustProxy":false,"cookie":{"keyRotationInterval":86400000,"sameSite":"Lax","sessionLifetime":864000000,"sessionRefreshInterval":86400000},"disableIPlogging":false,"automaticReconnectionTimeout":0,"scrollWhenFocusLineIsOutOfViewport":{"percentage":{"editionAboveViewport":0,"editionBelowViewport":0},"duration":0,"scrollWhenCaretIsInTheLastLineOfViewport":false,"percentageToScrollWhenUserPressesArrowUp":0},"users":{"admin":{"password":"changeme1","is_admin":true},"user":{"password":"changeme1","is_admin":false}},"socketTransportProtocols":["websocket","polling"],"socketIo":{"maxHttpBufferSize":1000000},"loadTest":false,"dumpOnUncleanExit":false,"importExportRateLimiting":{"windowMs":90000,"max":10},"importMaxFileSize":52428800,"commitRateLimiting":{"duration":1,"points":10},"exposeVersion":false,"loglevel":"INFO","customLocaleStrings":{},"enableAdminUITests":true,"lowerCasePadIds":false,"sso":{"issuer":"${SSO_ISSUER:http://localhost:9001}","clients":[{"client_id":"${ADMIN_CLIENT:admin_client}","client_secret":"${ADMIN_SECRET:admin}","grant_types":["authorization_code"],"response_types":["code"],"redirect_uris":["${ADMIN_REDIRECT:http://localhost:9001/admin/}","https://oauth.pstmn.io/v1/callback"]},{"client_id":"${USER_CLIENT:user_client}","client_secret":"${USER_SECRET:user}","grant_types":["authorization_code"],"response_types":["code"],"redirect_uris":["${USER_REDIRECT:http://localhost:9001/}"]}]}}
|
||||
{"title":"Etherpad","favicon":null,"skinName":"colibris","skinVariants":"super-light-toolbar super-light-editor light-background","ip":"0.0.0.0","port":9002,"showSettingsInAdminPage":true,"dbType":"dirty","dbSettings":{"filename":"var/dirty.db"},"defaultPadText":"Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at https://etherpad.org\n","padOptions":{"noColors":false,"showControls":true,"showChat":true,"showLineNumbers":true,"useMonospaceFont":false,"userName":null,"userColor":null,"rtl":false,"alwaysShowChat":false,"chatAndUsers":false,"lang":null},"padShortcutEnabled":{"altF9":true,"altC":true,"cmdShift2":true,"delete":true,"return":true,"esc":true,"cmdS":true,"tab":true,"cmdZ":true,"cmdY":true,"cmdI":true,"cmdB":true,"cmdU":true,"cmd5":true,"cmdShiftL":true,"cmdShiftN":true,"cmdShift1":true,"cmdShiftC":true,"cmdH":true,"ctrlHome":true,"pageUp":true,"pageDown":true},"suppressErrorsInPadText":false,"requireSession":false,"editOnly":false,"minify":true,"maxAge":21600,"abiword":null,"soffice":null,"allowUnknownFileEnds":true,"requireAuthentication":false,"requireAuthorization":false,"trustProxy":false,"cookie":{"keyRotationInterval":86400000,"sameSite":"Lax","sessionLifetime":864000000,"sessionRefreshInterval":86400000},"disableIPlogging":false,"automaticReconnectionTimeout":0,"scrollWhenFocusLineIsOutOfViewport":{"percentage":{"editionAboveViewport":0,"editionBelowViewport":0},"duration":0,"scrollWhenCaretIsInTheLastLineOfViewport":false,"percentageToScrollWhenUserPressesArrowUp":0},"users":{"admin":{"password":"changeme1","is_admin":true},"user":{"password":"changeme1","is_admin":false}},"socketTransportProtocols":["websocket","polling"],"socketIo":{"maxHttpBufferSize":1000000},"loadTest":false,"dumpOnUncleanExit":false,"importExportRateLimiting":{"windowMs":90000,"max":10},"importMaxFileSize":52428800,"commitRateLimiting":{"duration":1,"points":10},"exposeVersion":false,"loglevel":"INFO","customLocaleStrings":{},"enableAdminUITests":true,"lowerCasePadIds":false,"sso":{"issuer":"${SSO_ISSUER:http://localhost:9002}","clients":[{"client_id":"${ADMIN_CLIENT:admin_client}","client_secret":"${ADMIN_SECRET:admin}","grant_types":["authorization_code"],"response_types":["code"],"redirect_uris":["${ADMIN_REDIRECT:http://localhost:9002/admin/}","https://oauth.pstmn.io/v1/callback"]},{"client_id":"${USER_CLIENT:user_client}","client_secret":"${USER_SECRET:user}","grant_types":["authorization_code"],"response_types":["code"],"redirect_uris":["${USER_REDIRECT:http://localhost:9002/}"]}]}}
|
|
@ -10,6 +10,6 @@ REM Etherpad internals via `require('ep_etherpad-lite/foo')`,
|
|||
REM `node_modules\ep_etherpad-lite` is used here.
|
||||
cd src
|
||||
|
||||
start microsoftedge "http://localhost:9001"
|
||||
start microsoftedge "http://localhost:9002"
|
||||
pnpm run prod
|
||||
|
||||
|
|
|
@ -20,24 +20,24 @@ export default defineConfig({
|
|||
server:{
|
||||
proxy:{
|
||||
'/static':{
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
},
|
||||
'/views/manifest.json':{
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
rewrite: (path) => path.replace(/^\/views/, ''),
|
||||
},
|
||||
'/locales.json':{
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
rewrite: (path) => path.replace(/^\/views/, ''),
|
||||
},
|
||||
'/locales':{
|
||||
target: 'http://localhost:9001',
|
||||
target: 'http://localhost:9002',
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
rewrite: (path) => path.replace(/^\/views/, ''),
|
||||
|
|
2
编译说明.md
2
编译说明.md
|
@ -4,7 +4,7 @@
|
|||
4. Run `pnpm i`
|
||||
5. Run `pnpm run build:etherpad`
|
||||
6. Run `pnpm run prod`
|
||||
7. Visit `http://localhost:9001` in your browser.
|
||||
7. Visit `http://localhost:9002` in your browser.
|
||||
|
||||
|
||||
后台中文设置,找到文件
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue