Basic resume site written with Python with Flask, Bootstrap, and a YAML config file. https://jessebot.work
Find a file
2022-10-06 15:00:48 +02:00
config switching to hosted bootstrap js and local nerdfonts 2022-10-05 23:40:02 +02:00
scripts adding personal routes for later and a gunicorn config 2022-10-05 14:30:26 +02:00
static fix docker file for local run and update padding one last time for smaller phones 2022-10-06 14:38:08 +02:00
templates fixing centering of icons and the way the corner ear folds over 2022-10-06 14:04:53 +02:00
.dockerignore fixing images, and moving stuff to do later into scripts 2022-10-05 14:01:06 +02:00
.gitignore adding personal routes for later and a gunicorn config 2022-10-05 14:30:26 +02:00
app.py fixing up ancient CSS file to be less poorly formatted, extracting variables from config file better 2022-10-06 08:55:38 +02:00
Dockerfile changing from 8000 to 8080 for gunicorn port 2022-10-06 14:41:11 +02:00
flask_start.sh remove adapter for apache since we don't use that anymore and update the flask start to be accurate, change routes to app 2022-10-05 14:38:57 +02:00
gunicorn_config.py adding personal routes for later and a gunicorn config 2022-10-05 14:30:26 +02:00
LICENSE more notes and docs and a license :D 2022-10-06 15:00:48 +02:00
README.md more notes and docs and a license :D 2022-10-06 15:00:48 +02:00
requirements.txt adding personal routes for later and a gunicorn config 2022-10-05 14:30:26 +02:00

tiny_personal_website

This is a Python based CMS (content management system) for a small personal website aimed at first and foremost being a resume.

I originally wrote this 7 or 8 years ago, and recently absolutely borked my newer website, resulting in me quickly resurrecting this thing in about a day and a half. This one does the same thing, but better, and faster, with less js.

Feel free to take anything you need :) But keep it open source. You gotta. No, like you literally have to.

Under the Hood

  • Bootstrap v5 - frontend js/css

  • Flask - backend routing

  • Gunicorn - serving website

  • YAML - config file

  • The Open Source Community <3 - answers to all your questions for free

Dev and Testing

  1. Clone this github repo into your desired webroot.

  2. Install missing libraries if any: pip3.10 install -r requirements.txt

  3. You can configure everything (e.g. website title, your photo, quote, etc) by renaming config/config.yaml.sample to config.yaml and replacing all the sample data with your own real data.

  4. All changes to HTML, CSS, and Python, or your core YAML will require a restart of gunicorn or a rebuild of the docker container.

  5. for docker, you can just do:

    docker build . -t <name of tag you want>
    
    # to test locally, you can do -p 8000:8080 to forward
    # port 8080 on the container to port 8000 on your local machine
    docker run --rm -p 8000:8080 <name of the tag you used>
    

    For testing locally, without a docker rebuild:

    gunicorn app:app
    

Then you can go to http://127.0.0.1:8000 in a browser to view your changes.

Deploying on an app platform

You want the following command plugged into where-ever this runs (e.g. digital ocean app platform):

gunicorn --worker-tmp-dir /dev/shm app:app

And the container port of note is port 8080.

Frontend Dev Notes

I found this guide on vertically centering items and it helped a lot. Basically both the body and base container you have need to be h-100 and vh-100 and for extra security, add min-height: 100vh; to the CSS for the body.