Automated Deployment and Backup for Static Sites

github repo

A collection of scripts and configurations for building, deploying, and backing up a static site, along with LaTeX resume templates. This repository automates deployment workflows, dependency management, and Dropbox backups for the site hosted at cv.jnapolitano.io.

Features

  • Automated deployment scripts using GitHub Pages and shell scripts
  • Backup functionality to Dropbox via Python API
  • Build pipeline automation with Python and Makefile integration
  • LaTeX resume templates for easy customization and PDF generation
  • Dockerfile for containerized environment setup
  • Various utility scripts for installation, setup, and maintenance

Tech Stack

  • JavaScript (primary language noted)
  • Python 3.5+ for backup and build scripts
  • Bash shell scripting for deployment and setup automation
  • Makefile for build automation
  • Docker for containerization
  • Dropbox API for backup integration
  • LaTeX for resume formatting

Getting Started

Prerequisites

  • Python 3.5 or higher
  • pip package manager
  • Dropbox account and API token
  • Make utility
  • Git

Installation

Clone the repository:

git clone https://github.com/justin-napolitano/jnapolitano.io.git
cd jnapolitano.io

Install Python dependencies:

pip install -r requirements.txt

Usage

  • To build the site:
make html
  • To deploy the site to GitHub Pages:
./deploy.sh
  • To back up the built HTML to Dropbox:
python backup_html.py
  • To install required system dependencies and setup environment:
./install.sh
  • To uninstall or clean up:
./uninstall.sh

Project Structure

acp.sh            # Shell script, purpose assumed for automation
backup_html.py    # Python script to back up build/html folder to Dropbox
chtml.sh          # Shell script, likely related to HTML processing
deploy.sh         # Deploys site to GitHub Pages
deployz.sh        # Alternative deploy script
Dockerfile        # Docker environment setup
...               # Various shell scripts for setup, push, pull, install, uninstall
latex/            # LaTeX templates and resume files
label_list.py     # Python script for reading pickle files related to docs
Makefile          # Build automation rules
overview.rst      # Documentation overview
python_build.py   # Python build pipeline automation
README.md         # This file
requirements.txt  # Python dependencies
source/           # Sphinx documentation source

Future Work / Roadmap

  • Consolidate and document all shell scripts with clear usage instructions
  • Enhance backup script with error handling and token management
  • Add unit tests for Python build and backup scripts
  • Improve Dockerfile for full environment reproducibility
  • Expand LaTeX resume templates with more customization options
  • Integrate CI/CD pipeline for automated testing and deployment

Notes

This README assumes the primary purpose is managing a static site with deployment and backup automation, alongside LaTeX resume management. Some scripts and files have unclear roles and would benefit from additional documentation.

hjkl / arrows · / search · :family · :tag · :datefrom · :dateto · ~/entries/slug · Ctrl+N/Ctrl+P for suggestions · Ctrl+C/Ctrl+G to cancel
entries 201/201 · entry -/-
:readyentries 201/201 · entry -/-