aboutsummaryrefslogtreecommitdiffstats

Source Repository for therudes.com

Build Status GitHub license Open Issues Maintenance

This is the source repository for the website therudes.com. This is a static site, built using the Jekyll scripting language. The server is only required to server staic files.

Table of Content

Modifying the site

Changing the Front Page

Changing Members Content

Building the site

This site may be build on one system, then transferred to another system to be served. This document will walk you threw installing this site on a Ubuntu server, but that does not mean it will not work on other system.

Installing required software

Before starting, you must installed the below required packages.

apt update && apt -y install git ruby ruby-dev

Then install the necessary Ruby Gem's

gem install rouge
gem install json
gem install bundler
gem install kramdown
gem install therubyracer
gem install jekyll
gem install jekyll-sitemap

Downloading the source code

After downloading the required packages, you must install the git repository.

git clone https://github.com/mattrude/therudes.com.git
cd therudes.com

Compiling the site

Once you have everything, you must build the site.

bundle exec jekyll build

The Current config will put the finished site in /var/www/therudes.com/

Serving the site

Since this is a static site, only a simple web server is required to correctly server this site. The site is currently set to link to TLS https encrypted pages, you may disable this function via the url item in the _config.yml file.

Letsencrypt Build

To server this site, you first must install the necessary packets.

apt -y install nginx letsencrypt

And start nginx

service nginx start

Then add the below into your nginx.conf file.

#----------------------------------------------------------------------
# therudes.com
#----------------------------------------------------------------------

server {
    listen 80;
    listen [::]:80;
    server_name therudes.com;
    server_name www.therudes.com;

    location '/.well-known/acme-challenge' {
        default_type "text/plain";
        root /var/www/therudes.com;
    }

    location / {
        return              301 https://$server_name$request_uri;
    }
}

And reload the nginx config file.

nginx -s reload

After nginx has reloaded, and the site has been built, using the above setup, you need to create a new SSL key and request a certificate vi letsencrypt.

letsencrypt certonly --webroot -w /var/www/therudes.com -d therudes.com -d www.therudes.com

After successfully creating your new SSL Key and Certificate, you need to add the reset of the config to your nginx.conf file.

Add the below section to just below the previously added section to your nginx.conf file.

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name therudes.com;
    server_name www.therudes.com;
    root /var/www/therudes.com;
    index index.html;

    ssl_certificate         /etc/letsencrypt/live/therudes.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/therudes.com/privkey.pem;
    ssl_stapling on;

    error_page 404 /404.html;
}

And once again reload the nginx config file.

nginx -s reload

Nginx Full Config

Add the below to your nginx config file, and reload your config.

#----------------------------------------------------------------------
# therudes.com
#----------------------------------------------------------------------

server {
    listen 80;
    listen [::]:80;
    server_name therudes.com;
    server_name www.therudes.com;

    location '/.well-known/acme-challenge' {
        default_type "text/plain";
        root /var/www/therudes.com;
    }

    location / {
        return              301 https://$server_name$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name therudes.com;
    server_name www.therudes.com;
    root /var/www/therudes.com;
    index index.html;

    ssl_certificate         /etc/letsencrypt/live/therudes.com/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/therudes.com/privkey.pem;
    ssl_stapling on;

    error_page 404 /404.html;
}

License

The Source Repository for therudes.com
Copyright (C) 2016-2019 - Matt Rude <[email protected]>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.