Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/bash
#
# Copyright (C) 2019 OX Software GmbH
#
# This file is part of OX Automation.
#
# OX Automation is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# OX Automation is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OX Automation. If not, see <http://www.gnu.org/licenses/>.
#
#
# Authors:
# Benedikt Kroening <benedikt.kroening@open-xchange.com>
#
set -e
SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P)"
source ${SCRIPT_DIR}/../../lib/common.bash
# Init environment as configured:
# INSTALL_TYPE=singlenode:
# done: waitfordb
# ---> restartoxservice
# registerserver
# registerfilestore
# registerdatabase masterdatabase
# registerglobaldb
# OX_ENV_QA=true:
# if [[ "${INSTALL_TYPE}" != "singlenode" ]]; then
# echo "This is not a singlenode environment, aborting this script ..."
# exit 0
# fi
INIT_STATE_FILE="/opt/open-xchange/etc/20-init-middleware-done"
if [ ! -f ${INIT_STATE_FILE} ]; then
echo "Initializing this middleware "
# Increasing rate limit...
# setting default config (key, value, filepath)
setOXProperty com.openexchange.servlet.maxRate 1500000 /opt/open-xchange/etc/server.properties
# Set sieve server
setOXProperty com.openexchange.mail.filter.server "${OX_MAIL_HOST}" /opt/open-xchange/etc/mailfilter.properties
# Enabling Chronos owner change...
# setOXProperty io.ox/calendar//chronos/allowChangeOfOrganizer true /opt/open-xchange/etc/settings/appsuite.properties
setOXProperty com.openexchange.calendar.allowChangeOfOrganizer true /opt/open-xchange/etc/calendar.properties
# setOXProperty for sharing to frontend
setOXProperty com.openexchange.share.guestHostname "frontend" /opt/open-xchange/etc/share.properties
setOXProperty io.ox/tours//server/disableTours true /opt/open-xchange/etc/settings/guidedtours.properties
setOXProperty io.ox/core//wizards/firstStart/finished true /opt/open-xchange/etc/settings/guidedtours.properties
setOXProperty io.ox/tours//server/startOnFirstLogin false /opt/open-xchange/etc/settings/guidedtours.properties
setOXProperty io.ox/tours//whatsNew/neverShowAgain true /opt/open-xchange/etc/settings/guidedtours.properties
# enable Jolokia
setOXProperty com.openexchange.jolokia.start true /opt/open-xchange/etc/jolokia.properties
setOXProperty com.openexchange.jolokia.user openxchange /opt/open-xchange/etc/jolokia.properties
setOXProperty com.openexchange.jolokia.password secret /opt/open-xchange/etc/jolokia.properties
setOXProperty com.openexchange.jolokia.restrict.to.localhost false /opt/open-xchange/etc/jolokia.properties
echo "Waiting for database service ..."
waitPort ${DATABASE_HOST_NAME} ${DATABASE_HOST_PORT}
restartService open-xchange
sleep 10
waitPort localhost 8009
/opt/open-xchange/sbin/registerserver -n "${OX_SERVER_NAME}" \
-A "${OX_ADMINMASTER_USER}" \
-P "${OX_ADMINMASTER_PASS}" > /opt/open-xchange/etc/20-registerserver.out
export OX_SERVER_ID=$(cat /opt/open-xchange/etc/20-registerserver.out | awk '{ print $2 }')
echo "Creating filestore at /var/opt/filestore (you may mount some external storage there ...)"
mkdir -p /var/opt/filestore
chown -R open-xchange:open-xchange /var/opt/filestore
# Set permissions in uploads directory, which is mapped to host
chmod 777 -R /var/spool/open-xchange/uploads
/opt/open-xchange/sbin/registerfilestore -t file:///var/opt/filestore \
-A "${OX_ADMINMASTER_USER}" \
-P "${OX_ADMINMASTER_PASS}" > /opt/open-xchange/etc/20-registerfilestore.out
export OX_FILESTORE_ID=$(cat /opt/open-xchange/etc/20-registerfilestore.out | awk '{ print $2 }')
# register master database
/opt/open-xchange/sbin/registerdatabase \
-A "${OX_ADMINMASTER_USER}" \
-P "${OX_ADMINMASTER_PASS}" \
--hostname "${DATABASE_HOST_NAME}" \
--dbuser "${OX_CONFIGDB_USER}" \
--dbpasswd "${OX_CONFIGDB_PASS}" \
--master "true" \
--name "oxdatabase" > /opt/open-xchange/etc/20-registermasterdatabase.out
OX_DATABASE_MASTER_ID=$(cat /opt/open-xchange/etc/20-registermasterdatabase.out | awk '{ print $2 }')
# register globaldb
/opt/open-xchange/sbin/registerdatabase \
-A "${OX_ADMINMASTER_USER}" \
-P "${OX_ADMINMASTER_PASS}" \
--hostname "${DATABASE_HOST_NAME}" \
--dbuser "${OX_CONFIGDB_USER}" \
--dbpasswd "${OX_CONFIGDB_PASS}" \
--master "true" \
--name "oxglobal" \
--maxunit 0 > /opt/open-xchange/etc/20-registerglobaldatabase.out
OX_DATABASE_GLOBAL_ID=$(cat /opt/open-xchange/etc/20-registerglobaldatabase.out | awk '{ print $2 }')
echo "Setting globaldb id in /opt/open-xchange/etc/globaldb.yml to '$OX_DATABASE_GLOBAL_ID'"
sed -i "s/id:.*/id: '$OX_DATABASE_GLOBAL_ID'/g" /opt/open-xchange/etc/globaldb.yml
echo "Successfully initialized environment..."
echo "Server name: "$OX_SERVER_NAME
echo "Server id: "$OX_SERVER_ID
echo "Filestore ID: "$OX_FILESTORE_ID
echo "Master DB ID: "$OX_DATABASE_MASTER_ID
echo "Global DB ID: "$OX_DATABASE_GLOBAL_ID
echo "===================================================="
echo "$(date)" > ${INIT_STATE_FILE}
else
echo "WARNING: This scripts has already been executed and will be skipped!"
sleep 5
fi
echo "Singlenode environment init finished at: "
cat ${INIT_STATE_FILE}