Skip to content

Commit f5fdc03

Browse files
szaimenclaude
andcommitted
Replace OnlyOffice with EuroOffice; retire integrated script
- Rename the OnlyOffice (Docker) app script to eurooffice_docker.sh and switch to the EuroOffice fork: image ghcr.io/euro-office/documentserver, Nextcloud app id/config namespace "eurooffice", container "eurooffice". - Move apps/onlyoffice_integrated.sh to old/ (retired) and drop the "OnlyOffice (Integrated)" entry from the Documentserver menu. - Keep backward-compatible cleanup: detection/removal in the EuroOffice and Collabora scripts and in remove_eurooffice_docker()/remove_all_office_apps() still match the legacy onlyoffice image, container, app and config so an existing OnlyOffice install is detected and removed before installing any other office solution. The auto-update path updates both the new eurooffice and the legacy onlyoffice containers. - Update remaining user-facing references (menus, install/restore text, lib.sh). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1c8dc01 commit f5fdc03

12 files changed

Lines changed: 87 additions & 67 deletions

addons/deSEC/desec_subdomain.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ if yesno_box_yes "Would you like to secure $FINAL_SUBDOMAIN with TLS?"
151151
then
152152
if generate_desec_cert "$FINAL_SUBDOMAIN"
153153
then
154-
msg_box "Congrats! You should now be able to use $FINAL_SUBDOMAIN for setting up Talk, Collabora, OnlyOffice and other apps in Nextcloud.
154+
msg_box "Congrats! You should now be able to use $FINAL_SUBDOMAIN for setting up Talk, Collabora, EuroOffice and other apps in Nextcloud.
155155
156156
Please remember to add the port number to the domain, if you chose a custom one, like this: $FINAL_SUBDOMAIN:portnumber"
157157
fi

apps/collabora_docker.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ else
3535
removal_popup "$SCRIPT_NAME"
3636
fi
3737

38-
# Check if OnlyOffice is previously installed
38+
# Check if EuroOffice (or the legacy OnlyOffice) is previously installed
3939
# If yes, then stop and prune the docker container
40-
if does_this_docker_exist 'onlyoffice/documentserver'
40+
if does_this_docker_exist 'ghcr.io/euro-office/documentserver' || does_this_docker_exist 'onlyoffice/documentserver'
4141
then
42-
# Removal
43-
remove_onlyoffice_docker
42+
# Removal (also cleans up a legacy OnlyOffice install)
43+
remove_eurooffice_docker
4444
fi
4545

4646
# Remove all office apps

apps/collabora_integrated.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ then
4646
remove_collabora_docker
4747
fi
4848

49-
# Check if Onlyoffice is installed and remove every trace of it
50-
if does_this_docker_exist 'onlyoffice/documentserver'
49+
# Check if EuroOffice (or the legacy OnlyOffice) is installed and remove every trace of it
50+
if does_this_docker_exist 'ghcr.io/euro-office/documentserver' || does_this_docker_exist 'onlyoffice/documentserver'
5151
then
52-
# Removal
53-
remove_onlyoffice_docker
52+
# Removal (also cleans up a legacy OnlyOffice install)
53+
remove_eurooffice_docker
5454
fi
5555

5656
# Remove all office apps
Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
# T&M Hansson IT AB © - 2019, https://www.hanssonit.se/
44

55
true
6-
SCRIPT_NAME="OnlyOffice (Docker)"
7-
SCRIPT_EXPLAINER="This script will install the OnlyOffice Document Server bundled with Docker"
6+
SCRIPT_NAME="EuroOffice (Docker)"
7+
SCRIPT_EXPLAINER="This script will install the EuroOffice Document Server bundled with Docker"
88
# shellcheck source=lib.sh
99
source /var/scripts/fetch_lib.sh
1010

@@ -17,18 +17,23 @@ debug_mode
1717
# Check if root
1818
root_check
1919

20-
# Check if collabora is already installed
21-
if ! does_this_docker_exist 'onlyoffice/documentserver'
20+
# Check if EuroOffice (or the legacy OnlyOffice) is already installed
21+
if ! does_this_docker_exist 'ghcr.io/euro-office/documentserver' && ! does_this_docker_exist 'onlyoffice/documentserver'
2222
then
2323
# Ask for installing
2424
install_popup "$SCRIPT_NAME"
2525
else
2626
# Ask for removal or reinstallation
2727
reinstall_remove_menu "$SCRIPT_NAME"
28-
# Removal
29-
remove_onlyoffice_docker
30-
# Remove config.php value set when install was successful
28+
# Removal (also cleans up a legacy OnlyOffice install)
29+
remove_eurooffice_docker
30+
# Remove config.php values set when install was successful
3131
nextcloud_occ config:system:delete allow_local_remote_servers
32+
nextcloud_occ config:system:delete eurooffice
33+
nextcloud_occ config:system:delete eurooffice jwt_secret
34+
nextcloud_occ config:app:delete eurooffice jwt_secret
35+
nextcloud_occ config:system:delete eurooffice jwt_header
36+
# Remove legacy OnlyOffice config values if they still exist
3237
nextcloud_occ config:system:delete onlyoffice
3338
nextcloud_occ config:system:delete onlyoffice jwt_secret
3439
nextcloud_occ config:app:delete onlyoffice jwt_secret
@@ -51,7 +56,7 @@ remove_all_office_apps
5156
if [ "$(apache2ctl -M | grep evasive)" != "" ]
5257
then
5358
msg_box "We noticed that 'mod_evasive' is installed which is the DDOS protection for webservices. \
54-
It has compatibility issues with OnlyOffice and you can now choose to disable it."
59+
It has compatibility issues with EuroOffice and you can now choose to disable it."
5560
if ! yesno_box_yes "Do you want to disable DDOS protection?"
5661
then
5762
print_text_in_color "$ICyan" "Keeping mod_evasive active."
@@ -63,8 +68,8 @@ It has compatibility issues with OnlyOffice and you can now choose to disable it
6368
fi
6469
fi
6570

66-
# Ask for the domain for OnlyOffice
67-
SUBDOMAIN=$(input_box_flow "OnlyOffice subdomain e.g: office.yourdomain.com
71+
# Ask for the domain for EuroOffice
72+
SUBDOMAIN=$(input_box_flow "EuroOffice subdomain e.g: office.yourdomain.com
6873
NOTE: This domain must be different than your Nextcloud domain. \
6974
They can however be hosted on the same server, but would require separate DNS entries.")
7075

@@ -113,8 +118,8 @@ Please install Nextcloud and make sure your domain is reachable, or activate TLS
113118
on your domain to be able to run this script.
114119
If you use the Nextcloud VM you can use the Let's Encrypt script to get TLS and activate your Nextcloud domain.
115120
When TLS is activated, run these commands from your CLI:
116-
sudo curl -sLO $APP/onlyoffice_docker.sh
117-
sudo bash onlyoffice_docker.sh"
121+
sudo curl -sLO $APP/eurooffice_docker.sh
122+
sudo bash eurooffice_docker.sh"
118123
exit 1
119124
fi
120125

@@ -127,20 +132,20 @@ check_open_port 80 "$SUBDOMAIN"
127132
check_open_port 443 "$SUBDOMAIN"
128133

129134
# Test RAM size (2GB min) + CPUs (min 2)
130-
ram_check 2 OnlyOffice
131-
cpu_check 2 OnlyOffice
135+
ram_check 2 EuroOffice
136+
cpu_check 2 EuroOffice
132137

133138
# Check if Nextcloud is installed with TLS
134-
check_nextcloud_https "OnlyOffice (Docker)"
139+
check_nextcloud_https "EuroOffice (Docker)"
135140

136141
# Install Docker
137142
install_docker
138143

139-
ONLYOFFICE_SECRET="$(gen_passwd "$SHUF" "a-zA-Z0-9")"
144+
EUROOFFICE_SECRET="$(gen_passwd "$SHUF" "a-zA-Z0-9")"
140145

141-
# Install Onlyoffice docker
142-
docker pull onlyoffice/documentserver:latest
143-
docker run -i -t -d -p 127.0.0.3:9090:80 -e JWT_ENABLED=true -e JWT_HEADER=AuthorizationJwt -e JWT_SECRET="$ONLYOFFICE_SECRET" --restart always --name onlyoffice onlyoffice/documentserver
146+
# Install EuroOffice docker
147+
docker pull ghcr.io/euro-office/documentserver:latest
148+
docker run -i -t -d -p 127.0.0.3:9090:80 -e JWT_ENABLED=true -e JWT_HEADER=AuthorizationJwt -e JWT_SECRET="$EUROOFFICE_SECRET" --restart always --name eurooffice ghcr.io/euro-office/documentserver
144149

145150
# Install apache2
146151
install_if_not apache2
@@ -164,7 +169,7 @@ then
164169
rm -f "$HTTPS_CONF"
165170
fi
166171

167-
# Create Vhost for OnlyOffice Docker online in Apache2
172+
# Create Vhost for EuroOffice Docker online in Apache2
168173
if [ ! -f "$HTTPS_CONF" ];
169174
then
170175
cat << HTTPS_CREATE > "$HTTPS_CONF"
@@ -180,7 +185,7 @@ then
180185
SSLEngine on
181186
SSLCompression off
182187
SSLProtocol -all +TLSv1.2 $TLS13
183-
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
188+
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
184189
SSLHonorCipherOrder off
185190
SSLSessionTickets off
186191
ServerSignature off
@@ -246,31 +251,31 @@ then
246251
print_text_in_color "$IGreen" "Certs are generated!"
247252
a2ensite "$SUBDOMAIN.conf"
248253
restart_webserver
249-
# Install OnlyOffice
250-
install_and_enable_app onlyoffice
254+
# Install EuroOffice
255+
install_and_enable_app eurooffice
251256
else
252-
last_fail_tls "$SCRIPTS"/apps/onlyoffice.sh
257+
last_fail_tls "$SCRIPTS"/apps/eurooffice_docker.sh
253258
exit 1
254259
fi
255260

256-
# Set config for OnlyOffice
257-
if [ -d "$NC_APPS_PATH"/onlyoffice ]
261+
# Set config for EuroOffice
262+
if [ -d "$NC_APPS_PATH"/eurooffice ]
258263
then
259-
nextcloud_occ config:app:set onlyoffice DocumentServerUrl --value=https://"$SUBDOMAIN/"
264+
nextcloud_occ config:app:set eurooffice DocumentServerUrl --value=https://"$SUBDOMAIN/"
260265
chown -R www-data:www-data "$NC_APPS_PATH"
261266
# Appending the new domain to trusted domains
262267
add_to_trusted_domains "$SUBDOMAIN"
263268
# Allow remote servers with local addresses e.g. in federated shares, webcal services and more
264269
nextcloud_occ config:system:set allow_local_remote_servers --value="true"
265-
nextcloud_occ config:system:set onlyoffice jwt_secret --value="$ONLYOFFICE_SECRET"
266-
nextcloud_occ config:app:set onlyoffice jwt_secret --value="$ONLYOFFICE_SECRET"
267-
nextcloud_occ config:system:set onlyoffice jwt_header --value="AuthorizationJwt"
270+
nextcloud_occ config:system:set eurooffice jwt_secret --value="$EUROOFFICE_SECRET"
271+
nextcloud_occ config:app:set eurooffice jwt_secret --value="$EUROOFFICE_SECRET"
272+
nextcloud_occ config:system:set eurooffice jwt_header --value="AuthorizationJwt"
268273
# Add prune command
269274
add_dockerprune
270275
# Restart Docker
271276
print_text_in_color "$ICyan" "Restarting Docker..."
272-
docker restart onlyoffice
273-
msg_box "OnlyOffice Docker is now successfully installed.
277+
docker restart eurooffice
278+
msg_box "EuroOffice Docker is now successfully installed.
274279
Please be aware that the container is currently starting which can take a few minutes."
275280
fi
276281

apps/pico_cms.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ then
151151
exit
152152
fi
153153

154-
# Ask for the domain for OnlyOffice
154+
# Ask for the domain for EuroOffice
155155
SUBDOMAIN=$(input_box_flow "Please enter your Sites subdomain e.g: 'sites.yourdomain.com' or 'blog.yourdomain.com'
156156
NOTE: This domain must be different than your Nextcloud domain. \
157157
They can however be hosted on the same server, but would require separate DNS entries.")
@@ -226,7 +226,7 @@ then
226226
rm -f "$HTTPS_CONF"
227227
fi
228228

229-
# Create Vhost for OnlyOffice Docker online in Apache2
229+
# Create Vhost for EuroOffice Docker online in Apache2
230230
if [ ! -f "$HTTPS_CONF" ];
231231
then
232232
cat << HTTPS_CREATE > "$HTTPS_CONF"

lib.sh

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -818,7 +818,7 @@ You now have two choices:
818818
in the same way as you just have.
819819
2. Import this VM again without raising the RAM, but don't install any of the following apps:
820820
1) Collabora
821-
2) OnlyOffice
821+
2) EuroOffice
822822
3) Full Text Search
823823
824824
This script will now exit.
@@ -932,7 +932,7 @@ check_nextcloud_https() {
932932
if ! nextcloud_occ_no_check config:system:get overwrite.cli.url | grep -q "https"
933933
then
934934
# Check if it's used by any of the Documentserver apps and adopt the message to that
935-
if [ "$1" == 'Collabora (Docker)' ] || [ "$1" == 'OnlyOffice (Docker)' ]
935+
if [ "$1" == 'Collabora (Docker)' ] || [ "$1" == 'EuroOffice (Docker)' ]
936936
then
937937
ncdomain
938938
if ! curl -s https://"$NCDOMAIN"/status.php | grep -q 'installed":true'
@@ -1817,12 +1817,15 @@ remove_collabora_docker() {
18171817
remove_from_trusted_domains "$SUBDOMAIN"
18181818
}
18191819

1820-
remove_onlyoffice_docker() {
1821-
# Check if Onlyoffice is previously installed
1820+
remove_eurooffice_docker() {
1821+
# Check if EuroOffice or the legacy OnlyOffice is previously installed
18221822
# If yes, then stop and prune the docker container
1823+
# The legacy OnlyOffice image (onlyoffice/documentserver) is still removed
1824+
# here so that older installs are cleaned up before switching solution.
18231825
docker_prune_this 'onlyoffice/documentserver'
1826+
docker_prune_this 'ghcr.io/euro-office/documentserver'
18241827
# Revoke LE
1825-
SUBDOMAIN=$(input_box_flow "Please enter the subdomain you are using for OnlyOffice, e.g: office.yourdomain.com")
1828+
SUBDOMAIN=$(input_box_flow "Please enter the subdomain you are using for EuroOffice, e.g: office.yourdomain.com")
18261829
if [ -f "$CERTFILES/$SUBDOMAIN/cert.pem" ]
18271830
then
18281831
yes no | certbot revoke --cert-path "$CERTFILES/$SUBDOMAIN/cert.pem"
@@ -1838,7 +1841,12 @@ remove_onlyoffice_docker() {
18381841
restart_webserver
18391842
rm -f "$SITES_AVAILABLE/$SUBDOMAIN.conf"
18401843
fi
1841-
# Disable onlyoffice if activated
1844+
# Disable eurooffice if activated
1845+
if is_app_installed eurooffice
1846+
then
1847+
nextcloud_occ app:remove eurooffice
1848+
fi
1849+
# Disable the legacy onlyoffice app if it's still activated
18421850
if is_app_installed onlyoffice
18431851
then
18441852
nextcloud_occ app:remove onlyoffice
@@ -1849,13 +1857,19 @@ remove_onlyoffice_docker() {
18491857

18501858
# Remove all office apps
18511859
remove_all_office_apps() {
1852-
# remove OnlyOffice-documentserver if installed
1860+
# remove EuroOffice-documentserver if installed
18531861
if is_app_installed documentserver_community
18541862
then
18551863
nextcloud_occ app:remove documentserver_community
18561864
fi
18571865

1858-
# Disable OnlyOffice App if installed
1866+
# Disable EuroOffice App if installed
1867+
if is_app_installed eurooffice
1868+
then
1869+
nextcloud_occ app:remove eurooffice
1870+
fi
1871+
1872+
# Disable the legacy OnlyOffice App if it's still installed
18591873
if is_app_installed onlyoffice
18601874
then
18611875
nextcloud_occ app:remove onlyoffice
@@ -1937,7 +1951,7 @@ fi
19371951
}
19381952

19391953
# Remove selected Docker image
1940-
# docker_prune_this 'collabora/code' 'onlyoffice/documentserver' 'ark74/nc_fts' 'imaginary'
1954+
# docker_prune_this 'collabora/code' 'eurooffice/documentserver' 'ark74/nc_fts' 'imaginary'
19411955
docker_prune_this() {
19421956
if does_this_docker_exist "$1"
19431957
then

menu/additional_apps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ fi
3838
choice=$(whiptail --title "$TITLE" --checklist \
3939
"Which apps do you want to install?\n\nAutomatically configure and install selected apps
4040
$CHECKLIST_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
41-
"Documentserver" "(OnlyOffice or Collabora - Docker or Integrated)" OFF \
41+
"Documentserver" "(EuroOffice or Collabora - Docker or Integrated)" OFF \
4242
"Bitwarden" "(External password manager) [4GB RAM]" OFF \
4343
"Fail2ban " "(Extra Bruteforce protection)" "$STARTUP_SWITCH" \
4444
"Recognize" "(Use [local] AI on your photos in Nextcloud) [8GB RAM]" OFF \

menu/documentserver.sh

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ root_check
1818

1919
choice=$(whiptail --title "$TITLE" --menu \
2020
"Which Documentserver for online editing do you want to install?\n\nWe recommend Collabora with Docker. The subdomain could look like this:\noffice.your-nextcloud.tld\n\nAutomatically configure and install the selected Documentserver.
21-
$MENU_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 4 \
21+
$MENU_GUIDE\n\n$RUN_LATER_GUIDE" "$WT_HEIGHT" "$WT_WIDTH" 3 \
2222
"Collabora (Docker)" "(Extra Subdomain required)" \
2323
"Collabora (Integrated)" "(No Subdomain required)" \
24-
"OnlyOffice (Docker)" "(Extra Subdomain required)" \
25-
"OnlyOffice (Integrated)" "(No Subdomain required)" 3>&1 1>&2 2>&3)
24+
"EuroOffice (Docker)" "(Extra Subdomain required)" 3>&1 1>&2 2>&3)
2625

2726
case "$choice" in
2827
"Collabora (Docker)")
@@ -33,13 +32,9 @@ case "$choice" in
3332
print_text_in_color "$ICyan" "Downloading the Collabora (Integrated) script..."
3433
run_script APP collabora_integrated
3534
;;
36-
"OnlyOffice (Docker)")
37-
print_text_in_color "$ICyan" "Downloading the OnlyOffice (Docker) script..."
38-
run_script APP onlyoffice_docker
39-
;;
40-
"OnlyOffice (Integrated)")
41-
print_text_in_color "$ICyan" "Downloading the OnlyOffice (Integrated) script..."
42-
run_script APP onlyoffice_integrated
35+
"EuroOffice (Docker)")
36+
print_text_in_color "$ICyan" "Downloading the EuroOffice (Docker) script..."
37+
run_script APP eurooffice_docker
4338
;;
4439
*)
4540
;;

nextcloud_install_production.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ apt-get autoremove -y
993993
apt-get autoclean
994994
find /root "/home/$UNIXUSER" -type f \( -name '*.sh*' -o -name '*.html*' -o -name '*.tar*' -o -name '*.zip*' \) -delete
995995

996-
# Install virtual kernels for Hyper-V, (and extra for UTF8 kernel module + Collabora and OnlyOffice)
996+
# Install virtual kernels for Hyper-V, (and extra for UTF8 kernel module + Collabora and EuroOffice)
997997
# Kernel 5.4
998998
if ! home_sme_server
999999
then

nextcloud_update.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -684,10 +684,16 @@ $DOCKER_RUN_OUTPUT"
684684
fi
685685
# Collabora CODE
686686
docker_update_specific 'code' 'Collabora'
687-
# OnlyOffice
687+
# EuroOffice
688688
## Don't upgrade to community if EE is installed
689-
if ! does_this_docker_exist onlyoffice-ee
689+
if ! does_this_docker_exist eurooffice-ee && ! does_this_docker_exist onlyoffice-ee
690690
then
691+
# New EuroOffice install (container name: eurooffice)
692+
if does_this_docker_exist 'ghcr.io/euro-office/documentserver'
693+
then
694+
docker_update_specific 'eurooffice' 'EuroOffice'
695+
fi
696+
# Legacy OnlyOffice install (container name: onlyoffice)
691697
if does_this_docker_exist 'onlyoffice/documentserver'
692698
then
693699
docker_update_specific 'onlyoffice' 'OnlyOffice'

0 commit comments

Comments
 (0)