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

Move from ownCloud to Nextcloud 10 #1121

Merged
merged 2 commits into from
Apr 2, 2017
Merged

Conversation

yeah
Copy link
Contributor

@yeah yeah commented Mar 26, 2017

This pull request moves MIAB from ownCloud to Nextcloud. (I know, I know. Let me explain!)

I have been following the discussions in #514 and #894 closely and I also think that MIAB will be better off moving to something more light-weight and controllable in the long term.

However, #514 has shown that we don't have consensus (yet) about a proper replacement for ownCloud in MIAB. All options have pros and cons and migration seems to be the biggest hurdle at the moment. Since a move like this has to be planned carefully it's certainly not something that's going to happen short-term. However, the longer we keep (outdated versions of) ownCloud running on MIAB, the more we will expose ourselves to the associated attack vectors.

I think that an interim move to Nextcloud would be a wise decision for the time being.

Looking at the development of the two [ownC|Nextc]loud projects since the fork, Nextcloud seems to be the more active and open/libre contender. It's been initiated by the project's original founder Frank Karlitschek and it's supported by many of the former contributors. To me it seems that Nextcloud represents a direct continuation of the ownCloud project while ownCloud itself is merely the former "business partners" trying to keep an abandoned code base up and running. Last but not least, the people at Nextcloud seem to take security more seriously.

There's a podcast interview about the fork with Frank for those who understand German.

This PR is designed to be very small and simple, so that it can be reviewed and hopefully merged without much friction. It mainly re-uses the upgrade/migration logic which @yodax built in #894 and adds an internal flavor argument that changes the download URLs for wget.

It follows the migration path recommended by Nextcloud and will move from ownCloud 9.1.x (status quo in stable MIAB) to Nextcloud 10.0.4. All previous migration steps up to 9.1.x are still carried out, so the upgrade should be just as safe as moving from any older MIAB release to the current one (before this PR) + the move to Nextcloud itself which is considered safe by the Nextcloud community.

I have been maintaining a few ownCloud installations outside of MIAB and I have migrated them all successfully to Nextcloud. The Nextcloud team did some solid work there, so we shouldn't expect too many issues with this last step of the migration chain.

I was going to upgrade all the way to Nextcloud 11. Unfortunately that requires at least PHP 5.6 while we're still at PHP 5.5 (see #827), so Nextcloud 10 it is for now. That's fine though as 10.x still seems to be getting updates even though Nextcloud has not made any EOL promises as of yet.

This PR was manually tested with direct upgrades from:

  • v0.19b (ownCloud 8.2.7)
  • v0.21 (ownCloud 9.1.1)
  • v0.21c (ownCloud 9.1.2)
  • a fresh Ubuntu 14.04 box

I've also tested any migrated boxes using the tests/fail2ban.pyscript as @yodax pointed out in #1111 and fail2ban has been configured to read from the new nextcloud.log.

The PR does not yet rename any of the internal files and folders, neither within the MIAB code nor on the target boxes. Everything is still called owncloud... internally. This was intentional to make this PR as small and self-contained as possible. I'd be happy to do house-keeping in subsequent commits.

Any feedback would be greatly appreciated. Thanks!

@yodax
Copy link
Contributor

yodax commented Mar 26, 2017

I've tested the PR on a test box. The deployment works without any issues. I tested the rollback and that also works (mainly because the folder structure hasn't changed). Initial feedback on NextCloud is that it seems snappier in its responses. I haven't confirmed fail2ban yet.

I agree with the reasoning by @yeah and would like to move to NextCloud. (Even if it's only going to be an interim solution. However I do really like the file hosting option of MIAB)

There are some other pressing issues that need some attention mainly the TLS ones. I have been quite limited in my time lately but I will try and give those some attention as well.

@yeah
Copy link
Contributor Author

yeah commented Mar 26, 2017

Fail2ban may actually become obsolete now for Nextcloud since it comes with its own brute force protection. So if we wanted to simplify MIAB a bit, we could just drop ownCloud/Nextcloud from the jail config entirely (and also remove the owncloud user parameter from the test script again).

@JoshData
Copy link
Member

There's no issue if we go to 9.1.4 first and then Nextcloud after, right?

@yeah
Copy link
Contributor Author

yeah commented Mar 26, 2017

Nope. It's actually supposed to work in this order.

@yeah
Copy link
Contributor Author

yeah commented Mar 26, 2017

But the longer we wait the likelier it becomes that we end up in a place where an upgrade is no longer supported ;-)

@yodax
Copy link
Contributor

yodax commented Mar 27, 2017

I've added a PR to this branch to merge with master. I retested and it still works. For people using the ownCloud client, the macOS version still works.

@yeah
Copy link
Contributor Author

yeah commented Mar 27, 2017

I've added a PR to this branch to merge with master.

Thanks, I've just rebased instead. It's merge-able again now.

@JoshData
Copy link
Member

TY. We'll do this after the next release.

@PortableTech
Copy link
Contributor

Bravo @yeah and others on this. It looks to be an excellent move for the moment regardless of the long term plans. I also want to add support to the comment @yodax made regarding the file sharing, and even expand that I love the full integration in the two places I use MiaB. It provides a slim and easily configurable package that suits many small business and organizational needs. Yes, we could certainly move to a split setup, but it just would not be as clean in all (shared logons) and would require additional investment on a second system to keep the MiaB concept intact and not tamper with it.

That all being said, as always, big thanks to @JoshData for continuing this project despite all the time commitments he has in his life. Everyone's efforts are greatly appreciated.

e.g. code comments and user-facing prompts/outputs which can be safely changed without risking to break anything
@JoshData
Copy link
Member

JoshData commented Apr 2, 2017

Great work! Merging in a moment.

@JoshData JoshData merged commit 48e0f39 into mail-in-a-box:master Apr 2, 2017
@yeah
Copy link
Contributor Author

yeah commented Apr 2, 2017

Awesome, thanks!

@yodax
Copy link
Contributor

yodax commented Apr 2, 2017

Thanks for the work! I'll deploy it to a few boxes.

@xetorixik
Copy link
Contributor

xetorixik commented Apr 3, 2017

Is it a wise and correct decision to implement Nextcloud 10 given the fact that Nextcloud 11 is released for over a while?

The Nextcloud Marketing and Communications Manager writes the following about their product releases:

We don't have a public plan yet but right now the plan is to offer support for 1 release plus some months to migrate.

The only open question is how long the support will be for free.
There won't be an LTS release, 99% sure, but maybe we will support versions for longer than 6 months for free.

I know that Nextcloud 11 and beyond needs PHP 5.6 + as system requirement but this is a serious point for discussion. If you ask me.

Let me be clear.
I am very happy with mail in a box and am very grateful to your work as team and @JoshData .

@yeah
Copy link
Contributor Author

yeah commented Apr 3, 2017

I wanted to look into upgrading PHP to 5.6 as well. But Nextcloud 10 should be fine, too.

@xetorixik
Copy link
Contributor

Nextcloud 10 should be fine for the near future but will undoubtedly hits EOL very soon as written by Nexcloud's manager above. Maybe version 10 is already EOL before the new Mail in a box is released.

There are in my view a number of options to facilitate Nextcloud 11, the easy way:

  • Upgrade PHP system wide
  • MultiPHP for example via debsuryorg (i.e. default PHP system wide, PHP debsuryorg for Nextcloud 11 specific)

Since PHP 5.6 upstream is already in the final stage. Does it make sense to spend time in version 5.6?
As there is no Ubuntu PHP 5.6 with backport support.

Quote from php.net:

#PHP 5.6 is now in security fix only mode, which runs until the end of 2018. Plan your upgrades to PHP 7!

@yeah
Copy link
Contributor Author

yeah commented Apr 4, 2017

Thanks for your feedback, but as they say: talk is cheap :-)

Feel free to prepare a PR. Also see #827 – zpush does not seem to be ready for PHP 7, so systemwide does not seem to be an option.

@xetorixik
Copy link
Contributor

xetorixik commented Apr 4, 2017

@yeah talk is cheap? Maybe in Germany. :)

Any feedback would be greatly appreciated. Thanks!

You ask for feedback, you will get feedback.

@nickvergessen
Copy link
Contributor

Nextcloud employee here
Nextcloud 10 is not EOL yet: https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule
An EOL might be announced in the coming weeks.

@yeah
Copy link
Contributor Author

yeah commented Apr 4, 2017

@xetorixik as I said, a PR is welcome. I don't normally use PHP, and I haven't used MultiPHP yet. But if you have, feel free to show us how it can be done :)

@JoshData
Copy link
Member

JoshData commented Apr 4, 2017

There's no need to debate this. When Nextcloud 10's EOL is announced, we will evaluate the options at that time. By then we might have dropped Nextcloud entirely (#514) or moved to a later version of Ubuntu (#758).

@mail-in-a-box mail-in-a-box locked and limited conversation to collaborators Apr 4, 2017
@yeah yeah deleted the nextcloud branch April 4, 2017 11:44
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants