diff --git a/README2.md b/README2.md new file mode 100644 index 0000000..a27eaaa --- /dev/null +++ b/README2.md @@ -0,0 +1,143 @@ +# Let's Encrypt + +## Working with NGINX configs locally + +Sync your local file to the server (run after every update) +```bash +rsync -rtvpl path/to/local/leviolson.com.conf base-droplet:/etc/nginx/sites-available/ +``` +Create a symlink in nginx `sites-enabled` +```bash +ssh base-droplet ln -s /etc/nginx/sites-available/leviolson.com.conf /etc/nginx/sites-enabled/ +``` +Restart Nginx after each `rsync` command +```bash +ssh base-droplet sudo service nginx restart +``` + +## Setup NGINX for cert creation +Nginx must be minimally configured at this point to allow port 80 to work and not fail trying to access port 443 or redirecting you. Our main nginx config (below) tries to redirct to HTTPS which would cause Let's Encrypt to fail. + +```nginx +server { + listen 80; + server_name leviolson.com www.leviolson.com; + + location / { + proxy_pass http://localhost:3000; # port must match the same as the node app + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } +} +``` + +Sync this file: +```bash +rsync -rtvpl ./leviolson.com.conf base-droplet:/etc/nginx/sites-available/ +``` +Restart Nginx: +```bash +ssh base-droplet sudo service nginx restart +``` + +## Create the cert + +```bash +sudo certbot certonly --nginx --manual -d leviolson.com -d www.leviolson.com +``` + +This will start the process of generating a cert for the two domain names provided. + +As part of that process it will look for `.well-known/acme-challenge/{file}` where `{file}` is provided by the command output. The contents of that file are provided as well. + +Something like the following will create this file for you: + +```bash +echo "long string provided" > {file} +``` + +After creating the file(s), you can complete the cert process and at that point you need to change the nginx conf file. + +## NGINX final state + +```nginx +server { + if ($host = www.leviolson.com) { + return 301 https://leviolson.com$request_uri; + } + server_name leviolson.com www.leviolson.com; + + location / { + proxy_pass http://localhost:3000; # port must match the same as the node app + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/leviolson.com-0001/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/leviolson.com-0001/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot +} + +server { + if ($host = leviolson.com) { + return 301 https://$host$request_uri; + } + if ($host = www.leviolson.com) { + return 301 https://leviolson.com$request_uri; + } + + server_name leviolson.com www.leviolson.com; + listen 80; + return 404; +} +``` + +You'll want to verify the location of the `*.pem` files linked in the nginx config above. +```bash +ssh base-droplet ls -al /etc/letsencrypt/live/leviolson.com-0001/ +``` +This should return something like the following: +``` +total 12 +drwxr-xr-x 2 root root 4096 Jul 20 18:14 . +drwxr-xr-x 7 root root 4096 Jul 20 19:21 .. +lrwxrwxrwx 1 root root 42 Jul 20 18:14 cert.pem -> ../../archive/leviolson.com-0001/cert1.pem +lrwxrwxrwx 1 root root 43 Jul 20 18:14 chain.pem -> ../../archive/leviolson.com-0001/chain1.pem +lrwxrwxrwx 1 root root 47 Jul 20 18:14 fullchain.pem -> ../../archive/leviolson.com-0001/fullchain1.pem +lrwxrwxrwx 1 root root 45 Jul 20 18:14 privkey.pem -> ../../archive/leviolson.com-0001/privkey1.pem +-rw-r--r-- 1 root root 692 Jul 20 18:14 README +``` + + +Sync this file: +```bash +rsync -rtvpl ./leviolson.com.conf base-droplet:/etc/nginx/sites-available/ +``` +Restart Nginx: +```bash +ssh base-droplet sudo service nginx restart +``` + +## Some helpful debugging commands + +```bash +pm2 status +``` + +```bash +journalctl -xe +``` + +```bash +sudo ufw status +``` + +This should include the port you are serving if you wish to have that port accessible to the public as well. \ No newline at end of file diff --git a/posts/tesla-model-x.html b/posts/tesla-model-x.html new file mode 100644 index 0000000..8fc7339 --- /dev/null +++ b/posts/tesla-model-x.html @@ -0,0 +1,56 @@ + + + + + 2016 Tesla Model X P90DL + + + + + + + + + + + + +

2016 Tesla Model X P90DL

+

Meet Bolt - Our Model X

+

Our 2016 Tesla Model X

+

In preparation for the eventual Cybertruck release, we are selling our very well taken care of Model X.

+

Driver Seat

+

This vehicle has all the upgrades available, and includes:

+ +

This vehicle is LOADED.

+

Suspension Settings Menue

+

All doors can be operated from the Center Screen

+

Doors

+ + + \ No newline at end of file diff --git a/posts/tesla-model-x.json b/posts/tesla-model-x.json new file mode 100644 index 0000000..87fd873 --- /dev/null +++ b/posts/tesla-model-x.json @@ -0,0 +1,9 @@ +{ + "title": "Tesla Model X - Levi Olson", + "permalink": "/posts/tesla-model-x", + "created_at": "2020-08-06T18:11:11-06:00", + "created_at_short": "2020-08-06", + "post_title": "tesla model x", + "active": "posts", + "content_file": "tesla-model-x.html" +} \ No newline at end of file diff --git a/posts/tesla-model-x.md b/posts/tesla-model-x.md new file mode 100644 index 0000000..bf377d6 --- /dev/null +++ b/posts/tesla-model-x.md @@ -0,0 +1,57 @@ +# 2016 Tesla Model X P90DL # + +Meet Bolt - Our Black 6 seater Model X w/Ludicrous upgrade! + +![Our 2016 Tesla Model X](../public/images/4235_passenger-rear.png) + +In preparation for the eventual Cybertruck release, we are selling our very well taken care of Model X. + +![Driver Seat](../public/images/145108_driver-seat.jpg) + +This vehicle has all the upgrades available, and includes: + +* Upgraded Premium Sound package +* Cold Weather package +* All 6 seats heated +* Front driver and passenger heated AND Cooled/Ventilated seats +* LUDICROUS upgrade (0-60 in 3.0 seconds) +* 90 kWh battery pack +* Auto-presenting front driver door (as you walk up with the key, the door opens automatically) +* Advanced keyfob allows for opening all doors individually or closing them all with the touch of a button +* Falcon-wing doors +* Loads of storage space +* Rear fold flat seats +* Additional storage locker behind rear seats +* Front-trunk (frunk) +* Automatic air suspension `Very High`, `High`, `Standard`, `Low`, and `Very Low` settings +* When set to `Very High` or `High` a GPS position is used to automatically raise the next time you visit the same location +* Summon (pull into or out of a parking space w/o being in the vehicle) +* Autopilot (steering within well marked roads) AP1 + * Many people believe this is a superior Autopilot driving experience to the newer camera-only systems provided in late-model Tesla vehicles +* Adaptive Cruise (keeps speed to vehicle ahead) + +Additionally +* New all-weather tires this year 2020 (Nokian WR G4 SUV performance all-weather tire) See [nokiantires.com](https://www.nokiantires.com/all-weather-tires/nokian-wr-g4-suv/) + > The versatile Nokian WR G4 SUV optimally combines high-performance, all-season handling and reliable winter grip to make it a true all-weather tire [...] with new innovations to ensure performance in snow storms, heavy rain or sun-scorched asphalt, so you can forget the forecast regardless of the season. +* Custom fitted floor mats by [TOUGHPRO](https://toughpro.com/) (Made in USA, Lifetime Warranty) +* Premis Window Mesh [Sun Shades](https://www.amazon.com/dp/B07FG26ZCR/ref=cm_sw_r_tw_dp_x_gmjlFbC47W40E) +* New half-shafts in front drivetrain to fix the known issue that plagues many Model X owners (covered under warranty) + +This vehicle is LOADED. + +![Suspension Settings Menue](../public/images/145412_suspension.jpg) + +All doors can be operated from the Center Screen + +![Doors](../public/images/145429_center-screen-doors.jpg) + + + + + + +# REMOVE +Replace +../public + +//wsl$/Ubuntu-20.04/home/leothelocust/Projects/personal/website/public diff --git a/public/images/145108_driver-seat.jpg b/public/images/145108_driver-seat.jpg new file mode 100644 index 0000000..7d6e988 Binary files /dev/null and b/public/images/145108_driver-seat.jpg differ diff --git a/public/images/145412_suspension.jpg b/public/images/145412_suspension.jpg new file mode 100644 index 0000000..f920cc4 Binary files /dev/null and b/public/images/145412_suspension.jpg differ diff --git a/public/images/145429_center-screen-doors.jpg b/public/images/145429_center-screen-doors.jpg new file mode 100644 index 0000000..dbf9ccd Binary files /dev/null and b/public/images/145429_center-screen-doors.jpg differ diff --git a/public/images/4235_passenger-rear.png b/public/images/4235_passenger-rear.png new file mode 100644 index 0000000..deb02c5 Binary files /dev/null and b/public/images/4235_passenger-rear.png differ