{"id":545,"date":"2018-05-05T16:12:03","date_gmt":"2018-05-05T23:12:03","guid":{"rendered":"http:\/\/diyfuturism.com\/?p=545"},"modified":"2018-05-28T17:54:39","modified_gmt":"2018-05-29T00:54:39","slug":"self-hosting-complete-guide-deploying-private-nextcloud","status":"publish","type":"post","link":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/","title":{"rendered":"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose"},"content":{"rendered":"<p>With all the revelations in the headlines about how exactly our private data is being mined to surveil and manipulate us, I&#8217;ve been thinking of more ways to take better control of my information. As they say, the internet is forever, and it&#8217;s become clear that once your information is out there all kinds of third parties may have access to it. While there is nothing particularly salacious in my calendar appointments or phone notes app, there is also no guarantee that future uses of this data by future technologies will be so benign. Just look at China&#8217;s &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Social_Credit_System\" target=\"_blank\" rel=\"noopener\">social credit<\/a>&#8221; system.<\/p>\n<p>Using the open source <a href=\"https:\/\/nextcloud.com\/\" target=\"_blank\" rel=\"noopener\">NextCloud<\/a> software, I have deployed a private server that replaces all the common uses of cloud services: calendar, todo lists, files, passwords, bookmarks, contacts, and notes. All synchronized across all my devices on all platforms. Here&#8217;s my setup, deployed in Docker.<\/p>\n<p><!--more--><\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"854\" height=\"481\" src=\"https:\/\/www.youtube.com\/embed\/YrpK90bHO2U?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation\"><\/iframe><\/span><\/p>\n<p>This is not the future we were promised.<\/p>\n<h1>USE CASE<\/h1>\n<p>I own a small business and my entire life is dictated by my todo list and calendar. Without it I&#8217;d be lost. I also have multiple work and personal computers, some OS X and some Linux, and also use both iOS and Android devices. I need my data everywhere. My NextCloud server replaces these cloud services with it&#8217;s NextCloud equivalent:<\/p>\n<ul>\n<li>Dropbox &#8211; File syncing and sharing via WebDAV<\/li>\n<li>iCloud\/Google &#8211; Calendars, Todos, Contacts via CalDAV<\/li>\n<li>Lastpass &#8211; Keeweb database<\/li>\n<li>Chrome Bookmarks &#8211; Nextcloud Bookmarks<\/li>\n<li>Evernote\/iOS Notes &#8211; Nextcloud Notes apps<\/li>\n<\/ul>\n<h1>DEPLOYMENT<\/h1>\n<p>We&#8217;ve got some options here.<\/p>\n<h3>ON A RASPBERRY PI<\/h3>\n<p><a href=\"https:\/\/ownyourbits.com\/nextcloudpi\/\" target=\"_blank\" rel=\"noopener\">NextCloudPi<\/a>\u00a0is an operating system designed for the <a href=\"https:\/\/amzn.to\/2roi0HZ\" target=\"_blank\" rel=\"noopener\">Raspberry Pi<\/a> platform. It is the most consumer-ready of options if you are not a technical user. Using the cheap Pi hardware, you can get NextCloud up without much hassle and without any technical knowledge. Check it out!<\/p>\n<h3>ON A VIRTUAL PRIVATE SERVER<\/h3>\n<p>This is what I do, because my internet connection is pretty limited and I need to share large files. So I have chosen to deploy this as a virtual private server with <a href=\"https:\/\/m.do.co\/c\/d00f2d087bac\" target=\"_blank\" rel=\"noopener\">Digital Ocean<\/a>. They make this easy with a Docker Droplet ready to go:<\/p>\n<div id=\"attachment_546\" style=\"width: 1007px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-546\" data-attachment-id=\"546\" data-permalink=\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/screenshot-from-2018-05-05-134023\/\" data-orig-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?fit=997%2C329&amp;ssl=1\" data-orig-size=\"997,329\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Digital Ocean Docker Droplet\" data-image-description=\"&lt;p&gt;Digital Ocean Docker Droplet&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Digital Ocean Docker Droplet&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?fit=300%2C99&amp;ssl=1\" data-large-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?fit=854%2C282&amp;ssl=1\" loading=\"lazy\" class=\"wp-image-546 size-full\" src=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?resize=854%2C282\" alt=\"Digital Ocean Docker Droplet\" width=\"854\" height=\"282\" srcset=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?w=997&amp;ssl=1 997w, https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?resize=600%2C198&amp;ssl=1 600w, https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?resize=300%2C99&amp;ssl=1 300w, https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134023.png?resize=768%2C253&amp;ssl=1 768w\" sizes=\"(max-width: 854px) 100vw, 854px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-546\" class=\"wp-caption-text\">Digital Ocean Docker Droplet<\/p><\/div>\n<p>For my single-user purposes, the lowest $5\/mo tier is enough. I also add a $10\/mo 100gb block of storage space for syncing the contents of my phone. Choose your options based on what makes sense for how many users you have.<\/p>\n<p><img data-attachment-id=\"547\" data-permalink=\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/screenshot-from-2018-05-05-134243\/\" data-orig-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134243.png?fit=499%2C315&amp;ssl=1\" data-orig-size=\"499,315\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134243.png?fit=300%2C189&amp;ssl=1\" data-large-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134243.png?fit=499%2C315&amp;ssl=1\" loading=\"lazy\" class=\"aligncenter wp-image-547 size-full\" src=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134243.png?resize=499%2C315\" alt=\"\" width=\"499\" height=\"315\" srcset=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134243.png?w=499&amp;ssl=1 499w, https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134243.png?resize=300%2C189&amp;ssl=1 300w\" sizes=\"(max-width: 499px) 100vw, 499px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Once you&#8217;ve deployed your server, you will need to point a fully qualified domain name to your IP in order to set up HTTPS. With that all set, we can set up NextCloud in Docker.<\/p>\n<p>To get a $10 credit for Digital Ocean to try this out for a few months for free, <a href=\"https:\/\/m.do.co\/c\/d00f2d087bac\" target=\"_blank\" rel=\"noopener\">click here for my referral link<\/a>.<\/p>\n<p>If I had better internet I would just run this\u00a0 in a VM on my Proxmox Intel NUC host! See this post for more info on setting up a <a href=\"http:\/\/diyfuturism.com\/index.php\/2018\/03\/20\/pi-to-nuc-part-1-migrating-hass-io-to-a-virtual-machine-proxmox-docker\/\">NUC as low power home server with virtualization<\/a>.<\/p>\n<p><script type=\"text\/javascript\">\namzn_assoc_placement = \"adunit0\";\namzn_assoc_tracking_id = \"diyfuturism-20\";\namzn_assoc_ad_mode = \"search\";\namzn_assoc_ad_type = \"smart\";\namzn_assoc_marketplace = \"amazon\";\namzn_assoc_region = \"US\";\namzn_assoc_default_search_phrase = \"intel nuc\";\namzn_assoc_default_category = \"All\";\namzn_assoc_linkid = \"2e22cfe4c539e999844fa04e0177e69b\";\namzn_assoc_design = \"in_content\";\n<\/script><br \/>\n<script src=\"\/\/z-na.amazon-adsystem.com\/widgets\/onejs?MarketPlace=US\"><\/script><\/p>\n<h3>DOCKER COMPOSE<\/h3>\n<p>Docker Compose makes it easy to coordinate your applications as containers working together. My compose stack deploys NextCloud and MariaDB and their administration tools (PHPMyAdmin and Portainer). All of these are protected behind an encrypted reverse proxy using nginx. This is my <strong>docker-compose.yml<\/strong> file<\/p>\n<pre>version: '2'\r\nservices:\r\n\r\n  db:\r\n    image: mariadb\r\n    container_name: db\r\n    restart: always\r\n    environment:\r\n      MYSQL_ROOT_PASSWORD: YOURPASSWORD\r\n    volumes:\r\n      - \/PATH\/TO\/PERSISTENT\/FILES\/db:\/var\/lib\/mysql\r\n    ports:\r\n      - \"3306:3306\"\r\n\r\n  phpmyadmin:\r\n    image: phpmyadmin\/phpmyadmin\r\n    container_name: phpmyadmin\r\n    restart: unless-stopped\r\n    depends_on:\r\n      - \"db\"\r\n    environment:\r\n      - VIRTUAL_HOST=mysql.YOURDOMAIN.com\r\n      - LETSENCRYPT_HOST=mysql.YOURDOMAIN.com\r\n      - LETSENCRYPT_EMAIL=YOUREMAIL\r\n      - PMA_HOST=db\r\n    ports:\r\n      - \"1666:80\" \r\n\r\n  portainer:\r\n    image: portainer\/portainer\r\n    container_name: portainer\r\n    restart: always\r\n    environment:\r\n      - VIRTUAL_HOST=docker.YOURDOMAIN.com\r\n      - LETSENCRYPT_HOST=docker.YOURDOMAIN.com\r\n      - LETSENCRYPT_EMAIL=EMAIL\r\n    volumes: \r\n      - \/PATH\/TO\/PERSISTENT\/FILES:\/data\r\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock\r\n    ports:\r\n      - \"9000:9000\"\r\n\r\n  nextcloud:\r\n    image: nextcloud:apache\r\n    container_name: nextcloud\r\n    restart: unless-stopped\r\n    environment:\r\n      - VIRTUAL_HOST=cloud.YOURDOMAIN.com\r\n      - LETSENCRYPT_HOST=cloud.YOURDOMAIN.com\r\n      - LETSENCRYPT_EMAIL=YOUREMAIL\r\n      - PGID=999\r\n      - PUID=1000\r\n    ports:\r\n      - \"666:80\"\r\n    volumes:\r\n      - \/PATH\/TO\/PERSISTENT\/FILES\/nextcloud:\/var\/www\/html\r\n      - \/PATH\/TO\/PERSISTENT\/FILES\/nextcloud\/uploadsize.conf:\/etc\/nginx\/conf.d\/uploadsize.conf\r\n    depends_on:\r\n      - \"db\"\r\n    links:\r\n      - \"redis\"\r\n    networks:\r\n      - proxy-tier\r\n      - default\r\n \r\n  redis:\r\n    image: redis\r\n    container_name: redis\r\n    volumes:\r\n      -\/PATH\/TO\/PERSISTENT\/FILES\/redis:\/data\r\n    restart: unless-stopped\r\n  proxy:\r\n    build: .\/proxy   \r\n    container_name: proxy\r\n    restart: unless-stopped\r\n    labels:\r\n      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: \"true\"\r\n    volumes:\r\n      - \/var\/run\/docker.sock:\/tmp\/docker.sock:ro\r\n      - certs:\/etc\/nginx\/certs:ro\r\n      - vhost.d:\/etc\/nginx\/vhost.d\r\n      - html:\/usr\/share\/nginx\/html\r\n    environment:\r\n      - DEFAULT_HOST=cloud.YOURDOMAIN.com\r\n    ports:\r\n      - \"80:80\"\r\n      - \"443:443\"\r\n    networks:\r\n      - \"default\"\r\n      - \"proxy-tier\"\r\n\r\n  proxy-letsencrypt:\r\n    image: jrcs\/letsencrypt-nginx-proxy-companion\r\n    container_name: letsencrypt\r\n    restart: unless-stopped\r\n    environment:\r\n      - NGINX_PROXY_CONTAINER=proxy\r\n    depends_on:\r\n      - \"proxy\"\r\n    volumes_from:\r\n      - \"proxy\"\r\n    volumes:\r\n      - \/var\/run\/docker.sock:\/var\/run\/docker.sock:ro\r\n    networks:\r\n      - \"default\"\r\n      - \"proxy-tier\"\r\n\r\nvolumes:\r\n  certs:\r\n  vhost.d:\r\n  html:\r\n\r\nnetworks:\r\n  proxy-tier:\r\n<\/pre>\n<p>All that&#8217;s left to do here is run the command\u00a0<strong>docker-compose up<\/strong> to build and run your container stack.<\/p>\n<h3>DEPLOYMENT NOTES<\/h3>\n<p>The MariaDB database and the NextCloud files are stored persistently on the local disk, these are passed as mounted volumes to the Docker container.<\/p>\n<p>The reverse proxy will create a subdomain and encrypt it with Let&#8217;s Encrypt certificates for every container with the VIRTUAL_HOST and Let&#8217;s Encrypt information provided as environmental variables. It will pass the defined port for web access on port 80 on the subdomain. The limitation of this is you can only reverse proxy a single port per application.<\/p>\n<p>I had to make some tweaks to override the maximum allowed file upload size. The combo of these changes worked for me. First, create the <strong>uploadsize.conf<\/strong> file and place this in it:<\/p>\n<pre>client_max_body_size: 10G;<\/pre>\n<p>You can see above this is passed to NextCloud directly as a mounted volume, I also built the proxy container using the &#8220;build&#8221; option. Create the <strong>proxy<\/strong>\u00a0folder and create a <strong>Dockerfile<\/strong> containing:<\/p>\n<pre>FROM jwilder\/nginx-proxy:alpine\r\n\r\nCOPY uploadsize.conf \/etc\/nginx\/conf.d\/uploadsize.conf<\/pre>\n<p>The other issue I had was that I would often get random errors or connection issues in NextCloud until it was placed on a separate <strong>proxy-tier<\/strong> network.<\/p>\n<p>A final tweak, to enable Redis for memory caching and relieve the SQL database of some load, edit the\u00a0<strong>\/PATH\/TO\/PERSISTENT\/FILES\/nextcloud\/config\/config.php<\/strong> file and add:<\/p>\n<pre> 'memcache.locking' =&gt; '\\\\OC\\Memcache\\Redis',\r\n 'redis' =&gt; array(\r\n 'host' =&gt; 'redis',\r\n 'port' =&gt; 6379,\r\n ),<\/pre>\n<h3>ALMOST DONE<\/h3>\n<p>You should be able to access NextCloud at <strong>https:\/\/cloud.yourdomain.com<\/strong> now. The related applications are also available at the subdomains defined above, for example to manage the Docker containers go to <strong>https:\/\/docker.yourdomain.com<\/strong> to access Portainer.<\/p>\n<p>Run through the NextCloud setup and you now have a fully functioning, encrypted, private cloud.<\/p>\n<p><script type=\"text\/javascript\">\namzn_assoc_placement = \"adunit0\";\namzn_assoc_tracking_id = \"diyfuturism-20\";\namzn_assoc_ad_mode = \"search\";\namzn_assoc_ad_type = \"smart\";\namzn_assoc_marketplace = \"amazon\";\namzn_assoc_region = \"US\";\namzn_assoc_default_search_phrase = \"raspberry pi\";\namzn_assoc_default_category = \"Electronics\";\namzn_assoc_linkid = \"56be2f14439da0d27feb71eed1ee9093\";\namzn_assoc_default_browse_node = \"172282\";\namzn_assoc_design = \"in_content\";\n<\/script><br \/>\n<script src=\"\/\/z-na.amazon-adsystem.com\/widgets\/onejs?MarketPlace=US\"><\/script><\/p>\n<h2>NEXTCLOUD APPS<\/h2>\n<p>There are a lot of NextCloud apps that extend the functionality of the server. The ones I use are:<\/p>\n<ul>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/apporder\" target=\"_blank\" rel=\"noopener\">AppOrder<\/a>\u00a0&#8211; rearrange applications in the toolbar<\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/bookmarks\" target=\"_blank\" rel=\"noopener\">Bookmarks<\/a><\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/calendar\" target=\"_blank\" rel=\"noopener\">Calendar<\/a>\u00a0&#8211; CalDAV server<\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/contacts\" target=\"_blank\" rel=\"noopener\">Contacts<\/a>\u00a0&#8211; CardDAV server<\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/external\" target=\"_blank\" rel=\"noopener\">External Sites<\/a>\u00a0&#8211; Embed other web apps within the NextCloud interface<\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/metadata\" target=\"_blank\" rel=\"noopener\">Metadata<\/a>\u00a0&#8211; additional file metadata<\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/keeweb\" target=\"_blank\" rel=\"noopener\">Keeweb<\/a>\u00a0&#8211; Web interface for Keeweb databse [see below]<\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/notes\" target=\"_blank\" rel=\"noopener\">Notes<\/a><\/li>\n<li><a href=\"https:\/\/apps.nextcloud.com\/apps\/tasks\" target=\"_blank\" rel=\"noopener\">Tasks<\/a>\u00a0&#8211; CalDav todos<\/li>\n<\/ul>\n<p>All of these are pretty much one-click install except for Keeweb, which took some fiddling.<\/p>\n<p>If you need a more robust Notes solution (ie. more like Evernote) take a look at <a href=\"https:\/\/github.com\/laurent22\/joplin\" target=\"_blank\" rel=\"noopener\">Joplin<\/a>, which supports NextCloud.<\/p>\n<div id=\"attachment_574\" style=\"width: 733px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-574\" data-attachment-id=\"574\" data-permalink=\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/screenshot-from-2018-05-05-184144-2\/\" data-orig-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?fit=723%2C625&amp;ssl=1\" data-orig-size=\"723,625\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Keeweb NextCloud App\" data-image-description=\"\" data-image-caption=\"&lt;p&gt;Keeweb NextCloud App&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?fit=300%2C259&amp;ssl=1\" data-large-file=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?fit=723%2C625&amp;ssl=1\" loading=\"lazy\" class=\"wp-image-574 size-full\" src=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?resize=723%2C625\" alt=\"Keeweb NextCloud App\" width=\"723\" height=\"625\" srcset=\"https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?w=723&amp;ssl=1 723w, https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?resize=600%2C519&amp;ssl=1 600w, https:\/\/i2.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-184144-1.png?resize=300%2C259&amp;ssl=1 300w\" sizes=\"(max-width: 723px) 100vw, 723px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-574\" class=\"wp-caption-text\">Keeweb NextCloud App<\/p><\/div>\n<h3>CONFIGURING KEEWEB PASSWORD MANAGER<\/h3>\n<p>This was the trickiest bit to get going. One of the reasons being there are a lot of options for password managers, <a href=\"https:\/\/www.reddit.com\/r\/selfhosted\/comments\/8ffrz7\/nextcloud_users_what_is_the_best_strategy_for\/\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">see discussion on Reddit here<\/a> I am keeping an eye on the\u00a0<a href=\"https:\/\/apps.nextcloud.com\/apps\/passman\" target=\"_blank\" rel=\"noopener\">Passman<\/a>\u00a0project, but currently it lacks sufficient phone apps. So I chose the very widely supported <a href=\"https:\/\/keeweb.info\/\" target=\"_blank\" rel=\"noopener\">Keeweb<\/a>.<\/p>\n<p>The NextCloud Keeweb app is no longer maintained but can be made to work with some manual changes.<\/p>\n<ol>\n<li>Download the <a href=\"https:\/\/github.com\/jhass\/nextcloud-keeweb\/releases\" target=\"_blank\" rel=\"noopener\">NextCloud Keeweb<\/a> app<\/li>\n<li>Extract it to your nextcloud\/apps directory<\/li>\n<li>Edit the file nextcloud\/apps\/keeweb\/appinfo\/info.xml, on line 17 change max-version to 14 instead of 12<\/li>\n<\/ol>\n<p>You can now activate the app through the NextCloud interface.<\/p>\n<p>You will need to create your <strong>Keeweb.kdbx<\/strong> file with another client, then upload it somewhere on your NextCloud instance. To get around the limitations of this older NextCloud Keeweb app, use the <strong>AppOrder<\/strong> &amp;\u00a0<strong>External Sites\u00a0<\/strong>apps linked above to first remove the default icon for Keeweb, and then replace it with an External Sites link pointed directly at your KDBX file, like so:<\/p>\n<pre>https:\/\/cloud.YOURDOMAIN.com\/apps\/keeweb?open=\/Documents\/Keeweb.kdbx<\/pre>\n<h1>RECOMMENDED CLIENT APPS<\/h1>\n<p>On the client side, we have many ways of interacting with our new server. The default applications on your device, Apple computers or Android phones, all work out of the box with the open CalDAV &amp; CardDAV standards. Just change your server and account information. Beyond that, here are some compatible apps I have used and recommend:<\/p>\n\n<table id=\"tablepress-2\" class=\"tablepress tablepress-id-2\">\n<thead>\n<tr class=\"row-1 odd\">\n\t<th class=\"column-1\">APP<\/th><th class=\"column-2\">PLATFORM<\/th><th class=\"column-3\">CLIENT FOR<\/th><th class=\"column-4\">COST<\/th><th class=\"column-5\">NOTES<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-hover\">\n<tr class=\"row-2 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/chrome.google.com\/webstore\/detail\/keepass-tusk-a-better-pas\/fmhmiaejopepamlcjkncpgpdjichnecm\" rel=\"noopener\" target=\"_blank\">Tusk<\/a><\/td><td class=\"column-2\">Chrome<\/td><td class=\"column-3\">Passwords<\/td><td class=\"column-4\">FREE<\/td><td class=\"column-5\">A secure Chrome extension with Autofill<\/td>\n<\/tr>\n<tr class=\"row-3 odd\">\n\t<td class=\"column-1\"><a href=\"https:\/\/itunes.apple.com\/us\/app\/cloudnotes-owncloud-notes\/id813973264?mt=8\" rel=\"noopener\" target=\"_blank\">CloudNotes<\/a><\/td><td class=\"column-2\">iOS<\/td><td class=\"column-3\">Notes<\/td><td class=\"column-4\">$2<\/td><td class=\"column-5\">Great replacement for default Apple app.<\/td>\n<\/tr>\n<tr class=\"row-4 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/nextcloud.com\/install\/#install-clients\" rel=\"noopener\" target=\"_blank\">Nextcloud Desktop Clients<\/a><\/td><td class=\"column-2\">OS X \/ Linux \/ Windows<\/td><td class=\"column-3\">Files<\/td><td class=\"column-4\">FREE<\/td><td class=\"column-5\">Easy WebDAV syncing<\/td>\n<\/tr>\n<tr class=\"row-5 odd\">\n\t<td class=\"column-1\"><a href=\"https:\/\/nextcloud.com\/install\/#install-clients\" rel=\"noopener\" target=\"_blank\">NextCloud Mobile Clients<\/a><\/td><td class=\"column-2\">iOS \/ Android \/ Windows Mobile<\/td><td class=\"column-3\">Files<\/td><td class=\"column-4\">FREE<\/td><td class=\"column-5\">Not that useful on iOS, I prefer FolderSync Pro for Android<\/td>\n<\/tr>\n<tr class=\"row-6 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=dk.tacit.android.foldersync.full\" rel=\"noopener\" target=\"_blank\">Folder Sync Pro<\/a><\/td><td class=\"column-2\">Android<\/td><td class=\"column-3\">Files<\/td><td class=\"column-4\">$3<\/td><td class=\"column-5\">Sync anything on your phone to NextCloud easily<\/td>\n<\/tr>\n<tr class=\"row-7 odd\">\n\t<td class=\"column-1\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=it.niedermann.owncloud.notes&amp;hl=en_US\" rel=\"noopener\" target=\"_blank\">NextCloud Notes<\/a><\/td><td class=\"column-2\">Android<\/td><td class=\"column-3\">Notes<\/td><td class=\"column-4\">$2.50<\/td><td class=\"column-5\">Simple note editor with great Android integration.<\/td>\n<\/tr>\n<tr class=\"row-8 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=keepass2android.keepass2android&amp;hl=en_US\" rel=\"noopener\" target=\"_blank\">Keepass2Android<\/a><\/td><td class=\"column-2\">Android<\/td><td class=\"column-3\">Passwords<\/td><td class=\"column-4\">FREE<\/td><td class=\"column-5\">Excellent Android integration<\/td>\n<\/tr>\n<tr class=\"row-9 odd\">\n\t<td class=\"column-1\"><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.dmfs.tasks&amp;hl=en_US\" rel=\"noopener\" target=\"_blank\">OpenTasks<\/a><\/td><td class=\"column-2\">Android<\/td><td class=\"column-3\">Tasks<\/td><td class=\"column-4\">FREE<\/td><td class=\"column-5\">Good client, allows seamless integration with other Android apps<\/td>\n<\/tr>\n<tr class=\"row-10 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/www.2doapp.com\/\" rel=\"noopener\" target=\"_blank\">2Do<\/a><\/td><td class=\"column-2\">OS X \/ iOS \/ Android<\/td><td class=\"column-3\">Tasks<\/td><td class=\"column-4\"><\/td><td class=\"column-5\">Great iOS client, very similar interface to OpenTasks. Haven't used other versions<\/td>\n<\/tr>\n<tr class=\"row-11 odd\">\n\t<td class=\"column-1\"><a href=\"https:\/\/www.busymac.com\/\" rel=\"noopener\" target=\"_blank\">BusyCal<\/a><\/td><td class=\"column-2\">OS X \/ iOS<\/td><td class=\"column-3\">Calendar, Tasks<\/td><td class=\"column-4\">$50 \/ $5<\/td><td class=\"column-5\">Well worth the cost, this is what the default Apple app should be<\/td>\n<\/tr>\n<tr class=\"row-12 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/www.busymac.com\/\" rel=\"noopener\" target=\"_blank\">BusyContacts<\/a><\/td><td class=\"column-2\">OS X \/ iOS<\/td><td class=\"column-3\">Contacts<\/td><td class=\"column-4\">$50<\/td><td class=\"column-5\">Another solid app worth the cost from BusyMac<\/td>\n<\/tr>\n<tr class=\"row-13 odd\">\n\t<td class=\"column-1\"><a href=\"https:\/\/www.davdroid.com\/\" rel=\"noopener\" target=\"_blank\">DAVDroid<\/a><\/td><td class=\"column-2\">Android<\/td><td class=\"column-3\">Calendar, Contacts<\/td><td class=\"column-4\">$4.70<\/td><td class=\"column-5\">Seamless integration with Android apps<\/td>\n<\/tr>\n<tr class=\"row-14 even\">\n\t<td class=\"column-1\"><a href=\"https:\/\/wiki.gnome.org\/Apps\/Evolution\/\" rel=\"noopener\" target=\"_blank\">Evolution<\/a><\/td><td class=\"column-2\">Linux<\/td><td class=\"column-3\">Calendar, Contacts, Tasks<\/td><td class=\"column-4\">FREE<\/td><td class=\"column-5\">IMO the best email\/productivity client for Linux.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-2 from cache -->\n<p>If you have any other useful tips or tweaks for NextCloud, or can recommend your favorite client app, please comment below!<\/p>\n<p><script type=\"text\/javascript\">\namzn_assoc_placement = \"adunit0\";\namzn_assoc_tracking_id = \"diyfuturism-20\";\namzn_assoc_ad_mode = \"search\";\namzn_assoc_ad_type = \"smart\";\namzn_assoc_marketplace = \"amazon\";\namzn_assoc_region = \"US\";\namzn_assoc_default_search_phrase = \"smart home\";\namzn_assoc_default_category = \"Electronics\";\namzn_assoc_linkid = \"56be2f14439da0d27feb71eed1ee9093\";\namzn_assoc_default_browse_node = \"172282\";\namzn_assoc_design = \"in_content\";\n<\/script><br \/>\n<script src=\"\/\/z-na.amazon-adsystem.com\/widgets\/onejs?MarketPlace=US\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"wpm_excerpt clearfix\"><p>With all the revelations in the headlines about how exactly our private data is being mined to surveil and manipulate us, I&#8217;ve been thinking of more &hellip;<\/p>\n<\/div>","protected":false},"author":1,"featured_media":548,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"#SelfHosted Complete Guide to Deploying Your Own Private #NextCloud for Personal Info & Data across all platforms #cloud #privacy #diy","jetpack_is_tweetstorm":false},"categories":[148,156,5],"tags":[163,80,164,170,154,169,159,134,160,165,53,78,162,158,168,157,149,52,167,83,123,17,161,113,27,85,166,75],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose - DIY Futurism<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose - DIY Futurism\" \/>\n<meta property=\"og:description\" content=\"With all the revelations in the headlines about how exactly our private data is being mined to surveil and manipulate us, I&#8217;ve been thinking of more &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/\" \/>\n<meta property=\"og:site_name\" content=\"DIY Futurism\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-05T23:12:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-05-29T00:54:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&#038;ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"968\" \/>\n\t<meta property=\"og:image:height\" content=\"573\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@diyfuturism\" \/>\n<meta name=\"twitter:site\" content=\"@diyfuturism\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"brad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/diyfuturism.com\/#website\",\"url\":\"https:\/\/diyfuturism.com\/\",\"name\":\"DIY Futurism\",\"description\":\"Adventures in Open Source Smart Home Projects\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/diyfuturism.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&ssl=1\",\"width\":968,\"height\":573},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#webpage\",\"url\":\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/\",\"name\":\"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose - DIY Futurism\",\"isPartOf\":{\"@id\":\"https:\/\/diyfuturism.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#primaryimage\"},\"datePublished\":\"2018-05-05T23:12:03+00:00\",\"dateModified\":\"2018-05-29T00:54:39+00:00\",\"author\":{\"@id\":\"https:\/\/diyfuturism.com\/#\/schema\/person\/b93619fac07567640bd87cc613a55b7c\"},\"breadcrumb\":{\"@id\":\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/diyfuturism.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/diyfuturism.com\/#\/schema\/person\/b93619fac07567640bd87cc613a55b7c\",\"name\":\"brad\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/diyfuturism.com\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7e2d60eb1f322b4ad6040a746946a361?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7e2d60eb1f322b4ad6040a746946a361?s=96&d=mm&r=g\",\"caption\":\"brad\"},\"description\":\"I'm a professional artist who likes to tinker with building things in my spare time.\",\"sameAs\":[\"https:\/\/twitter.com\/@diyfuturism\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose - DIY Futurism","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/","og_locale":"en_US","og_type":"article","og_title":"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose - DIY Futurism","og_description":"With all the revelations in the headlines about how exactly our private data is being mined to surveil and manipulate us, I&#8217;ve been thinking of more &hellip;","og_url":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/","og_site_name":"DIY Futurism","article_published_time":"2018-05-05T23:12:03+00:00","article_modified_time":"2018-05-29T00:54:39+00:00","og_image":[{"width":968,"height":573,"url":"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&ssl=1","path":"\/var\/www\/html\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png","size":"full","id":548,"alt":"","pixels":554664,"type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@diyfuturism","twitter_site":"@diyfuturism","twitter_misc":{"Written by":"brad","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/diyfuturism.com\/#website","url":"https:\/\/diyfuturism.com\/","name":"DIY Futurism","description":"Adventures in Open Source Smart Home Projects","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/diyfuturism.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#primaryimage","inLanguage":"en-US","url":"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&ssl=1","contentUrl":"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&ssl=1","width":968,"height":573},{"@type":"WebPage","@id":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#webpage","url":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/","name":"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose - DIY Futurism","isPartOf":{"@id":"https:\/\/diyfuturism.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#primaryimage"},"datePublished":"2018-05-05T23:12:03+00:00","dateModified":"2018-05-29T00:54:39+00:00","author":{"@id":"https:\/\/diyfuturism.com\/#\/schema\/person\/b93619fac07567640bd87cc613a55b7c"},"breadcrumb":{"@id":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/diyfuturism.com\/index.php\/2018\/05\/05\/self-hosting-complete-guide-deploying-private-nextcloud\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/diyfuturism.com\/"},{"@type":"ListItem","position":2,"name":"Self Hosting: Complete Guide to Deploying Your Own Private NextCloud with Docker Compose"}]},{"@type":"Person","@id":"https:\/\/diyfuturism.com\/#\/schema\/person\/b93619fac07567640bd87cc613a55b7c","name":"brad","image":{"@type":"ImageObject","@id":"https:\/\/diyfuturism.com\/#personlogo","inLanguage":"en-US","url":"https:\/\/secure.gravatar.com\/avatar\/7e2d60eb1f322b4ad6040a746946a361?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7e2d60eb1f322b4ad6040a746946a361?s=96&d=mm&r=g","caption":"brad"},"description":"I'm a professional artist who likes to tinker with building things in my spare time.","sameAs":["https:\/\/twitter.com\/@diyfuturism"]}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/05\/Screenshot-from-2018-05-05-134816.png?fit=968%2C573&ssl=1","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9q0Cl-8N","jetpack-related-posts":[{"id":822,"url":"https:\/\/diyfuturism.com\/index.php\/2019\/06\/10\/self-hosting-nextcloud-with-digitalocean-spaces-for-main-storage\/","url_meta":{"origin":545,"position":0},"title":"Self Hosting: Nextcloud with DigitalOcean Spaces for Main Storage","date":"June 10, 2019","format":false,"excerpt":"It has been over a year since I originally set up my own self-hosted cloud using Nextcloud. I am happy to report back that I absolutely love it, and it has run flawlessly without error for this period. It is central to my personal infrastructure and I have come to\u2026","rel":"","context":"In &quot;Home Server&quot;","img":{"alt_text":"Object vs Block Storage","src":"https:\/\/i0.wp.com\/diyfuturism.com\/wp-content\/uploads\/2019\/06\/object.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":868,"url":"https:\/\/diyfuturism.com\/index.php\/2020\/08\/16\/plex-locast-recording-local-tv-without-the-antenna\/","url_meta":{"origin":545,"position":1},"title":"Plex &#038; Locast: Recording Local TV Without the Antenna","date":"August 16, 2020","format":false,"excerpt":"Update: Locast has ceased operations. Old post archived here: I have been a long time Plex user for years. Alongside my extensive movie collection, I also like to keep up on the local news and occasionally watch some sports or TV special. Previously I had successfully used a TV tuner\u2026","rel":"","context":"In &quot;Home Server&quot;","img":{"alt_text":"Plex DVR","src":"https:\/\/i1.wp.com\/diyfuturism.com\/wp-content\/uploads\/2020\/08\/2020-08-16-190142_857x727_scrot.png?fit=857%2C727&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":517,"url":"https:\/\/diyfuturism.com\/index.php\/2018\/03\/20\/pi-to-nuc-part-1-migrating-hass-io-to-a-virtual-machine-proxmox-docker\/","url_meta":{"origin":545,"position":2},"title":"Pi to NUC Part 1: Migrating Hass.IO to a Virtual Machine with Proxmox &#038; Docker","date":"March 20, 2018","format":false,"excerpt":"As my Home Assistant setup has become increasingly complex, I've started to see the limitations of the Raspberry Pi platform. Graphs are slow, and the history and logbook are basically unusable to me. Everything works, but I'd like to be able to use these things with a lot more data\u2026","rel":"","context":"In &quot;Hardware&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/03\/nuc.jpeg?fit=645%2C428&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":162,"url":"https:\/\/diyfuturism.com\/index.php\/2017\/12\/11\/self-hosting-how-to-get-free-and-cheap-linux-virtual-servers\/","url_meta":{"origin":545,"position":3},"title":"Self Hosting: How to Get Free and Cheap Linux Virtual Servers","date":"December 11, 2017","format":false,"excerpt":"I try to avoid the cloud in favor of self-hosting the services I use. Then I know my information is private, and I can tailor them to suit my needs. I do run some services at home on my network, but my local internet service is pretty slow. So my\u2026","rel":"","context":"In &quot;Blog&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/diyfuturism.com\/wp-content\/uploads\/2017\/12\/33838065805_d48a76f077_k.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":314,"url":"https:\/\/diyfuturism.com\/index.php\/2018\/01\/01\/how-to-set-up-a-personal-wiki-with-configuration-for-common-use-cases-like-recipes-and-journaling\/","url_meta":{"origin":545,"position":4},"title":"Self Hosting: Setting up a Personal Wiki with DokuWiki","date":"January 1, 2018","format":false,"excerpt":"One of the most useful things I self host on my server is a personal wiki. I use it for note taking on projects, a journal, a beer homebrew log, storing recipes, config files, and for archiving web pages or documents. It is a great alternative to Evernote or OneNote\u2026","rel":"","context":"In &quot;Self Hosted&quot;","img":{"alt_text":"WIKI","src":"https:\/\/i1.wp.com\/diyfuturism.com\/wp-content\/uploads\/2018\/01\/WIKI.gif?fit=450%2C250&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":855,"url":"https:\/\/diyfuturism.com\/index.php\/2020\/06\/14\/plexamp-music-streaming-with-raspberry-pi-zero\/","url_meta":{"origin":545,"position":5},"title":"Plexamp Music Streaming with Raspberry Pi Zero","date":"June 14, 2020","format":false,"excerpt":"I've been a Plex user for a very long while. They've recently put a lot of effort into the re-vamped Plexamp music player and it's quickly become my primary means of listening to my music library. I wanted to be able to stream Plexamp to my hi-fi stereo the same\u2026","rel":"","context":"In &quot;Electronics&quot;","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/diyfuturism.com\/wp-content\/uploads\/2020\/06\/Screenshot-20200614154205-997x628-1.png?fit=997%2C628&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/posts\/545"}],"collection":[{"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/comments?post=545"}],"version-history":[{"count":22,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/posts\/545\/revisions"}],"predecessor-version":[{"id":601,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/posts\/545\/revisions\/601"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/media\/548"}],"wp:attachment":[{"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/media?parent=545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/categories?post=545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diyfuturism.com\/index.php\/wp-json\/wp\/v2\/tags?post=545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}