Raspberry Pi home server: Difference between revisions

From munkjensen.net/wiki
Line 30: Line 30:
  sudo apt-get install nginx php-apc mysql-server
  sudo apt-get install nginx php-apc mysql-server


Then, because PHP 7 is not available in jessie repo I get it from the new stretch repo:
Then, because PHP 7 is not available in jessie repo I get it from the [https://wiki.debian.org/DebianStretch stretch repo]:


sudo gpg --keyserver pgpkeys.mit.edu --recv-key  8B48AD6246925553     
sudo gpg -a --export 8B48AD6246925553 | sudo apt-key add -
sudo gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010     
sudo gpg -a --export 7638D0442B90D010 | sudo apt-key add -
  sudo echo "deb http://httpredir.debian.org/debian stretch main contrib non-free" | sudo tee /etc/apt/sources.list.d/debian-stretch.list
  sudo echo "deb http://httpredir.debian.org/debian stretch main contrib non-free" | sudo tee /etc/apt/sources.list.d/debian-stretch.list
  sudo apt-get update -y
  sudo apt-get -y update
  sudo apt-get install php7.0-fpm php7.0-curl php7.0-gd php7.0-cli php7.0-mcrypt php7.0-mysql -t stretch
  sudo apt-get -y install -y php7.0-fpm php7.0-curl php7.0-gd php7.0-cli php7.0-mcrypt php7.0-mysql -t stretch
  sudo rm /etc/apt/sources.list.d/debian-stretch.list
  sudo rm /etc/apt/sources.list.d/debian-stretch.list
  sudo apt-get update -y
  sudo apt-get -y update


== LetsEncrypt ==
== LetsEncrypt ==

Revision as of 00:19, 16 April 2017

About this page.

This page contains explanation of the things i did to make different projects live together on a single Raspberri Pi.

https://www.pestmeester.nl/ is the base inspiration for my Home Server.
https://github.com/pi-hole/ provides super easy installation of an AdBlocking Domain Name Server functionality.
https://github.com/pivpn/ provides super easy installation and administration of OpenVPN Server funnctionality.

Hardware

Raspberry Pi 3 Model B, 1GB Ram
4 Gb MicroSD card.
USB Harddrive, 500 Gb SSHD
Raspberry Pi Camera Board v2.

Basic installation

Download and write Raspian Lite to the MicroSD card

Raspi-config

Go thrugh all the menu points of the Rapsberry Pi SOftware Configuration Tool, and change the basic configuration to fit the needs of this Home Server.

Hardening + SSH

Follow the guide: Hardened SSH daemon using the 'sudo' command when root powah is required.

Add USB HD

I configured /dev/sdb1 to be mounted on /data, not the strange UUID..

Nginx, PHP7, MySQL

First the 'easy' stuff. Answer all install questions wisely!

sudo apt-get install nginx php-apc mysql-server

Then, because PHP 7 is not available in jessie repo I get it from the stretch repo:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  8B48AD6246925553      
sudo gpg -a --export 8B48AD6246925553 | sudo apt-key add -
sudo gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010      
sudo gpg -a --export 7638D0442B90D010 | sudo apt-key add -
sudo echo "deb http://httpredir.debian.org/debian stretch main contrib non-free" | sudo tee /etc/apt/sources.list.d/debian-stretch.list
sudo apt-get -y update
sudo apt-get -y install -y php7.0-fpm php7.0-curl php7.0-gd php7.0-cli php7.0-mcrypt php7.0-mysql -t stretch
sudo rm /etc/apt/sources.list.d/debian-stretch.list
sudo apt-get -y update

LetsEncrypt

OwnCloud

PiHole DNS

This must be installed using the option to NOT install the normally included webinterface, because that will require lighttpd, wich is not compatible with OwnCloud ;-)
All PiHole administration must consequentially be done using terminal commands.

PiVPN server

WebCam, Htaccess password protected

Public accesible webpage.