Srikanth Perinkulam

Menu Close

Search results: "nextcloud"

Snappy Nextcloud

Last year, I procured a Nextcloud box and moved part of my data to it. I’d just heard about Ubuntu Snappy Core OS and was keen on porting my install to that setup. I finally got around doing that last week and thought I’d quickly jot down the install steps for reference later. Essentially, I installed the Core OS on a 32GB microSD card and installed Nextcloud as a snap. Two 1TB hard drives service the Pi3 and are synced with rclone. Below is a crude outline of the setup:

Install and sign-in to the UbuntuCore OS:

1.Download the latest Ubuntu Core OS and use Etcher to burn it on to a microSSD card.

2.On your local machine generate a public/private rsa key using the following command:
ssh-keygen -t rsa
Create an UbuntuOne account if you don’t already have one and import your ssh key to your account. You’ll need this to ssh into your Core OS pretty soon.

3.Slide in the microSSD card onto the Pi3 board. Then connect a monitor, keyboard and hard drive to the Pi3 and power it on. The Pi3 Board B comes with in-built wi-fi and bluetooth and once powered on it should automatically prompt you to connect to the wi-fi and then to your UbuntuONE account. Once this is setup, you should be able to ssh into the CoreOS from your local machine using:
ssh [email protected]
+ If ssh fails – “Error – signandsend_pubkey: signing failed: agent refused operation”. This is most likely because the ssh agent is already running but isn’t able to find the private keys. To add the keys to the authentication agent, enter ssh-add. Also to see list of fingerprints of all identities added use ssh-add -l + To add a password for the user: sudo passwd ubuntu-username + To re-configure network at anytime: sudo console-conf

External Drive setup
1.I use two external hard-drives one as a primary and the other as a secondary. First format the drives: sudo fdisk /dev/sda
+ Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): o
Created a new DOS disklabel with disk identifier 0x8b913f43.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-1953458175, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-1953458175, default 1953458175):
Created a new partition 1 of type 'Linux' and of size 931.5 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

2.Format the partition and give it the label data. This label will be used to reference it for mounting later: sudo mkfs.ext4 -L data /dev/sda1
+ mke2fs 1.42.13 (17-May-2015)
/dev/sda1 contains a ext4 file system labelled ‘data’
last mounted on Sat Nov 18 08:38:49 2017
Proceed anyway? (y,n) y
Creating filesystem with 244182016 4k blocks and 61046784 inodes
Filesystem UUID: c03685e6-fc4d-4d69-b8cf-8b17b24f2e0a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

3.To mount the partition we’re forced to rely on systemd since most of Ubuntu core system is read-only and editing /etc/fstab is not an option. Mount units need to be named after the mount point directories they control. So create the media-data.mount unit: sudo vi /writable/system-data/etc/systemd/system/media-data.mount and add in the following content:

Description=Mount unit for data

4.Reload systemd to reflect the changes,Start and enable the mount volume so it gets automatically mounted:

sudo systemctl daemon-reload
sudo systemctl start media-data.mount
sudo systemctl enable media-data.mount

5.Make sure Ubuntucore is up to date and refresh:

sudo snap refresh
sudo reboot

After the reboot make sure /media/data is mounted and functional: sudo systemctl status media-data.mount

Install and configure Nextcloud as a snap

1.Install Nextcloud: sudo snap install nextcloud
2.Access the nextcloud install from any browser in the network using the IP address: http://192.168.0.xx, create an admin account and complete the installation.
3.Enable the ‘External Storages’ app under ‘Apps’.
4.Associate the removable media with nextcloud: sudo snap connect nextcloud:removable-media core:removable-media
5.Map /media/data with nextcloud in the external storage with the following settings:

Folder name: data
External storage: Local
Authentication: None
Configuration: /media/data
Available for: All

6.Setup encryption certificates: sudo nextcloud.enable-https self-signed
7.To access the setup pi3 server from outside the local network, you’ll need to map the dynamic dns provided by your ISP to a global address. I used no-ip and my netgear router to facilitate this.
8. Do note that when you upload files, by default they’re saved to the microSD card!! + here: /var/snap/nextcloud/common/nextcloud/data/NC_user/files. Read this forum for details.
9. If more than one user would be using the external data mount either install the ‘File access control’ app and setup rules or create folders for each person and just mount those folders for each user in the Nextcloud admin panel.

Weeknote 09 – Ashland and Taxtime

A glimpse of the past week and the few articles, podcasts, tools, videos and music that captivated my attention:

The last few weeks have been pretty ‘choppy’. Some recent developments on the work front has gotten us back to Boston. Always wonderful being back here. Looks like New-England has had a pretty mild winter and we’re making sure we take Shasta out as much as possible!

Over the next couple weeks we’ll have to make a few interesting decisions. Between grad programs, fellowships and other exciting opportunities; 2020 is already off to a happening start!

It’s tax filing time! I was super pissed with TurboTax last year. This year I helped file taxes for my in-laws using the FreeFillableForms option. Found it to be super easy and straight forward. Will most likely use it for my personal taxes too.

Interesting podcasts this week

Darknet Diaries: Chanced upon this podcast early this week while sifting through AntennaPod and the premise sounded pretty interesting – Hacking and cyber-warfare. My podcast consumption has drastically come down over the last few months. This will hopefully get me back on the podtrack!

Interesting tools this week

MineTime : Think ‘smarter’ calendars.

Digikam : Self hosted photo management with facial recognition! I’d probably pair this with my Nextcloud photo library over the next few days.

Interesting reads this week

Lifesaving rescue on Mount Washington: Yet another terrific read from Ty Gagne! Note to self to get that HikeSafe card.

Talking to youth about privacy, security and digital spaces: Wonderful piece, Ian. Loved the concept of identifying an ‘approach point’. Most of what he mentioned also applies to adults and more so elderly parents who’ve jumped on the digital scene without much awareness on the privacy implications!

The medications that change who we are: Not quite surprising but pretty intriguing read on how dependent we’re on medication these days. Think twice before you pop that pill!

Why Astrology matters: My family (prior generation) was (is?) a strong believer in Astrology. From making birth charts/Horoscopes, wearing different rings on the fingers to influence the ‘stars’, matching horoscopes prior to weddings, and most significantly to pick an auspicious time to travel; The sentiment has definitely changed over the last decade or so, but hey, it’s still there!

Astrology has stood the test of several hundred generations now and there’s got to be an iota of truth somewhere out there. That said, I still have an excruciatingly hard time believing that the stars and planets have anything to do with one’s life developments.

Opinion | We’re Banning Facial Recognition. We’re Missing the Point.: It all boils down to regulation. Or technology that’s able to shroud a person’s exteriors both physically, electrically and magnetically!

State of The Networks – Jan 2020

A quick rundown on the state of the home-servers I run or applications I host on the cloud.

Last week I opened up my Nextcloud instance for external access. Now, since my brother’s RPi4 was already exposed on the same network, I had to setup a reverse proxy on another RPi3 to access both simultaneously behind the router. Here’s the current setup:

Proxy server: An RPi3 running on Raspbian Buster Lite with HAProxy installed to handle the reverse proxy. Here’s the gist of the code that’s handling all the heavy lifting. Since SSL is handled by the other servers themselves, all I needed was a quick pass-through handshake from HAProxy.

Server 01: An RPi3 running on NextcloudPi essentially serving Nextcloud for all my file needs. Data is simultaneously backed up on a couple machines within the network. Decided against a remote backup [S3/Backblaze] for now.

Server 02: An RPi4 running on Diet-Pi and serving Pi-Hole and a Nextcloud instance. I’ve turned off DHCP on the Orbi router and delegated that to the Pi-Hole. Both the Pi-Hole and the router have static IPs assigned to the SBCs and my trusty Dell machine based on their MAC address. I’m debating if I should move the Pi-Hole over to the Proxy Server…

Beyond the home-lab, I have a droplet with DigitalOcean serving this website and a few other portals I manage. ServerPilot runs in the background on that droplet taking care of all the critical needs. I do intend to shift this over to a home-lab once I get hold of my ODroid XU4 which is currently in the Uganda shipment several thousand miles away in Chennai!

Early this year, I also procured a Hetzner cloud instance to test its stability and see if I could move over certain portals to it. Should say I’m pretty impressed! Running on Debian Stretch and powered by Yunohost, I installed PixelFed and Wallabag. Installation has never been any easier! One drawback for sure is that the code-base may be a bit lagged as it gets deployed on Yunohost. Nevertheless, it’s pure magic to see things getting installed with just a few clicks and not much back-end work.

And then, I manage a Moodle Bitnami instance running on an AWS instance. I intend to move it over to the Hetzner cloud over the next month or so.

Weeknote 02 – Snow mischief

A glimpse of the past week and the few articles, podcasts, tools, videos and music that captivated my attention:

Earlier this week I helped Sharath setup a nextcloud instance on the RaspberryPi 4 that we got him for Christmas. Installed the DietPi OS, moved the user data over to a 5TB WD disk and while at it also setup a pi-hole for the network.

Weather wise, this was one odd week. Had a good dusting of snow on Tuesday night and a balmy 60 degrees for most of the weekend. The kids had early school closures and we made sure we hit the trails.

Gone are the crawling days. Shasta has moved on to walking and she’s getting pretty good at it. Also her mischief quotient is raising by the day!

Meena found an interesting course in Tufts and has applied for the 2020 Fall deadline. Fingers crossed that she makes it! Some other exciting developments through this week might take us back to Boston this spring.

Interesting podcasts this week:

The Indicator from Planet Money: The Skyrocketing Cost Of Air Ambulances

Interesting reads this week:

Welcome to New Hollywood: Netflix has absolutely taken over the digital market. Oddly they rely on AWS!

Why parents are addicted to Calpol: So true! It struck me so starkly when we moved to the states several years back. It’s amazing how quickly my family pops in paracetamols without any second thoughts.

The Shadow Commander: Quite an interesting read on recent developments in Iran and it’s past.

Weeknote 51 – Clouds down south

A glimpse of the past week and the few articles, podcasts, tools, videos and music that captivated my attention:

Got a RaspberryPi 4 kit for my eldest brother. Can’t wait to set up a homeserver for him. On my nudging, the second eldest, setup a homeserver sometime back and we’re very impressed with the speed and crisp loading of the photos he’s currently hosting on a nextcloud setup. On a similar vein, I’m testing the cloud provider Hertzner. They’re super cheap and seem to be pretty good. Will probably port over my services from Digital Ocean over the next few months if I find them stable.

Was wonderful to see Nik perform in his year-end winter performance. The group sounded way professional! Also, Nancy had her track meet yesterday. She’s improved her pace a lot over the last year and it’s wonderful seeing her truly enjoy running.

We decided to have an early christmas gift exchange with the Baltimore family before we hit the road for Florida. Initial plan was to leave early on Saturday morning and reach Miss Bama’s home by the evening. As luck would have it, we noticed last night that we had to change the catalytic converter in the Sienna. Got that fixed first thing today at Firestone. Will now head down south, contingent on weather and traffic.

Interesting reads this week:

Network auto-latch

I realised the raspberry pi that hosts my nextcloud setup wasn’t quite latching back on to the network if the router was turned off or if the internet was sketchy. Was a pain to hard boot the device manually to reset it. Decided to write a short script to reset the network connection when it noticed something was off.

ping -c4 > /dev/null
if [ $? != 0 ] 
  echo "SOS..Restarting eth0 for network latch"
  /sbin/ifdown 'eth0'
  sleep 5
  /sbin/ifup --force 'eth0'

A chron job runs every 10 minutes to take pulse of the network, runs the above code and picks up connectivity without manual intervention!

Weeknote 41 – Networks and Carnatic notes

State of the network: With better access to the router and some re-wiring in the house, I got around rejigging my server setup. This will change once I get my Odroid shipped over. For now though, here’s my current setup:

    1. NexcloudPi installed on a Raspberry pi 3B+ board
    2. Diet-Pi installed on another Raspberry pi 3B+ board running the pi-hole

The SBCs and the modem are now connected to the UPS inverter, so hopefully that gets rid of the hard shutdowns. Might consider getting a stabilizer at some point in time. I am also leaning towards a more robust homelab system. Yet to whet the core setup and will probably explore that a year down the lane.

Fitness: Yet another good week spending time outdoors! A 5k barefoot beach run on Tuesday, 5.5k lap runs at the YMCA on Wednesday, 25mins breaststroke swim at MBC and 30min MAS training at YMCA on Thursday, and a 2k barefoot beach run on Friday.

Music: Spent friday evening listening to a Veena instrumental performance at Narada Gana Sabha. A family friend was playing with 107 other artists and I also ran into a college friend with whom I was out of touch for about 10 years now! The performance was a tribute to his grand-father. Small, small world! Below is a shoddy recording of one of the pieces they performed. One of my favorites.

Interesting tools this week:

    • If you need to find what other devices are connected to the wifi network that your device is connected to, and a whole lot of other details, the Fing app is wonderful place to start. The free app is pretty slick! I use it to identify IP addresses (and use that to update my pi-hole hosts file for a more human-friendly ‘client listing’)

Interesting reads this week:

    • Google’s Sycamore quantum computer apparently achieved quantum supremacy. John Preskill had a good article on this on Quanta Magazine. The next few decades is arguably going to be about computing prowess and the results thereof, and quantum supremacy is a huge move in that direction. Exciting times ahead!
    • Just read this brilliant Nat-Geo piece on Netherland’s sustainable farming practices and how that’s setting them to success as the world’s second largest exporters despite being a really small country!
    • An intriguing post on the Palm oil. A cousin who was visiting us last month mentioned how he’d moved away from all packaged foods since they extensively use Palm oil. While I agree with the sentiment of not using packaged food, I wasn’t quite aware of the influence of Palm-oil and how deeply ingrained it was in the asian food manufacturing ecosystem till I read this piece from the Guardian.

Bringing the cloud home

I finally got my Shoebox server setup working! I now have three Single board Computer [SBC] working in tandem behind my home router to accomplish what I’ve been wanting to do for quite sometime now – Setting up an easy-to-maintain, in-house server for all my data and web hosting needs. Fixing this all together has been a tremendous learning experience. I still need to weed out some pesky issues but I believe I have the bearing right now.

Here’s my current setup:

  1. NexcloudPi installed on a Raspberry pi 3B+ board
  2. Yunohost installed on an Odroid XU4 board
  3. Diet-Pi installed on another Raspberry pi 3B+ board

I’ve been using Nextcloud as my data storage solution for more than a year now. It does what I expect it to do and much more. NextcloudPi handles the intricate details and takes out the hassles that come with hosting data on personal servers.

On the ODroid-XU4, I installed debian stretch as the base OS and then manually installed Yunohost as my web server. I use ServerPilot on my Digital ocean servers and was looking for a close match while self hosting. Love YHs web-ui and they did seem to support quite a few web apps. I also have my eyes on cozy and caprover. Might explore these at a later point in time if decide to switch to a different SBC.

Both NextcloudPi and Yunohost have letsencrypt tools to setup and manage certificates for the domains/sub domains. While super useful, I realised to benefit from that feature, I had to rely on haproxy. With some pointers from the Nextcloud forum, I decided to use another pi to front as the main server. Installed Diet-pi on it since it’s just something I really liked and configured haproxy on it to map to the corresponding server based on the hostname. While at it, I also added in a switch between the router and various servers.

I still need to work on making this more robust. One niggling issue is the speed is heavily compromised. I’m guessing it’s do with my haproxy config and I should be able to fix it pretty soon. Once I have this sorted out, I need to spend some time hardening the security of the server, further configure Yunohost, device my backup strategies and finally moving my websites over from Digital Ocean.

ODroid XU4 SBC

Meena and my family gifted me an Odroid XU4 SBC earlier last month as a Christmas/B-day gift. One of my projects during the year-end holidays was to setup a robust home server; Essentially getting my webservers home from Digital Ocean, where they are currently hosted. This would be a terrific companion to the nextcloud fileserver that I setup earlier using a raspberry pi.

Earlier this week, I chanced upon DietPi and decided to launch it on the eMMC chip. One of the first things I did was to install Pi-Hole. With uBlock addons’ that should be some good riddance to ads across my home network! Would be interesting to keep track of these network pings to see what devices are needlessly calling ‘home’.

I’ve ported my web applications to the Odroid board and am currently testing out the server internally before I ‘turn on’ the traffic switch. All looks super-promising so far! Over the next few months, I’ll have to tweak the settings and tune this mini-beast a bit for performance. For now though, I’m more than happy with what it’s delivering!

Fired up!

Finally got around procuring a pi3 and setup the Nextcloud Box! Getting this up and running was super fun and pretty straight forward.

The OS Image that was delivered with the box was built for the pi2. So I had to format the drive with Gparted and flashed the pi3 image with Etcher (One nifty piece of software!). Once the hardware was fired up, it just took care of itself. The web install was a 1-click setup.

Early this year as I initiated taking more control over my data, I also setup a Nextcloud server on the cloud. It’s been about eight months now and am thoroughly impressed with it. With the incredible iOS and android apps and the nifty client for linux I’m more than convinced the take this a step further and setup my personal home server.

Over the next few weeks as I tinker more with this, I need to make this a more robust setup and make full use of the snappy Ubuntu core.


A quick list of personal projects that I am currently working on or plan to work on:

Cloud Migration

In 2017, I consolidated all my shared servers onto the cloud. With robust backups and more reliability, I now see a huge uptick in server stability and performance. A huge learning experience. Besides, I also get to tinker with minor projects on the cloud not having to deal with cumbersome restrictions of shared servers!


Publish Appa's Books

We’ve been wanting to publish appa’s articles and stories into a book for a few years now. The project never really gained traction for no concrete reason beyond the ‘false start’ issue. A few days back I heard about PressBooks and looks like this should address some of our main issues. The current target is to have at least one book published within the next three months.

2019 Update: Working on the second book


2018 Update: Published the first book – Smell of the soil!

  • Amazon KDP is a rip-off! Doesn’t make much sense to sell on them unless producing en-mass.
  • Decided to self-publish. Works for e-books. Need to figure out on-demand printing!


Build a home server

2019 Update:

  • Started using IP based sync in the home network. Way faster!
  • Working on setting up a background sync to a remote server – S3 / Backblaze / Glacier


2018 Update:

Tinkered with Rpi’s and ODroids. Currently using a NextCloud setup on an Rpi for my file and photo sync. A 1TB drive hosts the files and is governed by NCP installed on an RPi3B+. Files synchronized to my main laptop and backed up to a secondary laptop via Syncthing. A section of the files are also backed up to Meena’s laptop using the NC windows app.


I’ve been wanting to have a home server built for my personal files for a while now. Nothing too industrial, just something to have a local backup for my shared files and folders and to avoid reliance on other cloud services. NextCloud seems to be a great option and though I procured the hardware (besides the raspberry pi3) sometime back, I haven’t really had the chance to fire it up and configure it.

Setup a personal RSS reader

2020 Update:

Might possibly migrate to FreshRSS soon. Powered by Yunohost, I’ve currently self-host Wallabag for my read-later needs.


2019 Update:

For a long time I’ve always wanted to setup a self hosted RSS reader. Was never really satisfied with the free readers available online. Fever was the one I was super keen on setting up. Looks like the project was orphaned earlier this year. Was using FreshRSS for sometime and decided to move on to TheOldReader till I find a self hosted solution. Would ideally like to implement an Indieweb friendly version sometime soon. Sticking to Instapaper for article archivings.


Learn Spanish

I’ve been wanting to learn a foreign language for a while now. Dabbling between German and Spanish for a while now. Since I work with a team in Mexico on a regular basis, Spanish looks like a good target. Need to chalk out a game-plan for this.