Skip to content

2020

Notes on traefik v2, Nextcloud, etc

Now that the Raspberry Pi is set up and Docker ready to be used, Gitea is running nicely. However, without TLS and just accessible by the IP address and port. So before setting up Nextcloud, I wanted to get a reverse proxy ready that also takes care of TLS termination. I use traefik which supports/integrates with Docker. Here I document how I configured it to put all my services (this includes Pi-Hole and my router's web interface) behind the reverse proxy with TLS.

At the end, I'll briefly note how Nextcloud is set up.

Migrating Data to Nextcloud

If you need to migrate your data to Nextcloud you probably don't want to upload all your files through the web interface.

I suggest to first try the below instructions with a small amount of data (for example, one folder) to verify that it works. Since Nextcloud runs as a container in my case some of the commands are specific to that, but if you don't you can just use the main command that is executed.

As previously noted, my data was "in the cloud" (encrypted at rest) so not already on an external drive (besides my backup of course). In general, although it depends on the size of your data, I therefore suggest to copy the data on to an external drive instead of copying it over the network from your machine to your server. Unless the server is not physically accessible of course (such as a virtual server somewhere). Even then, you can use the same procedure I used.

Notes on Docker

I've never really followed the hype around Docker but to be honest also never really taken the time to look into it more. That's until my friend Harald told me that he is using it on his Raspberry Pi to run some services. What sounded appealing is that you can reproduce builds, you are not "polluting" the host system, you can keep all configs etc. in one place, and move your services somewhere else quickly. The latter is especially interesting when you want to reinstall the host system. Furthermore, you can put the build as well as configuration in version control. Of course, you are adding another layer of complexity in the mix. I thought I'd give it a try. Here are some notes pertinent to the setup with my Raspberry Pi.