Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DocumentServer Word not working on ARM #152

Closed
pi-xel opened this issue Aug 9, 2017 · 166 comments
Closed

DocumentServer Word not working on ARM #152

pi-xel opened this issue Aug 9, 2017 · 166 comments
Labels
feature request Issues that request new features to be added to OnlyOffice fixed Issues that fixed and released

Comments

@pi-xel
Copy link

pi-xel commented Aug 9, 2017

Hello everyone,

I have successfully compiled OnlyOffice DocumentServer for ARM (latest GIT clone, on an ODroid XU4 running Debian Jessie) and integrated it with Nextcloud.

I can edit spreadsheets and presentations flawlessly, however, when I try to open a Word document, the loading screen gets stuck at 100% and I log messages like:

2017-08-10 01:38:15.688] [ERROR] nodeJS - changesError: docId = 3344951502280414 Error: Uncaught TypeError: Cannot read property 'kb' of null Script: https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js Line: 7205:203 userAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 platform: Linux x86_64 StackTrace: TypeError: Cannot read property 'kb' of null
at Sa.yV (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203)
at wf (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:94:300)
at kt.ASb (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8644:493)
at kt.v7c (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8642:264)
at kt.Rka (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8639:197)
at Ea.Rka (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:698:177)
at Ea.mAc (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:699:137)
at Object.W3a (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5357:79)
at gxc (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5358:85)

I do not expect that you fix these errors as I know that ARM is not sufficiently supported. But maybe you can give me an indication on how to debug this, the compressed *.js files are not really readable.

Best regards,
pi-xel

@ShockwaveNN
Copy link
Contributor

ShockwaveNN commented Aug 10, 2017

Hi there. Personally I've never tried to compile our project on ARM.
Does x2t working well? I think core (x2t is part of this project) will have most troubles for compiling on ARM
Is it working well?
What is output of /var/www/onlyoffice/documentserver/server/FileConverter/bin/x2t?
It should show some help.
And if it work correctly - try to convert some random doc file to docx using it

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

Hey,

Thanks for your response. Output of x2t:

-------------------------------------------------------------------------------
OOX/binary file converter. Version: 2.4.470.0
-------------------------------------------------------------------------------

USAGE: x2t "path_to_params_xml"
or
USAGE: x2t "path_to_file_1" "path_to_file_2" ["path_to_font_selection"]
WHERE:
"path_to_file_1" is a path to file to be converted
"path_to_file_2" is a path to the corresponding output file
"path_to_font_selection" is a path to 'font_selection.bin' location

Tried to convert a file from doc to docx, i.e. ./x2t /tmp/test.doc /tmp/test.docx. This worked flawlessly, x2t did not produce any output and the generated docx can be opened and is valid.

@ShockwaveNN
Copy link
Contributor

@pi-xel Wow. This is a great news.
Did you compile core using cross-compiling or it can be achieved on that ODroid XU4 device?

@ShockwaveNN
Copy link
Contributor

@pi-xel also - is there any error in browser whyle you trying to open it? And did you try to open empty document or with some content

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

I compiled everything on XU4, except for CEF which I cross-compiled on my PC. Also ICU I had to compile manually, as the provided download link was only x86.

When I open a docx in the browser, no matter whether it's empty or not, the file loads to 100% and then gets stuck in that screen. And all that is logged is the error message I've sent in my first post.

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

PS: Also had to switch from GCC 4.9 to GCC 6 coz I got some compiler internal errors when compiling core and had to do some manual tweaking on obtaining and compiling certain node modules which I don't remember exactly to get sdkjs compiled (which also took an awful long time on XU4, each module (word, sheet, cell) took about 6-8 hours).

@ShockwaveNN
Copy link
Contributor

ShockwaveNN commented Aug 10, 2017

no matter whether it's empty or not, the file loads to 100% and then gets stuck in that screen.

Сan you attach data from WebSocket?
socketdata

at Sa.yV (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203)

Your error in logs contains dates. Did you add them manually? Because if I remember correctly - path to sdk.js on manually compiled DocumentServer should be like this https://example.com/sdkjs/word/sdk-all.js
/etc/nginx/sites-available/onlyoffice-documentserver file have not dates in our instruction
http://helpcenter.onlyoffice.com/server/linux/document/compile-source-code.aspx

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

I wanted the server to run using SSL and did not manage to derive a working configuration from the one given in the source code instructions. Before trying for too long, I simply copied the configuration from the respective *.deb package.

Which websocket data do you want?

@ShockwaveNN
Copy link
Contributor

@pi-xel There is two websockets, one for spell check - we don't need it, other for docservice, data should look like on my screenshot - we need that data

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

Here we go:
screenshot

@ShockwaveNN
Copy link
Contributor

@pi-xel Sorry, but we need whole data, not only screenshot. Could you copy paste each line to text file, replace your secret data and attach it here?

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

a["{\"type\":\"license\",\"license\":{\"type\":7,\"light\":false,\"trial\":false,\"rights\":1,\"buildVersion\":\"0.0.0\",\"buildNumber\":0,\"branding\":false}}"]

["{\"type\":\"auth\",\"docid\":\"6027281502367408\",\"documentCallbackUrl\":\"https://nextcloud.example.com/index.php/apps/onlyoffice/track?doc=dm9XOVdld0tjVVZyWjFKcnB3cHYzQ21nVjV3dmFQS3NBZUd3QVgyZS9zRT0/eyJmaWxlSWQiOjYwMjcyOCwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJ0cmFjayJ9\",\"token\":\"fghhfgsjdgfjs\",\"user\":{\"id\":\"xxxx\",\"username\":\"Xxxx\",\"firstname\":null,\"lastname\":null,\"indexUser\":-1},\"editorType\":0,\"lastOtherSaveTime\":-1,\"block\":[],\"sessionId\":null,\"sessionTimeConnect\":null,\"sessionTimeIdle\":0,\"documentFormatSave\":0,\"view\":false,\"isCloseCoAuthoring\":false,\"openCmd\":{\"c\":\"open\",\"id\":\"6027281502367408\",\"userid\":\"xxxx\",\"format\":\"docx\",\"url\":\"https://nextcloud.example.com/index.php/apps/onlyoffice/download?doc=MTRYbS9RUjNwa3RWeU1ucWJjYkZiQ3dVN2RjTUl4OU5YVDM3elg4TElYUT0/eyJmaWxlSWQiOjYwMjcyOCwib3duZXJJZCI6InBoaWwiLCJhY3Rpb24iOiJkb3dubG9hZCJ9\",\"title\":\"test.docx\"},\"lang\":null,\"mode\":null,\"permissions\":null}"]

a["{\"type\":\"auth\",\"result\":1,\"sessionId\":\"af676707-e22b-4ce5-afb9-c396520f0b0c\",\"sessionTimeConnect\":1502381007762,\"participants\":[{\"id\":\"xxxx3\",\"idOriginal\":\"xxxx\",\"username\":\"Xxxx\",\"indexUser\":3,\"view\":false,\"connectionId\":\"af676707-e22b-4ce5-afb9-c396520f0b0c\",\"isCloseCoAuthoring\":false}],\"locks\":{},\"changes\":[],\"changesIndex\":0,\"indexUser\":3,\"g_cAscSpellCheckUrl\":\"/spellchecker\",\"buildVersion\":\"0.0.0\",\"buildNumber\":0}"]

a["{\"type\":\"documentOpen\",\"data\":{\"type\":\"open\",\"status\":\"ok\",\"data\":{\"Editor.bin\":\"https://onlyoffice.example.com/cache/files/6027281502367408/Editor.bin/Editor.bin?md5=WEF6wITV1U5kJWkGH36t3g==&expires=1504973010&disposition=attachment&ooname=output.bin\"}}}"]

["{\"type\":\"changesError\",\"stack\":\"Error: Uncaught TypeError: Cannot read property 'kb' of null Script: https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js Line: 7205:203 userAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 platform: Linux x86_64 StackTrace: TypeError: Cannot read property 'kb' of null\\n at Sa.yV (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203)\\n at wf (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:94:300)\\n at kt.ASb (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8644:493)\\n at kt.v7c (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8642:264)\\n at kt.Rka (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8639:197)\\n at Ea.Rka (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:698:177)\\n at Ea.mAc (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:699:137)\\n at Object.W3a (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5357:79)\\n at gxc (https://onlyoffice.example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5358:85)\"}"]

@pi-xel
Copy link
Author

pi-xel commented Aug 10, 2017

Does that tell you something?

@ShockwaveNN
Copy link
Contributor

ShockwaveNN commented Aug 11, 2017

@pi-xel

"title":"test.docx"

Could you attach this file?

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

@ShockwaveNN This is a newly created file from within Nextcloud, but the result is the same for already existent (externally created) files. Have attached the file.

test.docx

@ShockwaveNN
Copy link
Contributor

@pi-xel could you attach sdkjs/word/sdk-all.js and sdkjs/word/sdk-all-min.js

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Attached.

sdk-all.zip

@ShockwaveNN
Copy link
Contributor

ShockwaveNN commented Aug 11, 2017

@pi-xel How did you compiled sdk js files?
Like in instruction cd ../sdkjs && make or did you use some hack?

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Followed instructions there, no hack if I remember correctly

@ShockwaveNN
Copy link
Contributor

@pi-xel In attached sdk-all you have header Version: 4.4.2 (build:20). This is strange, it should be Version: 0.0.0 (build:0)

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Oh yeah, I have recompiled these yesterday, setting version and build in Makefile because Nextcloud client was complaining about too low version number and I wanted to exclude that some inappropriate legacy actions were performed when using v0.0.0.

But the outcome was the same for both versions, i.e. the very same error message appears.

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Have run a diff on my sdkjs folder and the sdkjs folder from git.

Only differences are the version numbers in Makefile, as well as the instruction that Grunt should compile using flag -Xms1024m instead of -Xms2048m.

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Also ran a diff on core. These are the differences (left is original, right is modified):

diff -r core/Common/3dParty/v8/build.sh ../onlyoffice/core/Common/3dParty/v8/build.sh
36c36
< CFLAGS="-fPIC" CXXFLAGS="-fPIC" make native GYPFLAGS=-Dclang=0
---
> CFLAGS="-fPIC -Wno-unused-function" CXXFLAGS="-fPIC -Wno-unused-function" make native GYPFLAGS=-Dclang=0 -j 4
55c55
< CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native
---
> CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native -j 4
diff -r core/Common/3dParty/v8/build.sh ../onlyoffice/core/Common/3dParty/v8/build.sh
36c36
< CFLAGS="-fPIC" CXXFLAGS="-fPIC" make native GYPFLAGS=-Dclang=0
---
> CFLAGS="-fPIC -Wno-unused-function" CXXFLAGS="-fPIC -Wno-unused-function" make native GYPFLAGS=-Dclang=0 -j 4
55c55
< CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native
---
> CFLAGS="-fPIC" CXXFLAGS="-fPIC -stdlib=libc++" LDFLAGS="-stdlib=libc++"  make native -j 4
diff -r core/DesktopEditor/cximage/jasper/jpc/jpc_dec.c ../onlyoffice/core/DesktopEditor/cximage/jasper/jpc/jpc_dec.c
2157c2157
< 	if (tab->maxents < maxents) {
---
> 	if ((int)tab->maxents < maxents) {
diff -r core/DesktopEditor/doctrenderer/docbuilder_p.h ../onlyoffice/core/DesktopEditor/doctrenderer/docbuilder_p.h
198c198,199
<             return false;
---
>             //return false;
> 	    return "";
212c213,214
<                 return false;
---
>                 //return false;
> 		return "";
diff -r core/Makefile ../onlyoffice/core/Makefile
22c22,23
< 		MAKE := make -j $(shell grep -c ^processor /proc/cpuinfo)
---
> #		MAKE := make -j $(shell grep -c ^processor /proc/cpuinfo)
> 		MAKE := make

Besides, there are quite some diffs in core/Common/3dParty/curl/include/curl/curlbuild.h and core/Common/3dParty/curl/lib/curl_config.h because I ran ./configure manually there. Dunno if this could be an issue.

As said, pptx and xlsx work flawlessly, only docx is problematic.

Edit: Diff on server and web-apps shows both folders being identical.

@ShockwaveNN
Copy link
Contributor

@pi-xel We think there is something wrong with google-closure compiler process or something like this.
I want to simplify our problem and we should try to compile sdk-all on your ARM machine again.
Could you do a clean setup of sdkjs

git clone https://github.com/ONLYOFFICE/sdkjs.git
cd sdkjs
npm install -g grunt-cli
npm install --prefix build
grunt --level=ADVANCED --base build --gruntfile build/Gruntfile.js

And attach word/sdk-all.js and word/sdk-all-min.js
It should took a lot time I think, but we currrenlty have no arm machine to try ourselfs

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Thanks again for your help.

Do I need to recompile whole sdkjs or is the word part sufficient? This is 8 vs 24 hours compile time...

For the rest, now that I've shown that OnlyOffice indeed works on Arm, maybe you could consider supporting it officially.

If you don't have Arm devices to build & test, maybe you could cross-compile and/or setup a virtual machine.

If you should decide to go that route and should run into issues in the compilation, I would gladly help to get it right.

@ShockwaveNN
Copy link
Contributor

@pi-xel yeah, word part is enough
And yes, your example show us that we should took ARM into considuration

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Alright, building.

Will come back to you once it's finished.

@pi-xel
Copy link
Author

pi-xel commented Aug 11, 2017

Build finished, copied sdk-all.js and sdk-all-min.js to /var/www/onlyoffice/sdkjs/word - and it works flawlessly.

As requested, find the newly generated files attached.

Now everything seems to be up & running, thanks a lot for your help!

sdk-all.zip

@pi-xel
Copy link
Author

pi-xel commented Aug 13, 2017

Could you maybe also check the following thread? I don't know where the issues lie, within OnlyOffice itself or within OnlyOffice integration app.

Faulty callback, no modification timestamp in NC #96

@ShockwaveNN
Copy link
Contributor

@pi-xel yeah, I show it to people who work with Owncloud

@jiriks74
Copy link

jiriks74 commented Mar 9, 2022

Update: image is built, I'm working on docker-compose. Hopefully I can post you a working version in the evening

@jiriks74
Copy link

jiriks74 commented Mar 9, 2022

DOCKER IMAGE UP AND RUNNING WITHOUT ISSUES!

I got the damn thing running in docker!

For anyone that hesitated because of the weird things you had to do with packages, this is for you! Just build the image, start the container and you're up and running! It's that easy I promise!

My repository with a step by step guide in README is here

@ShockwaveNN Would you be so kind and take a look, please? I want to know your opinion.

@unixfox
Copy link

unixfox commented Mar 9, 2022

An alternative is to just add platform: linux/amd64 after onlyoffice-documentserver: in https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/docker-compose.yml and this will do the same thing that @jiriks74 made into its image and while still using the official docker image.
You need to use QEMU 6 and docker-compose > 1.21
Basically, it uses QEMU for emulating intel x86 on ARM, this is at the cost of a huge hit in performance. So the initial issue is not solved, onlyoffice is not compatible with ARM.

@jiriks74
Copy link

jiriks74 commented Mar 9, 2022

An alternative is to just add platform: linux/amd64 after onlyoffice-documentserver: in https://github.com/ONLYOFFICE/Docker-DocumentServer/blob/master/docker-compose.yml and this will do the same thing that @jiriks74 made into its image and while still using the official docker image. You need to use QEMU 6 and docker-compose > 1.21

The problem is that it'll be slow. This will emulate all the packages in the docker container. My container is arm64 and emulates only the server itself (postgradesql, rabbitmq, nginx, ..., are arm64) and 2 libraries (libstdc++6 and libc6) are amd64, so this will run faster than the solution you proposed. It is the best temporary solution until official support (or unofficial working arm64 build) @unixfox

@unixfox
Copy link

unixfox commented Mar 9, 2022

An alternative is to just add platform: linux/amd64 after onlyoffice-documentserver: in ONLYOFFICE/Docker-DocumentServer@master/docker-compose.yml and this will do the same thing that @jiriks74 made into its image and while still using the official docker image. You need to use QEMU 6 and docker-compose > 1.21

The problem is that it'll be slow. This will emulate all the packages in the docker container. My container is arm64 and emulates only the server itself (postgradesql, rabbitmq, nginx, ..., are arm64) and 2 libraries (libstdc++6 and libc6) are amd64, so this will run faster than the solution you proposed. It is the best temporary solution until official support (or unofficial working arm64 build) @unixfox

I just explained to add the platform parameter only for the onlyoffice docker container, my solution with docker-compose also runs native postgresql and rabbitmq. Maybe not redis, but one can use an external redis server by specifying REDIS_SERVER_HOST and REDIS_SERVER_PORT. And for NGINX it's not the component that will use a lot of resources nor slow down the app.
Apart from that, the onlyoffice document server is emulated the same way as on your docker image. Same performance hit in both cases.

@ShockwaveNN
Copy link
Contributor

@jiriks74

@ShockwaveNN Would you be so kind and take a look, please? I want to know your opinion.

I'm sorry I don't think I have any ARM device in my disposal to test in and frankly I do not have enough time to check it
Sorry, but I think you're on your own until we release official arm image

@jiriks74
Copy link

@jiriks74

@ShockwaveNN Would you be so kind and take a look, please? I want to know your opinion.

I'm sorry I don't think I have any ARM device in my disposal to test in and frankly I do not have enough time to check it
Sorry, but I think you're on your own until we release official arm image

@ShockwaveNN

Alright, I understand you have work to do and I don't want to be that person who demands developers to do what I want. I'll try what I can to help the community and once I finish my studies I hope I can support you with a license. GL with everything you're working on.

Thx for your amazing help so far

@ericdesa
Copy link

Just to confirm that the Dockerfile provided by @jiriks74 is working :-)
Thank you for that ! (the platform: linux/amd64 param didn't work with my setup)

@jiriks74
Copy link

jiriks74 commented Mar 10, 2022

@ericdesa

Just to confirm that the Dockerfile provided by @jiriks74 is working :-) Thank you for that ! (the platform: linux/amd64 param didn't work with my setup)

You're welcome! Glad I could help!
It didn't for me either for whatever reason and I don't want to mess around with docker that much. This is literally just having docker, docker-compose and git to dowload the files. Then it's only 2 commands away from working install.

If you'd be interested I can provide a script that'll increase the max filesizes allowed (I have over 100MB presentations from school that I need to open and it wouldn't let me because of the limitations set by default). I want to make the options available in docker-compose.yml so that the limits could be setup on container creation if the user wanted to. I may submit a pull request for that specifically.

The setup of a secret key should be in the README in my repo if you're interested in that.

PS: Why are the file limits and secret keys so hard to setup? I couldn't find anything about it in documentation. I solved the filesizes by randomly going through configuration files - I got a headstart with script that @ShockwaveNN sent me - but I couldn't solve the secret key thing until I found an unclosed issue by pure luck that had this mentioned as on of the possible solutions but it wasn't mentioned that it really solves it. I've been told that the Secret key thing was reported to proper repo and will be taken care of, so this part will be hopefully ok. I'll try to make the filesizes script more accessible so people can find it and change their file limits, because this is really, really unfriendly and took me an awful amount of time to solve.

@cheadrian
Copy link

Manage to make @jiriks74 docker environment to work, thank you. Here's a detailed description.

The @unixfox solution didn't work, as it lead to nginx: [error] failed to initialize Lua VM in /etc/nginx/nginx.conf:63. Tested with both compose and multiple versions of prebuild image.

An alternative is to just add platform: linux/amd64 after onlyoffice-documentserver: in ...

@jiriks74
Copy link

jiriks74 commented Apr 2, 2022

Manage to make @jiriks74 docker environment to work, thank you. Here's a detailed description.

The @unixfox solution didn't work, as it lead to nginx: [error] failed to initialize Lua VM in /etc/nginx/nginx.conf:63. Tested with both compose and multiple versions of prebuild image.

An alternative is to just add platform: linux/amd64 after onlyoffice-documentserver: in ...

@cheadrian
You don't have to install anything apart from docker and docker compose. Binfmt, qemu, etc is installed in the docker image. You literally just have to have docker and qemu, everything else should work by itself.

You should be able to make everything work following the steps in the readme.

Thanks for the guide, it's awesome. I'm trying to get a guide on some RPI interested sites, which are pretty popular.

Thanks again, I'm glad it worked for you.

@jiriks74
Copy link

jiriks74 commented Apr 4, 2022

@cheadrian
Sorry you're right, you need to have these packages installed. For whatever reason it won't work in the container if it's not installed on the host. I have updated my README after someone had issues building it that I had as well after removing the mentioned packages (I forgot to remove them after having it installed as deb package).

Thanks for figuring that out and making your awesome tutorial.

@jiriks74
Copy link

jiriks74 commented Apr 4, 2022

Docker image available on Docker Hub

So I finally uploaded the image to dockerhub. I had time to only setup a basic README, so sorry if it's not the best. If you'd like to add or change something in it, please make an issue on my github repo.

Here's the link: https://hub.docker.com/r/jiriks74/onlyoffice-documentserver-arm64

Hope this helps you,
happy editing!

@MikaelUrankar
Copy link

Why not building a native version? This is what I've done on FreeBSD.

@jiriks74
Copy link

jiriks74 commented Apr 7, 2022

Why not building a native version? This is what I've done on FreeBSD.

I have not been able to compile arm64 build yet

@ShockwaveNN ShockwaveNN added the fixed Issues that fixed and released label May 12, 2022
@ShockwaveNN
Copy link
Contributor

Hi everyone, DocumentServer is available for arm64 in deb and rpm package

I'll close this issue, but feel free to comment or create new issues if you got any troubles with it
It's first stable version we've released and first our product for arm-based Linux so please be carefull

@jiriks74
Copy link

@ShockwaveNN

Hi everyone, DocumentServer is available for arm64 in deb and rpm package

I'll close this issue, but feel free to comment or create new issues if you got any troubles with it It's first stable version we've released and first our product for arm-based Linux so please be carefull

Nice!
I'm already working on rebuilding my docker config to use the native package. I'll provide prebuilt image on DockerHub for docker-compose so people don't have to make the image themselves if they want to run the server in docker.

@jiriks74
Copy link

So, I've been able to make everything run in docker.

THE PERFORMANCE IS AWESOME - like I've regenerated my themes when I upgraded, as I have to, and it took ONLY 21 MINUTE! It took OVER 2 HOURS when I had part of the server emulated!

I've moved my GitHub repository and DockerHub repository to different names (and therefore links) as I've been able to modify the dockerfile in a way that allows me to build for both platforms! Everything is available at said repositories. I'll be maintaing both versions as long as I'll use the server (probably my whole life LOL), so you should be ok using it.

THANKS it's running so well!
@ShockwaveNN

@ShockwaveNN
Copy link
Contributor

@jiriks74 Glad to hear

We got some trouble with our build infrastructure, so we didn't provide official arm docker image, but I really hope we will be able to do that soon (but I can't guarantee any exact time frame)

Thank you for your work to and support of our product )

@jiriks74
Copy link

jiriks74 commented May 13, 2022

@jiriks74 Glad to hear

We got some trouble with our build infrastructure, so we didn't provide official arm docker image, but I really hope we will be able to do that soon (but I can't guarantee any exact time frame)

Thank you for your work to and support of our product )

@ShockwaveNN The problem with your Dockerfile is using Ubuntu (where for whatever reason docker won't pull the arm64 version) so I changed it to Debian.

As there were some repositories missing (ttf-mscorefonts-installer was in those) I added those to apt. mysql-client doesn't exist in debian repos (at least not in these) so I used mariadb-client instead.

Then there's something with posgresql, database version string or something like that - that has to be changed from 12 to 13 as there's newer version of postgresql.

The last thing is changing the part where the deb package is downloaded. I changed it so that it downloads the package for the architecture of the image automatically - so to build the image I build one on my raspberry pi and the other one on my pc.

Take a look at my Dockerfile it's not really that different.

EDIT: I'd submit a pull request, but I made my own README, which I think is simpler if you don't want to do complex stuff.

@ShockwaveNN
Copy link
Contributor

The problem with your Dockerfile is using Ubuntu (where for whatever reason docker won't pull the arm64 version) so I changed it to Debian.

This is interesting, but seems not related to our product. I think we'll use Ubuntu as base anyway and I leave this to our devops

Thanks anyway, I think since it's new product version for us we currently leave everything as it is and gather some feedback and after that decide that to do next, so no need in PR's right now )

@jiriks74
Copy link

Sorry, but another change in my docker image. But it's a good one I swear!

I managed to make multiarch images! I have a successful build now and I'll be waiting for it to upload to the DockerHub repository. Should now be without any further configuration to get the correct architecture of the image.

@Botspot
Copy link

Botspot commented May 21, 2022

Next goal - OnlyOffice Desktop for ARM?
If this happens, I would eagerly add it to the Pi-Apps store - alongside LibreOffice and WPS Office.

@jsanfe
Copy link

jsanfe commented May 21, 2022

Next goal could be 32 bits ARM...

@jiriks74
Copy link

@Botspot You'll probably should be able to compile it as the DesktopEditors is just modified DocumentServer - they use the same core so there's less maintenance. I'll try it in a week or so.

@bill88t
Copy link

bill88t commented May 23, 2022

I already had a go on this, please refer to this issue
ONLYOFFICE/build_tools#470

@yiwen9488
Copy link

构建完成,将 sdk-all.js 和 sdk-all-min.js 复制到 /var/www/onlyoffice/sdkjs/word - 它可以完美运行。

根据需要,找到新生成的附件。

现在一切似已启动并运行,非常感谢您的帮助!

sdk-all.zip

大家好,

我已经成功编译了 OnlyOffice DocumentServer for ARM(最新的 GIT 克隆,在运行 Debian Jessie 的 ODroid XU4 上)并将其与 Nextcloud 集成。

我可以完美地编辑电子表格和演示文稿,但是,当我尝试打开 Word 文档时,加载屏幕卡在 100% 并且我记录如下消息:

2017-08-10 01:38:15.688] [错误] nodeJS - changesError:docId = 3344951502280414 错误:未捕获的类型错误:无法读取 null 脚本的属性“kb”:https: //example.com/2017-07-21- 15-20/sdkjs/word/sdk-all.js行:7205:203 userAgent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36 平台:Linux x86_64 StackTrace:TypeError:无法 在 Sa.yV(https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:7205:203) 处读取 null 的属性“kb” wf ( https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:94:300 ) 在 kt.ASb ( https://example.com/2017-07 -21-15-20/sdkjs/word/sdk-all.js:8644:493 ) 在 kt.v7c (https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:8642:264) 在 kt.Rka(https://example.com/2017-07-21 -15-20/sdkjs/word/sdk-all.js:8639:197 ) 在 Ea.Rka ( https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all- min.js:698:177 ) 在 Ea.mAc ( https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all-min.js:699:137 ) 在对象。 W3a ( https://example.com/2017-07-21-15-20/sdkjs/word/sdk-all.js:5357:79 ) 在 gxc ( https://example.com/2017-07-21 -15-20/sdkjs/word/sdk-all.js:5358:85

我不希望您修复这些错误,因为我知道 ARM 没有得到足够的支持。但也许你可以给我一个关于如何调试它的指示,压缩的 *.js 文件并不是真正可读的。

最好的问候, pi-xel

您好,

构建完成,将 sdk-all.js 和 sdk-all-min.js 复制到 /var/www/onlyoffice/sdkjs/word - 它可以完美运行。

根据要求,找到新生成的附加文件。

现在一切似乎都已启动并运行,非常感谢您的帮助!

sdk-all.zip

Hello, could you share the tutorial of compiling documentserver arm64? Looking forward to your reply!

Build finished, copied sdk-all.js and sdk-all-min.js to /var/www/onlyoffice/sdkjs/word - and it works flawlessly.

As requested, find the newly generated files attached.

Now everything seems to be up & running, thanks a lot for your help!

sdk-all.zip

Hello, could you share the tutorial of compiling documentserver arm64? Looking forward to your reply!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Issues that request new features to be added to OnlyOffice fixed Issues that fixed and released
Projects
None yet
Development

No branches or pull requests