Raspberry Pi ideas

Pi4B Pi3B Pi3b+ and PiZeroWs on table

A Raspberry Pi is one of the things that you should consider getting if you are a computer programmer.

Just bought a Raspberry Pi but not sure what to do with it? If that is the case, you had come to the right place. On this page, you will find plenty of ideas on how to use your Raspberry Pi.

By following the ideas here, you will understand your Raspberry Pi and the Linux operating system better. In addition, you will be able to setup your Raspberry Pi to serve some interesting use cases at home.

For example, you will find instructions on how to setup a CCTV for surveillance, Web IDE to help you code everywhere you go, project management platform for tracking your project statuses and etc.

Setting up a fast git server on Raspberry Pi Zero W with Go Git Service (Gogs) and Raspbian Stretch Lite

The Go Programming Language is a compiled programming language created by Robert Griesemer, Rob Pike, and Ken Thompson from Google in 2009. With Google Go, it is possible to build programs that run efficiently on minimum hardware resources. The compiled code runs close to the speed of C. Use cases of Go Programming language includes Docker, Kubernetes and Go Git Service.

If you happen to need a self-hosted git server to track software projects that you build on the side, you can consider using Go Git Service. With the Raspberry Pi Zero W bundle set, you can set up a fast git server that does not take up too much space on your desk.

This post details how you can setup a fast git server on Raspberry Pi Zero W with Go Git Service and Raspbian Stretch Lite.

How to setup Raspbian Stretch Lite with remote configuration over WiFi on first boot

Two of the good features of Raspbian Stretch Lite is that it allows us to enable the SSH server and connect to our WiFi network before it boots up for the first time.

Combining these two features is useful for projects based on Raspberry Pi Zero W as we can configure Raspbian Stretch Lite via SSH without connecting extra peripherals to it.

This post documents how you can enable remote configuration of your Raspbian Stretch Lite over WiFi on first boot.

How I setup a Raspberry Pi Zero W CCTV camera with motionEye and Raspbian Stretch Lite

I had previously built a Raspberry Pi Zero W CCTV camera with motionEyeOS which was connected to the Wifi network of my old DLink router.

After I started using Linksys AC1900 Dual Band Wireless Router as my home router, I could no longer connect to that Raspberry Pi Zero W CCTV camera.

After reinstalling motionEyeOS a couple of times on my Raspberry Pi Zero W, I determined that motionEyeOS is not suitable for this new Wifi network.

On the other hand, my setup of WordPress on Raspberry Pi Zero W with Raspbian Stretch Lite, nginx, mariadb and PHP was able to connect to my new Wifi network, even after multiple system reboots.

Hence, I figured that if I wanted to build a Raspberry Pi Zero W CCTV camera that can connect to my new Wifi network, I could use Raspbian Stretch Lite as the base operating system and install motionEye for the web frontend to view the camera footage.

This post documents how I setup a Raspberry Pi Zero W CCTV with motionEye and Raspbian Stretch Lite.

How I setup Jenkins on my Raspberry Pi 3 with Raspbian Stretch Lite

Jenkins is a renowned open source automation server that can help offload programmers from performing repetitive tasks like:

  • running unit tests to make sure new code does not break existing codes.
  • compiling and packaging the binaries from codes and dependencies.
  • deploying new binaries to testing servers.
  • checking whether production server is up and running.
  • and etc.

If you have a Raspberry Pi 3 and you want to automate some of the tasks for your side projects, you may want to consider setting up Jenkins on your Raspberry Pi 3 with Raspbian Stretch Lite as the operating system.

This post documents how I setup Jenkins on my Raspberry Pi 3 with Raspbian Stretch Lite.

Setting up WordPress on Raspberry Pi Zero W with Raspbian Stretch Lite, Nginx, MariaDB and PHP as the LEMP stack

A Raspberry Pi Zero W is a small and capable computer that included a Wi-Fi chip for projects that requires an Internet connection.

Apart from running client programs on the Raspberry Pi Zero W, it is equally capable of being a web server. Since I had a spare Raspberry Pi Zero W lying around the house and there are good reasons to blog as a programmer, I decided to use it as a WordPress server to collect content for a new blog project.

This post documents how I setup WordPress on a Raspberry Pi Zero W with Raspbian Stretch Lite, nginx, MariaDB and PHP as the LEMP stack.

How to setup Raspbian Stretch Lite on Raspberry Pi Zero W to run Python 3 applications

With Wi-Fi included, the Raspberry Pi Zero W is very useful for implementing embedded projects that require Internet connection.

Apart from using the Raspberry Pi Zero W for CCTV surveillance, we can run customized Python 3 applications on a Raspberry Pi Zero W for various use cases.

Pairing the official operating system for Raspberry Pi with Python 3, we will be able to get a versatile computer to do our bidding.

Anticipating the need to setup a version of Raspbian Lite on Raspberry Pi Zero W for future Python 3 projects, I created this post to document the steps of how to do so with Raspbian Stretch Lite.

How to host multiple websites from home

A website is a collection of related web pages, including multimedia content, that people can access anytime from anywhere of the Internet.

A website facilities the exchange of information between multiple parties. For instance, when you read the content of this page, I would have, hopefully, share the information of how to host multiple websites from home.

With the proliferation of single-board computers, it is now inexpensive to deploy computing devices to serve web applications from home. If you do not switch off your Internet modem at home, you may want the option of accessing some of these devices when you are away from home.

For example, here are some web applications / websites that you may host from home:

This post documents some procedures that we can follow in order to host multiple websites from home.

Setting up WordPress on Raspberry Pi 3 with Raspbian Stretch Lite, Nginx, MariaDB and PHP 7 as the LEMP stack

Raspbian Stretch was released on 17th August 2017 and this will mean that we will be able to get a variant of Debian 9 on our Raspberry Pi. With Raspbian Stretch, we will be able to run WordPress or any PHP framework with PHP 7.0 which Zend had indicated a performance boost of up to two folds as compared to PHP 5.6.

Just like the benefits that blogging brings to a programmer, the performance boost that PHP 7 brings about is a good reason for me to port my blog over to PHP 7.

Before porting my blog over to PHP 7, it will make sense for me to perform a little proof of concept on my Raspberry Pi 3 first. With Raspbian Stretch Lite, I can see for myself that my blog runs well with PHP 7.0 before spawning a new Digital Ocean instance for Techcoil.

This post documents how I setup an instance of WordPress on Raspberry Pi 3 with Raspbian Stretch Lite, nginx, MariaDB and PHP 7 as the LEMP stack.

Setting up ProjectSend on your Raspberry Pi 3 for sharing files – the LEMP way

Do you have large files that you want to share with your friends or clients? Do you keep your Internet connection on 24-7?

Compared to using Google Drive, Dropbox or other on-the-cloud file sharing software, hosting your own file sharing software when you never switch off your Internet has a few advantages.

Provided that your friends don’t share your files with others, your files stay at home and on your friends’ machines. Furthermore, you are only limited by the amount of storage that you have on your machine.

If you have a Raspberry Pi 3 in your house, you may want to consider setting up ProjectSend on your Raspberry Pi 3 for sharing files with others. This post shows how to do it with a LEMP stack.