Skip to content

calum4/personal-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


Personal Website

ChangelogUsageLicenseContributing

Overview

A customisable terminal-style website, intended to act as a portfolio.

image

Changelog

The full changelog can be found at CHANGELOG.md

[2.0.0]

Added

  • date command, see config
  • Command aliases, see config
  • (Docker) Add files to ./public/public/ to have them served at /public/. Does not require rebuild to reflect changes
  • pgp command, see config

Fixed

  • Tab completion no longer clears the current command

Changed

  • (Docker) BREAKING: Moved compose.yml to compose.example.yml
  • (Docker) BREAKING: NGINX_SERVER_NAME environment variable is now respected. If unset, a 403 error will be returned
  • (Docker) SSL certificates now use RSA 4096

Usage

Docker (Recommended)

  1. Clone the repository
  2. Copy config.example.json to config.json and configure as you desire. Fields beginning with __comment describe the related non-comment field.
  3. Copy compose.example.yml to compose.yml and configure as you desire. Note - binds to 127.0.0.1 by default, to expose to the internet by default, bind to 0.0.0.0. For environment variables, view here.
  4. Copy any files you wish to be served alongside your website to ./public/public/.
  5. Run the container with Docker Compose docker compose up -d --build.
  6. The container will now be bound to 127.0.0.1:443 using a self-signed certificate generated on first start-up.
Bring your own cert

If you wish to use your own certificate instead of using a self-signed, that is possible.

The startup script nginx/5-ssl.sh checks for the presence of both inside the container at:

  • /etc/ssl/personal-website/personal-website.key
  • /etc/ssl/personal-website/personal-website.crt

Bind mount your cert and private key to these locations and Nginx will use your cert.

Environment Variables

Name Description
NGINX_SERVER_NAME Used in the Nginx configuration template to respond to the correct server name. By default will respond to requests on 127.0.0.1. For more information view the Nginx wiki

Build and deploy manually

  1. Clone the repository
  2. Copy config.example.json to config.json and configure as you desire. Fields beginning with __comment describe the related non-comment field.
  3. Install dependencies, npm install
  4. Deploy dist/personal-website/browser anywhere you wish.

License

Licensed under either of

at your option.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

See CONTRIBUTING.md.

Acknowledgement

Special thanks to m4tt72 for inspiring the design.