We want to enable users to fully control their own data – this is the ongoing mission of ownCloud. Of course, we also want those users to have the best possible user experience, regardless of their chosen platform.
Unfortunately, for a variety of reasons, our Microsoft Windows Server support has always been less than ideal. After much deliberation with our team, an analysis of the pros and cons of this move – we have decided to stop support for Windows as an ownCloud application server.
Platform Support in ownCloud
The ownCloud community remains focused on enabling users to fully control their data, and to bringing our technology to as many people as possible. This has been the context for our technical decisions in ownCloud.
Our technology platform (PHP), default setup with SQLite, the focus on user experience and a lot of other internal design decisions – all that comes from that. While most developers use Linux as server platform, we work on supporting other platforms for the ownCloud server as well.
ownCloud can run on small embedded systems like the RaspberryPi as well as server clusters as described in this blog post.
Unfortunately, Windows has proven to be a less than ideal environment for a powerful PHP web app like ownCloud. We tried to work around some shortcomings like file system limitations by implementing an abstraction purely for Windows.
However, this impacted the performance and stability and caused extra work for the other platforms. Together with the quality problems of PHP on Windows and restrictions like 32bit, the Windows platform just doesn’t support the experience that ownCloud wants to provide to the users.
As a result, ownCloud 8 released with a number of known, serious bugs, and our ability to fix these bugs is severely limited. In the end, we do not want to promise support for something where we cannot hope to provide the best support possible.
Windows Server
The Windows Server platform has caused a lot of headaches and has required many work-arounds. For one, there is only support for 32bit PHP on Windows Server, so it is not able to reliably deal with files larger than 2 Gigabyte – a pretty fundamental limitation.
On top of that, the Windows platform suffers from file name encoding problems that can not be dealt with properly, causing file syncing problems especially with the client and occasional file operation fails, broken user avatars and even issues with the handling of encryption keys – all things that have the potential to lose user data.
We worked with Microsoft engineers on these and other issues. Unfortunately, Microsoft has scaled back their investment in PHP on Windows, slowing down development of fixes for various branches of PHP.
Most of the improvements needed are only expected to be released with PHP 7 without being back ported into minor updates to earlier releases. It takes time for new major PHP releases to spread widely.
As a result, ownCloud won’t be able to build on these improvements for another 2 or 3 years at least. Unfortunately, during this time, our users would encounter these limitations on a regular basis, and there would be little we could do to help.
Features also suffer on the Windows platform. There is no smbclient and while there is native support for accessing Windows Share, PHP on Windows does not work very well with it so ownCloud can not offer support for Windows file shares. And due to the lack of some low level command line tools, only a subset of the thumbnails ownCloud can create will be generated under Windows.
Last but not least, ownCloud has experienced reliability and performance problems with MSSQL, causing extra testing and bug fixing efforts, as well as leading to extra code that has to be maintained and updated. And as mentioned – the contributors needed to do this extra testing and maintenance have not stepped forward.
All of this contributed to the decision to no longer support Microsoft Windows Server as a platform for ownCloud Server 8.1, and to instead apply those resources to providing the best file sync and share experience possible – and to enabling users to fully control their data.
What then?
Of course, some people do depend on Windows as a server platform and indeed, for many other tasks it works fine. To make it as easy as possible to have a stable and performing ownCloud experience on Windows Server going forward, ownCloud is offering a set of virtual machine images for cloud or metal deployment on the download page.
Running ownCloud in a virtual machine on your Windows server is fully supported. For example, the options offered by Bitnami include images you can directly deploy to GCP, AWS and Azure, an Ubuntu 14.04 based virtual machine you can run on your own system, and a Docker image which is being developed.
SUSE Studio offers a wide range of virtual images with ownCloud as well and you can find many more options in the virtual machine tab on our install page.
Moreover, ownCloud 8.0 still has the ability to run on Windows Server and while so far nobody stepped up to fix the known problems with it, users already depending on ownCloud 8 on Windows Server will be happy to know that ownCloud 8.0 is planned to receive security updates until Q4 2016.
Future
We want to emphasize that we do not drop support for Windows Server out of dislike–rather, we must make a strategic decision based on priorities. ownCloud Server does not work reliably on the Windows platform, and we have been unable to find folks to assist with these problems.
We urge those of you impacted by this change to consider your options. Aside from migration, if enough people step up to fix the bugs related to Windows Server support in ownCloud 8 and commit to supporting ownCloud on Windows, there is no reason not to bring a future release back to Windows Server.
UPDATE with ownCloud 8.2
This ownCloud release introduces a solution for Windows Server users. In the Appliance tab on our download page we offer a fully pre-configured virtual machine image which you can easily run in a tool like VirtualBox.
To make setting up your ownCloud even easier, the built in ownCloud Proxy app gives you a stable url and an easy way through firewalls blocking you from accessing your ownCloud with help from PageKite.