Advice on server migration

I am currently running oC 10.8.0 on Ubuntu 20.04. I am running it stright on linux, no docker/VM. I am planimg going to Ubuntu 22.04 with oC running in docker.

I think this time it is best to run it in docker as I now have some experience of it. Does this seem like a good idea. The think I found not ideal about the way I am runing it is that it seemed I needed to do manual upgrades, rather than doing it through apt. This may of changed but it feels like docker gets around this issue? Its also generaly good proactice.

The official docker docs seem to be a bit out of date - Docker. The seem fairly short, maybe lacking detail. Also it does not have details for apachie/nginx configuration or reddis and I want to also use Lets Encript certs. Is there a better guide I should use?

The docker compose file shown is

# ownCloud with MariaDB/MySQL
#
# Access via "http://localhost:8080" (or "http://$(docker-machine ip):8080" if using docker-machine)
#
# During initial ownCloud setup, select "Storage & database" --> "Configure the database" --> "MySQL/MariaDB"
# Database user: root
# Database password: example
# Database name: pick any name
# Database host: replace "localhost" with "mysql"

version: '3.1'

services:

  owncloud:
    image: owncloud
    restart: always
    ports:
      - 8080:80

  mysql:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

Ive always been a bit unclear as to if its a good idea to specify version numbers for the images. The oficial docs do not. I am a bit unclear as exacly what hapens when there is a bnew version of an image. Do all the needed updates get dome automaticaly (I guess when the container is restarted). Or is it best to specify versions so the updates can be better managed.

Actualy just had a look at GitHub - docker-library/owncloud: Docker Official Image packaging for ownCloud and it has not been updated for 5 years. I think I need to find a 10.8 image someware (sugestions) and when I have that working migrate to a later version?

The fina lquestion is how to move everything. I dave the owncloud/data in its own partision which I have rsynced onto the new server. So to migrate I am planinig on

  1. Setup oC 10.8 using docker on new server. need owncloud, MariaDB (and Lets Encript, reddis)
  2. Shutdown existing server
  3. Do a SQL backup
  4. run rsync one last time to make sure data firectory is up to date
  5. Import SQL backup into new server
  6. Config oC config.php
  7. Start oC

Have I missed anything?

Its only being used by around 10 people so is reddis nessesery, think I may of set it up for a reason years ago but cant remember why?

Then when this is all working I can work on the oC 10.8 to 10.12.1 or 10.12.2 (cant easily find a good release scedule with dates but seem 10.12.2 is fairly new so maybe I should go for 10.12.1). Something like the Ububtu one (Releases - Ubuntu Wiki) would be splendid.

UPDATE:

This looks very promosing

What did people think?

Looks like there is no docker image for 10.8, the below ones seem to exist at Docker

Docker Tags and respective Dockerfile links

  • latest available as owncloud/server:latest
  • 10.12.2 available as owncloud/server:10.12.2, owncloud/server:10.12, owncloud/server:10
  • 10.11.0 available as owncloud/server:10.11.0, owncloud/server:10.11

Will I be able to go from 10.8 → 10.11.2 or 10.12.2 during the migration or do I need to upgrade my 10.8 server first?

There are some depreciated images at Docker

Supported tags and respective Dockerfile links

Not sure if this helps?

Using containers requires manual updates as well. Even if you use the latest tag (what I would never recommend for production systems independent of ownCloud), Docker will not automatically pull the latest tag again if it exists locally already. You would have to manually execute docker pull or docker compose pull from time to time to get the latest image updated or use pull_policy in your compose file.

The official ownCloud documentation is using version tags. I would recommend to always use version tags for all images and do the update manually (or by other tools). The official documentation liked above also provides a basic compose file to get started.

Correct, this one is not maintained anymore and as stated in the readme owncloud/server should be used instead.

As we don’t remove old container tags, the 10.8 image still exists but is not supported anymore and shouldn’t be used for new setups.

That should work, but increases the complexity and I would recommend:

a) Do the upgrade to 10.12 first and migrate to a container setup afterward
b) Do the container migration first using the owncloud/server:10.8 image (see above) and do the upgrade afterward

First, ensure you have a working backup for your data and database.

This step will not work for container setups by default. You would need to switch to environment variables. There is a way to use a custom config.php file to the container, but that’s not that straight forward. Please read You are accessing the server from an untrusted domain - #10 by rkaussow and the rest of this thread carefully.

Please don’t use this compose file. Most of the used images are custom images from random people from the internet, and you should not blindly trust them. Whenever possible, use the official images instead.

We don’t have a good example on how to use Let’s Encrypt in a container stack. I would recommend looking into Traefik or Caddy as both have Lets Encrypt support already included.

You don’t necessarily need Redis, but the resource requirements are quite low, and I would recommend keeping it.

3 Likes

maybe these old topics of mine are help full for you:

back then i switched from a docker-setup to a manual-installation (don’t ask why… i do not remember… :see_no_evil: )

both have some infos on what to look for during moving / switching setups/servers…

and pleas let us know how it worked out!

2 Likes

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.