Compare commits

...

25 Commits

Author SHA1 Message Date
cd02cd6deb Merge pull request #309 from zhaofengli/netcat-ipv6
Use netcat-openbsd for IPv6 support
2020-11-09 14:05:04 +03:00
94c64d3f6d Use netcat-openbsd for IPv6 support 2020-11-08 23:38:31 -08:00
0ed3f8fbbf Merge branch hotfix/v6.0.1 into develop 2020-10-28 14:31:31 +00:00
85158c3624 Merge branch release/v6.0.0 into develop 2020-09-30 15:15:35 +00:00
f24908eb7a Merge branch release/v6.0.0 into master 2020-09-30 15:15:26 +00:00
1956f98c1d Fixes exit procedure. (#286) 2020-09-10 17:02:20 +03:00
ecb77ddb56 Add more travis tests (#289)
* Add version variable for travis tests

* Fix typo

* Fix activemq variable

* Add travis tests

* Remove mysql latest

* Fixes & refactoring

* Add more travis tests

* Remove mysql 8 test

* Remove mysql 8 test [2]

* Add mysql 8 comment

* Fix mysql 8 auth plugin

Co-authored-by: Alexey Golubev <alexey.golubev@onlyoffice.com>
2020-09-10 16:57:21 +03:00
d3e5246e9a Merge branch hotfix/v5.6.4 into release/v6.0.0 2020-09-08 08:31:06 +00:00
380ac3e227 Merge branch hotfix/v5.6.4 into develop 2020-09-08 08:30:56 +00:00
16107fd3ba Update README.md (#283) 2020-08-17 16:08:52 +03:00
ee126870b2 Merge branch hotfix/v5.6.2 into release/v6.0.0 2020-08-07 08:17:06 +00:00
abe349dad9 Merge branch hotfix/v5.6.2 into develop 2020-08-07 08:16:55 +00:00
ac0c135ded Merge branch hotfix/v5.6.1 into release/v6.0.0 2020-08-05 09:39:37 +00:00
c5d15c3be7 Merge branch hotfix/v5.6.1 into develop 2020-08-05 09:39:26 +00:00
79e627e080 Merge branch hotfix/v5.6.1 into master 2020-08-05 09:39:15 +00:00
dd5cde1919 Fix unary operator expected (Bug 45985) 2020-07-31 18:09:51 +03:00
c47a310683 Fix unary operator expected (Bug 45985) (#270) 2020-07-30 11:54:46 +03:00
0d974b9f2a Merge branch hotfix/v5.6.0 into release/v6.0.0 2020-07-28 13:48:40 +00:00
be27b2b4d6 Merge branch hotfix/v5.6.0 into develop 2020-07-28 13:48:30 +00:00
98f96d1795 Merge branch hotfix/v5.6.0 into master 2020-07-28 13:48:20 +00:00
7bfe250035 Add Graphite (#265) 2020-07-23 15:42:17 +03:00
e47d6d8c1a Add several attempts for docker push (#258)
* Add several attempts for docker push

* Fix retries, add delay
2020-06-17 11:24:52 +03:00
7193b651ec Add test for Integration Edition (#256)
* Add test for Integration Edition

* Add test for Community Edition

* Fix tests for redis

* Fix edition test

* Rename test
2020-06-04 17:24:07 +03:00
62424ea120 Disable redis server for Community Edition (#255)
* Disable redis server

* Add REDIS_ENABLED variable

* Fix Dockerfile

* Fix REDIS_ENABLED condition
2020-06-04 15:15:34 +03:00
91815ac24a v5.5.3 2020-05-22 11:21:42 +03:00
15 changed files with 191 additions and 28 deletions

View File

@ -3,6 +3,14 @@ language: generic
dist: trusty
env:
# community edition
- config: standalone.yml
# integration edition
- config: standalone.yml
PRODUCT_NAME: documentserver-ie
# certificates (default tls if onlyoffice not exists)
- config: certs.yml
ssl: true
@ -23,10 +31,27 @@ env:
SSL_CERTIFICATE_PATH: /var/www/onlyoffice/Data/certs/mycert.crt
SSL_KEY_PATH: /var/www/onlyoffice/Data/certs/mycert.key
# postgresql
# postgresql 12
- config: postgres.yml
POSTGRES_VERSION: 12
# postgresql 11
- config: postgres.yml
POSTGRES_VERSION: 11
# postgresql 10
- config: postgres.yml
POSTGRES_VERSION: 10
# postgresql 9
- config: postgres.yml
POSTGRES_VERSION: 9
# postgresql 9.5
- config: postgres.yml
# custom values
# postgresql custom values
- config: postgres.yml
DB_NAME: mydb
DB_USER: myuser
@ -34,27 +59,67 @@ env:
POSTGRES_DB: mydb
POSTGRES_USER: myuser
# deprecated variables
# postgresql deprecated variables
- config: postgres-old.yml
# mysql
# mysql 8
- config: mysql.yml
MYSQL_VERSION: 8
# mysql 5
- config: mysql.yml
MYSQL_VERSION: 5
# mysql 5.7
- config: mysql.yml
# mariadb
# mariadb 10
- config: mariadb.yml
MARIADB_VERSION: 10
# mariadb 10.5
- config: mariadb.yml
# activemq
- config: activemq.yml
ACTIVEMQ_VERSION: latest
# activemq 5.14.3
- config: activemq.yml
# rabbitmq
# rabbitmq latest
- config: rabbitmq.yml
# rabbitmq 3
- config: rabbitmq.yml
RABBITMQ_VERSION: 3
# rabbitmq old variables
- config: rabbitmq-old.yml
# redis
# redis latest with community edition
- config: redis.yml
# redis latest with integraion edition
- config: redis.yml
PRODUCT_NAME: documentserver-ie
# redis 6
- config: redis.yml
REDIS_VERSION: 6
# redis 5
- config: redis.yml
REDIS_VERSION: 5
# graphite
- config: graphite.yml
services:
- docker

View File

@ -31,7 +31,7 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \
mysql-client \
nano \
net-tools \
netcat \
netcat-openbsd \
nginx-extras \
postgresql \
postgresql-client \
@ -67,7 +67,8 @@ ARG REPO_URL="deb http://download.onlyoffice.com/repo/debian squeeze main"
ARG COMPANY_NAME=onlyoffice
ARG PRODUCT_NAME=documentserver
ENV COMPANY_NAME=$COMPANY_NAME
ENV COMPANY_NAME=$COMPANY_NAME \
PRODUCT_NAME=$PRODUCT_NAME
RUN echo "$REPO_URL" | tee /etc/apt/sources.list.d/ds.list && \
apt-get -y update && \
@ -81,4 +82,4 @@ RUN echo "$REPO_URL" | tee /etc/apt/sources.list.d/ds.list && \
VOLUME /var/log/$COMPANY_NAME /var/lib/$COMPANY_NAME /var/www/$COMPANY_NAME/Data /var/lib/postgresql /var/lib/rabbitmq /var/lib/redis /usr/share/fonts/truetype/custom
ENTRYPOINT /app/ds/run-document-server.sh
ENTRYPOINT ["/app/ds/run-document-server.sh"]

View File

@ -61,7 +61,10 @@ clean-docker:
docker rmi -f $$(docker images -q $(COMPANY_NAME_LOW)/*) || exit 0
deploy: $(DOCKER_TARGETS)
$(foreach TARGET,$(DOCKER_TARGETS),docker push $(subst $(COLON),:,$(TARGET));)
$(foreach TARGET,$(DOCKER_TARGETS), \
for i in {1..3}; do \
docker push $(subst $(COLON),:,$(TARGET)) && break || sleep 1m; \
done;)
publish: $(DOCKER_ARCH)
aws s3 cp \

View File

@ -99,7 +99,7 @@ So you need to create and install the following files:
/app/onlyoffice/DocumentServer/data/certs/tls.key
/app/onlyoffice/DocumentServer/data/certs/tls.crt
When using CA certified certificates, these files are provided to you by the CA. When using self-signed certificates you need to generate these files yourself. Skip the following section if you are have CA certified SSL certificates.
When using CA certified certificates, these files are provided to you by the CA. When using self-signed certificates you need to generate these files yourself. Skip the following section if you have CA certified SSL certificates (e.g. [Let's Encrypt](https://letsencrypt.org)).
#### Generation of Self Signed Certificates
@ -181,6 +181,10 @@ Below is the complete list of parameters that can be set using environment varia
- **JWT_HEADER**: Defines the http header that will be used to send the JSON Web Token. Defaults to `Authorization`.
- **JWT_IN_BODY**: Specifies the enabling the token validation in the request body to the ONLYOFFICE Document Server. Defaults to `false`.
- **USE_UNAUTHORIZED_STORAGE**: Set to `true`if using selfsigned certificates for your storage server e.g. Nextcloud. Defaults to `false`
- **METRICS_ENABLED**: Specifies the enabling StatsD for ONLYOFFICE Document Server. Defaults to `false`.
- **METRICS_HOST**: Defines StatsD listening host. Defaults to `localhost`.
- **METRICS_PORT**: Defines StatsD listening port. Defaults to `8125`.
- **METRICS_PREFIX**: Defines StatsD metrics prefix for backend services. Defaults to `ds.`.
## Installing ONLYOFFICE Document Server integrated with Community and Mail Servers

View File

@ -24,6 +24,7 @@ services:
- '443:443'
stdin_open: true
restart: always
stop_grace_period: 60s
volumes:
- /var/www/onlyoffice/Data
- /var/log/onlyoffice

View File

@ -1,5 +1,11 @@
#!/bin/bash
function clean_exit {
/usr/bin/documentserver-prepare4shutdown.sh
}
trap clean_exit SIGTERM
# Define '**' behavior explicitly
shopt -s globstar
@ -49,6 +55,12 @@ JWT_SECRET=${JWT_SECRET:-secret}
JWT_HEADER=${JWT_HEADER:-Authorization}
JWT_IN_BODY=${JWT_IN_BODY:-false}
if [[ ${PRODUCT_NAME} == "documentserver" ]]; then
REDIS_ENABLED=false
else
REDIS_ENABLED=true
fi
ONLYOFFICE_DEFAULT_CONFIG=${CONF_DIR}/local.json
ONLYOFFICE_LOG4JS_CONFIG=${CONF_DIR}/log4js/production.json
ONLYOFFICE_EXAMPLE_CONFIG=${CONF_DIR}-example/local.json
@ -78,6 +90,11 @@ read_setting(){
deprecated_var AMQP_SERVER_URL AMQP_URI
deprecated_var AMQP_SERVER_TYPE AMQP_TYPE
METRICS_ENABLED="${METRICS_ENABLED:-false}"
METRICS_HOST="${METRICS_HOST:-localhost}"
METRICS_PORT="${METRICS_PORT:-8125}"
METRICS_PREFIX="${METRICS_PREFIX:-.ds}"
DB_HOST=${DB_HOST:-${POSTGRESQL_SERVER_HOST:-$(${JSON} services.CoAuthoring.sql.dbHost)}}
case $DB_TYPE in
"postgres")
@ -179,6 +196,15 @@ waiting_for_redis(){
waiting_for_datacontainer(){
waiting_for_connection ${ONLYOFFICE_DATA_CONTAINER_HOST} ${ONLYOFFICE_DATA_CONTAINER_PORT}
}
update_statsd_settings(){
${JSON} -I -e "if(this.statsd===undefined)this.statsd={};"
${JSON} -I -e "this.statsd.useMetrics = '${METRICS_ENABLED}'"
${JSON} -I -e "this.statsd.host = '${METRICS_HOST}'"
${JSON} -I -e "this.statsd.port = '${METRICS_PORT}'"
${JSON} -I -e "this.statsd.prefix = '${METRICS_PREFIX}'"
}
update_db_settings(){
${JSON} -I -e "this.services.CoAuthoring.sql.type = '${DB_TYPE}'"
${JSON} -I -e "this.services.CoAuthoring.sql.dbHost = '${DB_HOST}'"
@ -420,6 +446,10 @@ if [ ${ONLYOFFICE_DATA_CONTAINER_HOST} = "localhost" ]; then
read_setting
if [ $METRICS_ENABLED = "true" ]; then
update_statsd_settings
fi
update_welcome_page
update_log_settings
@ -459,14 +489,16 @@ if [ ${ONLYOFFICE_DATA_CONTAINER_HOST} = "localhost" ]; then
rm -rf /var/run/rabbitmq
fi
if [ ${REDIS_SERVER_HOST} != "localhost" ]; then
update_redis_settings
else
# change rights for redis directory
chown -R redis:redis ${REDIS_DATA}
chmod -R 750 ${REDIS_DATA}
if [ ${REDIS_ENABLED} = "true" ]; then
if [ ${REDIS_SERVER_HOST} != "localhost" ]; then
update_redis_settings
else
# change rights for redis directory
chown -R redis:redis ${REDIS_DATA}
chmod -R 750 ${REDIS_DATA}
LOCAL_SERVICES+=("redis-server")
LOCAL_SERVICES+=("redis-server")
fi
fi
else
# no need to update settings just wait for remote data
@ -492,7 +524,9 @@ fi
if [ ${ONLYOFFICE_DATA_CONTAINER} != "true" ]; then
waiting_for_db
waiting_for_amqp
waiting_for_redis
if [ ${REDIS_ENABLED} = "true" ]; then
waiting_for_redis
fi
update_nginx_settings
@ -512,4 +546,5 @@ service nginx start
documentserver-generate-allfonts.sh ${ONLYOFFICE_DATA_CONTAINER}
documentserver-static-gzip.sh ${ONLYOFFICE_DATA_CONTAINER}
tail -f /var/log/${COMPANY_NAME}/**/*.log
tail -f /var/log/${COMPANY_NAME}/**/*.log &
wait $!

View File

@ -17,7 +17,7 @@ services:
onlyoffice-activemq:
container_name: onlyoffice-activemq
image: webcenter/activemq:5.14.3
image: webcenter/activemq:${ACTIVEMQ_VERSION:-5.14.3}
environment:
- ACTIVEMQ_USERS_guest=${ACTIVEMQ_USERS_guest:-guest}
- ACTIVEMQ_GROUPS_owners=${ACTIVEMQ_GROUPS_owners:-guest}

32
tests/graphite.yml Normal file
View File

@ -0,0 +1,32 @@
version: '2.1'
services:
onlyoffice-documentserver:
container_name: onlyoffice-documentserver
build:
context: ../.
depends_on:
- onlyoffice-graphite
environment:
- METRICS_ENABLED=${METRICS_ENABLED:-true}
- METRICS_HOST=${METRICS_HOST:-localhost}
- METRICS_PORT=${METRICS_PORT:-8125}
- METRICS_PREFIX=${METRICS_PREFIX:-ds.}
stdin_open: true
restart: always
expose:
- '2003'
ports:
- '80:80'
volumes:
- ./graphite/statsd:/var/www/onlyoffice/documentserver/server/Metrics/config
onlyoffice-graphite:
container_name: onlyoffice-graphite
image: graphiteapp/graphite-statsd
environment:
- GRAPHITE_STATSD_HOST=${GRAPHITE_STATSD_HOST:-onlyoffice-documentserver}
- GRAPHITE_TIME_ZONE=${GRAPHITE_TIME_ZONE:-Etc/UTC}
ports:
- '8888:80'
stdin_open: true
restart: always

View File

@ -0,0 +1,7 @@
{
"graphiteHost": "onlyoffice-graphite",
"graphitePort": 2003,
"port": 8125,
"flushInterval": 60000,
"backends": [ "./backends/graphite.js" ]
}

View File

@ -20,7 +20,7 @@ services:
onlyoffice-mariadb:
container_name: onlyoffice-mariadb
image: mariadb:10.5
image: mariadb:${MARIADB_VERSION:-10.5}
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE:-onlyoffice}
- MYSQL_USER=${MYSQL_USER:-onlyoffice}

View File

@ -20,7 +20,8 @@ services:
onlyoffice-mysql:
container_name: onlyoffice-mysql
image: mysql:5.7
image: mysql:${MYSQL_VERSION:-5.7}
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE:-onlyoffice}
- MYSQL_USER=${MYSQL_USER:-onlyoffice}

View File

@ -20,7 +20,7 @@ services:
onlyoffice-postgresql:
container_name: onlyoffice-postgresql
image: postgres:9.5
image: postgres:${POSTGRES_VERSION:-9.5}
environment:
- POSTGRES_DB=${POSTGRES_DB:-onlyoffice}
- POSTGRES_USER=${POSTGRES_USER:-onlyoffice}

View File

@ -17,7 +17,7 @@ services:
onlyoffice-rabbitmq:
container_name: onlyoffice-rabbitmq
image: rabbitmq
image: rabbitmq:${RABBITMQ_VERSION:-latest}
restart: always
networks:
- onlyoffice

View File

@ -4,6 +4,8 @@ services:
container_name: onlyoffice-documentserver
build:
context: ../.
args:
- PRODUCT_NAME=${PRODUCT_NAME:-documentserver}
environment:
- REDIS_SERVER_HOST=${REDIS_SERVER_HOST:-onlyoffice-redis}
- REDIS_SERVER_PORT=${REDIS_SERVER_PORT:-6379}
@ -17,7 +19,7 @@ services:
onlyoffice-redis:
container_name: onlyoffice-redis
image: redis
image: redis:${REDIS_VERSION:-latest}
restart: always
networks:
- onlyoffice

12
tests/standalone.yml Normal file
View File

@ -0,0 +1,12 @@
version: '2.1'
services:
onlyoffice-documentserver:
container_name: onlyoffice-documentserver
build:
context: ../.
args:
- PRODUCT_NAME=${PRODUCT_NAME:-documentserver}
stdin_open: true
restart: always
ports:
- '80:80'