Lumen Jwt Authentication

Programming  Tutorials 
This post will go over how to include JWT (Json Web Token) authentication into an existing Lumen API. JWT is a standard for API authentication that is URL safe, and can pass manage small amounts of state too. You may have to edit more files depending on what state your API is already in but if you have an existing API you should be able to manage this. It is assumed that the existing api is just the result of creating a basic Lumen project with the composer tool.
Read more →

Proxmox Synology DSM Virtual Machine

Tutorials  Software 
My first NAS was a Synology DS218. It was amazing for me at the start, however, I quickly outgrew its functionality and went down the route of an unRaid server. Before doing this, I researched potential applications that could replace the services I used on the Synology. For example, JellyFin instead of VideoStation. One service I couldn’t find a good replacement for was Moments. This is a photo management app similar to Google Photos.
Read more →

Traefik with Authelia Authentication

Software  Tutorials 
This is a long post with several long configuration file so TLDR; download the docker-compose file, the OpenLDAP base.ldif and the Athelia config.yml ! Please change all the usernames and passwords in the above files ! Authelia Protect your applications with Single Sign-On and 2 Factor. Authelia is an open-source full-featured authentication server available on Github . Traefik Traefik is an open-source Edge Router that makes publishing your services a fun and easy experience.
Read more →

pfSense Setup

Software  Tutorials 
pfSense Basic Configuration I recently restructured my Proxmox server so that all traffic incoming and outgoing, goes through a pfSense router. The main goal of this is to provided consistent IP addresses to all the virtual machines and containers running on the host. The general setup of pfSense went smoothly, for the most part. If at any point you lose access to the dashboard becuase of the firewall rules, you can disable them temporarily by running pfctl -d
Read more →

Raspberry Pi – PiHole DNS Server

Software  Tutorials 
Raspberry Pi – PiHole DNS Server NOTE: I had to disable the systemd-resolve service so that DNS requests where resolved by PiHole and not the default system service. $ sudo systemctl disable systemd-resolved.service $ sudo service systemd-resolved stop Running your own network wide DNS server can have its benefits. The reason for me setting this up is that I finally got fed up seeing large, in your face, adverts on my phone at home.
Read more →

Django Notes – Part 3

Programming  Tutorials 
API Access to the Notes To give our web application an API we are going to be using the REST framework. For our API to work correctly we need to provide ways for the application to serialize data, that is, convert the database objects into JSON. We will need to create a serializer object for each of the data objects we want to be able to access. Firstly, we need to create the directory structure so go ahead and create the following directories/files inside our notes/ folder:
Read more →

Django Notes – Part 2

Programming  Tutorials 
Securing the Application Now that we can view our notes on the website, we are going to want a login system. Currently anyone can navigate to our website and see all of our notes. Not ideal. To secure our site we will be using a combination of Djangos built-in auth module and crispy forms. First off we will add the auth modules URLs to the project so open up the URLs file in the project directory and add the following.
Read more →

Django Notes – Part 1

Programming  Tutorials 
Creating the Application To start, we will create a virtual environment for our project and install the required libraries mkdir DjangoNotes cd DjangoNotes python3 -m venv venv source venv/bin/activate pip install -r requirements.txt Now that we have our environment setup we can create out Django application. django-admin startproject DjangoNotes python manage.py startapp notes Whilst we are still doing some admin setup, we need to initialise our database and create ourselves a superuser.
Read more →