0

Forum Migration

UpdateForum Migration has been completed. There are still a few bits we need to sort out (Tapatalk / reskin and other bits) but these will happen in the near future

This weekend, we will be performing a migration (update if you will) to our forums and moving them to a new platform. So please expect some downtime between Friday to Monday.

We will probably take this opportunity to do some minor maintenance on the rest of the website aswell.

2

Updates Updates Updates

Over the past couple of months, there have been a few things going on in the Linuxserver.io world which has led to a slower pace of development and a little less community interaction, and for that we can only apologise. Now we are starting to get back in full swing, we thought we should share what we’ve got planned in the next few weeks & months.

REPOSITORIES

First of all, there will be some restructuring with our fleet of dockers. Some of our dockers are becoming increasingly difficult to support, so we have decided to re-organise the repo’s.

linuxserver

Our current main docker repository which will have the fleet of dockers that the team actively supports.

linuxserver-community

This will be a new, innovative repo, that is for any docker requests from community members that we produce and are not used by any of the linuxserver.io team and will therefore be directly supported by community members themselves.

All of the linuxserver.io members are volunteers and do this in our spare time, which is finite. The idea behind this is that if you request a docker and we produce it, then YOU become responsible for helping support it, as you are better placed to do so as an active user. You will become the community liason and named as such. We’d like to see you help other members with any problems and liase with us about any problems you can’t fix or need help with via the forum, github or IRC and work with us to keep this maintained. No coding ability is required, just a willingness to “muck in” and monitor the support thread for the container. If you don’t do so, and “request and run” AND nobody else offers to take over, then eventually we’ll pull the container as it’s not fair to other users if we can’t offer support.

lsioarmhf

Our second new repo, this time it will be for all you users that want to run our dockers on any armhf platform capable of running the docker service, such as your raspberry pi’s / Odroid boxes. These dockers will be duplicates of the images we create for x86 and will also be both linuxserver and linuxserver-community varieties,

lsiodev

Our development repo and not for production use. Note, up to now, some of our “non-standard” containers have been in this repo but these will be merged into our main repo going forward and this repo will purely be for development and pre-release testing, therefore unsupported and not recommended for end users.

lsiobase

Our repo to house all our base images.

Over the next couple of weeks, you will therefore find that some Docker containers will be moved to different repo’s or possibly even removed, we don’t yet have a final list of what is being moved/removed yet but if you have any concerns, feel free to get in touch on Github or IRC.

BASEIMAGE UPDATES

Over the next couple of weeks, we will be switching our containers to a shiny new base image – Alpine.

Anything that doesn’t run on Alpine will be rebased to Xenial as we have decided to drop Phusion due to lack of updates and Alpine offers significant advantages in terms of reducing container sizes. We don’t anticipate any major migration issues with the transition from Phusion to Alpine but please please please backup your appdata first before you update our containers.

AUTO-UPDATING

After much discussion, we have decided that we are going to change our containers regarding the autoupdate feature. Autoupdates have probably been the biggest generator of support issues with our images and as such , in conjunction with the baseimage updates, we are moving towards having the majority of our images not autoupdate, a notable exception being plex media server. Aside from configuration mismatches from version to version and stability issues, the update routines are processor intensive and make containers slow to start. To mitigate this we plan to update the applications more frequently in the future with more regular image refreshes.

WEBSITE/FORUM

We are planning on doing some maintenance work in regards to the website and forum, a bit of a clean up and try to get some fresh content back into the site.

PODCAST

Currently the podcast has been put on hold, we have had amazing feedback for this and plan to start this up again soon!

COMMUNITY

As always we’re a team of volunteers, we rely both on donations and contributions from our own pockets to keep this project going. So as always if you think you can help in any way then please get in touch. Either by helping with support, development, articles for the website or donations.

LinuxServer.io Team.

0

Installing Nextcloud on Unraid

This seems to generate a lot of questions and queries so thought I’d do a quick walkthrough.

Install MariaDB

First of all you need to install MariaDB, now one of the stipulations of Nextcloud is that it requires binary logging to be enabled on the MariaDB server. I’ve already got one instance of MariaDB installed without binary logging so I’m going to install a second container to use with Nextcloud.

Add the MariaDB container as usual, you need to change three things if this is a second container.

  1. The name (I’ve called mine mariadb-nextcloud)
  2. The port (I’ve changed the host port to 3305)
  3. The appdata (I’ve put mine in /mnt/cache/.appdata/mariadb-nextcloud/

Don’t forget to set the MariaDB root password (I’ve used SECRETPASSWORD)

Add the container. That’s this bit done.

Edit custom.cnf

Next navigate to your MariaDB appdata folder and edit the file custom.cnf (mine is located at /mnt/cache/.appdata/mariadb-nextcloud/custom.cnf) If you’re using Windows then don’t use Notepad as it uses Windows line endings not Linux. Instead use Notepad++. The line you want to edit by default reads ##binlog_format=row so edit it so it now reads binlog_format=mixed Before you save it make sure the line endings are set to Unix as in the picture below.

2

Install Nextcloud Docker Container

Add Nextcloud from Community Applications, and fill in the docker template. /data should be mapped to where you want your shared files stored on your array. I’m using /mnt/user/nextcloud/

3

Then install it and give it a minute or so for the file to be inflated before trying to access the webui.

Configure Nextcloud

Open the webui and you need to fill in several items.

  1. Fill in your admin username (I’m using CHBMB
  2. Fill in your admin password (This is different to the MariaDB root password you set earlier (I’m using passwordsecret
  3. Click MySQL/MariaDB
  4. For database user enter root
  5. For database password enter your MariaDB root password (I used SECRETPASSWORD)
  6. For database name I’m using nextcloud
  7. Replace localhost with your Unraid ip address and the host port of MariaDB (For me that is 192.168.0.1:3305)

4

Setting Up An Apache Reverse Proxy

I’m going to show the two different ways to reverse proxy nextcloud with Apache. Note you will need a working Apache container with SSL, explaining this is outside the scope of this article.

The first way is is is https://server.com/nextcloud and the second is https://nextcloud.server.com

server.com/nextcloud

First off edit your default.conf file (Mine is located in /mnt/cache/.appdata/apache/apache/site-confs/default.conf)

Here is my config, it will redirect all http traffic to https (note you will need to edit this to reflect your hostname, SSL key names and SSL key locations)

<VirtualHost *:80>
    ServerName server.com
    ServerAlias server.com
    DocumentRoot /config/www/

    Redirect permanent / https://server.com/

</VirtualHost>

<VirtualHost *:443>
    ServerName server.com
    ServerAdmin [email protected]
    DocumentRoot /config/www/

    SSLCertificateFile /config/keys/server.com.crt
    SSLCertificateKeyFile /config/keys/ssldecrypted.key
    SSLCertificateChainFile /config/keys/sub.class1.server.ca.pem
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

    SSLEngine on
    SSLProxyEngine On
    RewriteEngine On
    ProxyPreserveHost Off

    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    SSLHonorCipherOrder on

    <Location /nextcloud>
        ProxyPass https://192.168.0.1:444
        ProxyPassReverse https://192.168.0.1:444
    </Location>

</VirtualHost>

Now you need to edit the config.php file for Nextcloud, mine is located in /mnt/cache/.appdata/nextcloud/www/nextcloud/config/config.php

It should be edited to look like this

<?php
$CONFIG = array (
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'datadirectory' => '/data',
  'instanceid' => 'xxxxxxxxxxxx',
  'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'trusted_domains' => 
  array (
    0 => '192.168.0.1:444',
    1 => 'server.com',
  ),
  'overwrite.cli.url' => 'https://server.com',
  'overwritehost'     => 'server.com',
  'overwriteprotocol' => 'https',
  'overwritewebroot'  => '/nextcloud',
  'dbtype' => 'mysql',
  'version' => '9.0.52.0',
  'dbname' => 'nextcloud',
  'dbhost' => '192.168.0.1:3305',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'oc_CHBMB1',
  'dbpassword' => 'xxxxxxxxxxxxxxxxxxxx',
  'logtimezone' => 'UTC',
  'installed' => true,
);

nextcloud.server.com

First off edit your default.conf file (Mine is located in /mnt/cache/.appdata/apache/apache/site-confs/default.conf)

Here is my config, it will redirect all http traffic to https (note you will need to edit this to reflect your hostname, SSL key names and SSL key locations)

<VirtualHost *:80>
    ServerName nextcloud.server.com
    ServerAlias nextcloud.server.com
    DocumentRoot /config/www/

    Redirect permanent / https://nextcloud.server.com/

</VirtualHost>

<VirtualHost *:443>
    ServerName nextcloud.server.com
    ServerAdmin [email protected]
    DocumentRoot /config/www/

    SSLCertificateFile /config/keys/server.com.crt
    SSLCertificateKeyFile /config/keys/ssldecrypted.key
    SSLCertificateChainFile /config/keys/sub.class1.server.ca.pem

    SSLEngine on
    SSLProxyEngine On
    RewriteEngine On
    ProxyPreserveHost On

    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off

    SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
    SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    SSLHonorCipherOrder on

    ProxyRequests Off
    ProxyPreserveHost Off
    ProxyPass / https://192.168.0.1:444/
    ProxyPassReverse / https://192.168.0.1:444/

</VirtualHost>

Now you need to edit the config.php file for Nextcloud, mine is located in /mnt/cache/.appdata/nextcloud/www/nextcloud/config/config.php

It should be edited to look like this

<?php
$CONFIG = array (
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'datadirectory' => '/data',
  'instanceid' => 'xxxxxxxxxxxx',
  'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'trusted_domains' => 
  array (
    0 => '192.168.0.1:444',
    1 => 'nextcloud.server.com',
  ),
  'overwrite.cli.url' => 'https://nextcloud.server.com',
  'overwritehost' => 'nextcloud.server.com',
  'overwriteprotocol' => 'https',
  'dbtype' => 'mysql',
  'version' => '9.0.52.0',
  'dbname' => 'nextcloud',
  'dbhost' => '192.168.0.1:3305',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'oc_CHBMB1',
  'dbpassword' => 'xxxxxxxxxxxxxxxxxxxx',
  'logtimezone' => 'UTC',
  'installed' => true,
);

Now you should find you have a fully working install of Nextcloud accessible from either https://server.com/nextcloud or https://nextcloud.server.com

1

Changes to our Plex Docker container

At the time of writing this article the linuxserver/plex container has been pulled 184,679 times from Docker hub. Our container was the first to properly support switching between the “PlexPass” and “standard” versions of Plex Media Server. As the popularity has grown we’ve attracted the scrutiny of the Plex development team who found we were effectively giving away the paid version of PMS for free. Oops! As a consequence, we’re making some changes to the way in which the paid version of Plex is obtained.

Continue Reading

1

Please help with DevOps research

Steve Jones at the University of East Anglia is currently undertaking research into DevOps for his PhD. He would be especially grateful if anyone involved with DevOps, Software Engineering, Testing or Systems Administration could spare 5 to 10 minutes to complete a quick, anonymous and mostly multiple choice survey connected with his work on how DevOps is defined.

The survey can be found here: DevOps: Towards an industry grounded definition

Steve would be grateful if you can share the survey link with anyone else you may know who could possibly respond too.

2

Podcast Episode 4 – RKT 1.0, Docker ditches Ubuntu for Alpine and Ubiquiti controller software under Docker

News & Announcements

  • LinuxServer.io broke the 500k pulls mark
    • http://tools.linuxserver.io/dockers
  • rkt Hit 1.0
    • https://coreos.com/blog/rocket/
  • Docker’s Core containers go towards alpine linux
    • https://www.brianchristner.io/docker-is-moving-to-alpine-linux/

Container of the Week

linuxserver/unifi

2

Manage a Unifi AP via the Ubiquiti controller running in Docker

The Ubiquiti wireless access points are new to me but damn are they fantastic! Rather than logging into each AP via it’s IP directly, you are required to use the Ubiquiti controller software.

Wouldn’t it be fanastic if this software could run headless on your Linux server? Well you can using Docker (linuxserver/unifi), this article will show you how. I’ll also cover adopting an AP which is already managed by another controller instance plus some cool network scanning tips to make this process even easier using nmap.

Continue Reading

69

Debian, MergerFS, SnapRAID and Docker – The Perfect Home Media Server 2016

Hard drives looking sexy

Choosing how to store your data is one of the most hotly debated topics amongst data hoarders. I frequently find myself discussing this topic with friends, family, redditors and anyone else who’ll listen. Over the last 5 years I’ve tried numerous different storage methods and learned a lot along the way. Using nothing but free and open source software I’ve assembled what I believe to be the best solution of it’s type using Linux (Debian in my case), Docker, SnapRAID and MergerFS.

You’ll find out more about each of these projects in this article. I’ll also cover the setup process for each component and along the way extol the virtues of Ansible for managing all of this configuration in a sane, reproducible manner stored entirely in the source code management tool, git.

Continue Reading

3

Building software from source using Docker

Building software from source isn’t always the best way to keep your system clean. Often it requires multiple packages you might not want hanging around once you’ve built whatever it is you’re building, this includes those build dependencies dependencies too! Enter Docker.

Using a Dockerfile paired with a build.sh script I’ve devised a relatively simple way to build software in a container. The script provides a .deb ready for installation by dpkg without any dependencies installed on the host at all, save for Docker.

Continue Reading