Euvaz / InfraFolio

Portfolio website written in Go, utilizing Python scripts, and deployable as a microservice.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

InfraFolio

This portfolio website project is a Go-based implementation utilizing the gin library as the web framework, with built-in HTML templating support via the multitemplate library for efficient and reliable website rendering.

To maintain the website's currency, the project incorporates a Python script, which interfaces with GitHub's API to retrieve updated data on my project repositories and is executed automatically through a Cron Job via the provided crontab file. This data is stored in an SQLite database and automatically propagated to the website's pages.

This project is optimized for deployment as a microservice using a Docker images via the provided Dockerfile. The images are subjected to robust linting, testing, and building processes through GitHub Actions, ensuring the highest quality and reliability.

With its technical implementation and advanced functionalities, this project offers an effective way to exhibit my web development skills and showcase my professional experience, while ensuring visitors are always up-to-date on the my latest endeavors.

Overview

πŸ“‚ Repository structure

cron        # Crontab files
scripts     # Python helper scripts
website/    # Website files
β”œβ”€β”€ static  # Static website resources
└── tmpl    # HTML templates

Usage

Docker (Recommended)

A Dockerfile is provided and kept regularly updated for convenient deployment.

Build

Firstly, the Docker image will need to be built:

$ docker build -t infrafolio .

Run

Afterwards, the Docker image can be ran:

$ doker run -itdp 8080:8080 infrafolio:latest

Manual

The service can be ran manually after downloading dependencies and compiling the binary. Note that this will require a Systemd/OpenRC unit file be configured manually, as this is intended to be ran as a microservice.

Prereqs: - Go 1.19 - Python3

Verify Prereqs

Ensure Go and Python are installed:

$ go version
go version go1.19.8 linux/amd64
$ python --version
Python 3.10.11

Download Dependencies

Go:

$ pip install -r scripts/requirements.txt

Python:

$ go mod download

Compile Binary

$ go build

About

Portfolio website written in Go, utilizing Python scripts, and deployable as a microservice.

License:GNU General Public License v3.0


Languages

Language:Go 39.3%Language:CSS 35.9%Language:Python 18.4%Language:Dockerfile 6.1%Language:Shell 0.3%