summaryrefslogtreecommitdiffstats
path: root/.md/tutorials/how-to-make-this-site.md
diff options
context:
space:
mode:
Diffstat (limited to '.md/tutorials/how-to-make-this-site.md')
-rw-r--r--.md/tutorials/how-to-make-this-site.md182
1 files changed, 108 insertions, 74 deletions
diff --git a/.md/tutorials/how-to-make-this-site.md b/.md/tutorials/how-to-make-this-site.md
index e898828..42bf51f 100644
--- a/.md/tutorials/how-to-make-this-site.md
+++ b/.md/tutorials/how-to-make-this-site.md
@@ -10,51 +10,59 @@ I got up to hyper linking with the "a" tag until I hit a wall. I don't want to
link the exact page since I don't want to get sued, but it basically read:
```
- Web design programs:
- - Adobe Dreamweaver
- - Adobe Contribute
- - Microsoft Expression Web
+Web design programs:
+- Adobe Dreamweaver
+- Adobe Contribute
+- Microsoft Expression Web
```
Well, damn. I didn't have any of those. And as a stingy high school kid, I
didn't want to buy anything. So I shelved that book and forgot about for a
while since making a website seemed too expensive and needed too much flashy
-software to make it. I knew nothing about free software at that age, other than
-music software like Audacity which is what I was into at the time.
-
-A few years later I caught a bit of a poetry bug--and maybe a bit of a snooty
-college kid bug--and tried to run a blog. At that point, I had learned about
-WordPress, which lets you easily make a space for sharing writing, media,
-content, whatever really. And it's free as in *freedom* as I understand
-since it's licensed under the GPL (if you want to take the time to deploy it
-yourself). But they also give out free .wordpress domains and some storage
-space.
+software to make it. I knew nothing about free software at that age,
+other than music software like Audacity which is what I was into at the
+time.
+
+A few years later I caught a bit of a poetry bug--and maybe a bit of a
+snooty college kid bug--and tried to run a blog. At that point, I had
+learned about WordPress, which lets you easily make a space for sharing
+writing, media, content, whatever really. And it's free as in *freedom*
+as I understand since it's licensed under the GPL (if you want to take
+the time to deploy it yourself). But they also give out free .wordpress
+domains and some storage space with a snazzy dashboard to manage it all.
I had fun with that one, I don't update it anymore, but it's still up at
<a href="https://postquantumpoetry.wordpress.com">postquantumpoetry.wordpress.com
-</a>. WordPress got closer to what I wanted, but it still wasn't <i>really</i>
-my site; it was WordPress's site unless I wanted to pay the hosting and domain
-fee. It's pretty modest, but I wasn't sold on sticking with a .com or .space
-domain, or even sticking with WordPress. I was getting tired of blogging
-anyway. I was getting more interested in the stuff that made it work; it
-seemed a lot more fruitful than writing to no one.
-
-It's now 2021, five years later, when I write this (and this website isn't even
-finished yet). So what led me down the rabbit hole again? It probably started
-where the last one left off, when I decided I wanted to switch to more
-practical IT things over the academic things I had previously wanted
-to pursue. I signed up for a Cybersecurity program, somehow got in, and
-eventually managed to land a entry-level SOC role after graduating. At this
-point, it was getting a little weird that I had no web
-presence--especially after I decided to take down most of my social media
-accounts. So I was back at "how do I make a website," again, but this time, I
-at least had some understanding of what a server was and how networks work. And
-more importantly, I had a better idea of what it meant for a computer to be
-*mine*. Even though--let's be real--it *still isn't.* I can't get
-high-speed Internet easily which I need to host a server long-term so I'm stuck
-using some else's computer, otherwise called a Virtual Private Server (VPS).
-Even if I could host at home, I'm still of course at the mercy of my ISP so
-even then, I'm not totally free.
+</a>. WordPress got closer to what I wanted, but it still wasn't
+*really* my site; it was WordPress's site unless I wanted to pay the
+hosting and domain fee. It's pretty modest, but I wasn't sold on
+sticking with a .com or .space domain, or even sticking with WordPress.
+I was getting tired of blogging anyway. I was getting more interested
+in the stuff that made it work; it seemed a lot more fruitful than
+writing to no one.
+
+It's now 2021, five years later, when I write this (and this website
+isn't even finished yet). So what led me down the rabbit hole again?
+It probably started where the last one left off, when I decided I
+wanted to switch to more practical IT things over the academic things
+I had previously wanted to pursue. I signed up for a Cybersecurity
+program, somehow got in, and eventually managed to land an entry-level
+SOC role after graduating.
+At this point, it was getting a little weird that I had no web presence
+--especially after I decided to take down most of my social media
+accounts a few years ago.
+
+So I was back at "how do I make a website," again, but this time, I
+at least had some understanding of what a server was and how networks
+work. And more importantly, I had a better idea of what it meant for
+a computer to be *mine*.
+
+Even though--let's be real--it *still isn't.*
+
+I can't get high-speed Internet easily which I need to host a server
+long-term so I'm stuck using some else's computer, otherwise called a
+Virtual Private Server (VPS). Even if I could host at home, I'm still
+of at the mercy of my ISP.
Because of that, I think it's important to understand that
"running your own website" is not just a *technical* ordeal, but also an
@@ -64,12 +72,12 @@ mean it's hard to do, just that there's options.
<a id="thepoint"></a>
## What is a web server and how do I run one?
-TL;DR a web server is just a program that lets other computers on a
+*TL;DR a web server is just a program that lets other computers on a
network view files in a chosen folder. All you need to do is download a
web server: apache and nginx are popular ones, but you can easily
program your own with web frameworks like
[Flask](https://flask.palletsprojects.com/en/2.0.x/) or
-[Facil](https://facil.io/)
+[Facil](https://facil.io/)*
You can run a web server for free right now. If you're on windows go
download Apache for Windows
@@ -84,29 +92,30 @@ Foundation\Apache2.4\ ). You'll see something like the following:
```
<VirtualHost *:80>
- ServerAdmin webmaster@localhost
-
- DocumentRoot /var/www
- <Directory />
- Options FollowSymLinks
- AllowOverride None
- </Directory>
- <Directory /var/www/>
- Options Indexes FollowSymLinks MultiViews
- AllowOverride None
- Order allow,deny
- allow from all
- </Directory>
+ ServerAdmin webmaster@localhost
+
+ DocumentRoot /var/www
+ <Directory />
+ Options FollowSymLinks
+ AllowOverride None
+ </Directory>
+ <Directory /var/www/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ </Directory>
```
For now, you don't need to change anything, so don't worry about what it
means.
-Note in particular the "DocumentRoot" which may differ for you. This is
-where the web server looks for files. So let's put a file there! Put
-whatever, a picture, a text file. Run the server, then go to
-your web browser and type: `http://localhost`. You'll find a directory
-with your files in it!
+But do note the directory set on "DocumentRoot," which may differ for
+you. This is where the web server looks for files and folders.
+So let's put some stuff there! Put whatever, a picture, a text file.
+Run the server, then go to your web browser and type: `http://localhost`.
+You'll find a directory with your files in it! And you can access them
+at `http://localhost/filename.extension`
The problem is, only you and others on your home network can visit your
site right now.
@@ -120,17 +129,38 @@ routers will have some kind of steps similar to this:
1) Click "Advanced" then click "Firewall"
-2) Scroll to the add new rule form (if you must, press a button to bring
-it up)
+2) Scroll to the add new rule form
3) Put in the following values
- source/original port: 80
- forward to address/device: your device's local ip
-- forward to/destination port: 8000
+- forward to/destination port: 80
You can get your device's local ip by typing `ipconfig` (Windows) or `ip
a` (Linux). Typically it is listed first and will start with "192.168" or
-"10.0" but it depends on the manufacturer.
+"10.0" but it depends on the manufacturer. Here's my output at home for
+example:
+
+```
+1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
+ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+ inet 127.0.0.1/8 scope host lo
+ valid_lft forever preferred_lft forever
+ inet6 ::1/128 scope host
+ valid_lft forever preferred_lft forever
+2: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
+ link/ether 4c:cc:6a:93:eb:0b brd ff:ff:ff:ff:ff:ff
+ inet 192.168.1.202/24 brd 192.168.1.255 scope global dynamic noprefixroute enp7s0
+ valid_lft 74501sec preferred_lft 74501sec
+ inet6 fe80::4ecc:6aff:fe93:eb0b/64 scope link noprefixroute
+ valid_lft forever preferred_lft forever
+3: wlp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
+ link/ether 82:e2:e4:c2:0c:a1 brd ff:ff:ff:ff:ff:ff permaddr 98:de:d0:f3:d6:ea
+```
+
+The device "enp7s0" is my Ethernet adapter (starts with an 'e') and my
+current local ip address for the device is shown. If you use wifi, it
+will likely start with a "wl."
Now get your *public* ip address at this site https://who.is/ and share
it with your friends. Watch in horror as they access all the files in
@@ -138,11 +168,14 @@ the directory you launched the server!
## How can make this server available on the Internet *cheaply* and *independently*
-TL;DR Expense scales with independence. It's possible to become your own
+*TL;DR Expense scales with independence. It's possible to become your own
service provider, get IP addresses from ICANN, your own hardware to host
it, to host your cat pics; but it's also a lot of time, work and money
-to do all that (see [Null]())>. Most likely you'll want to rent someone
-else's server, usually a VPS.
+to do all that
+([this guy](https://hackaday.com/2018/09/20/one-mans-journey-to-become-his-own-isp/)
+did it apparently, and so did [Null](https://en.wikipedia.org/wiki/Kiwi_Farms))
+
+Most likely you'll want to rent someone else's server, usually a VPS.*
Once you understand the basic installation above, you can now populate
your site with content just by adding HTML files to your web directory.
@@ -189,23 +222,24 @@ But once you have stuff to share, how do you keep this stuff online?
Technically yes, but practically probably not. At least not at a lot of
extra cost to you. If you do want to host a small thing at home, like
some text or some cat pics, a
-[tor hidden service]("/site/tutorial/how-to-host-a-tor-hidden-service.html")
+[tor hidden service](/site/tutorial/how-to-host-a-tor-hidden-service.html)
is a great option.
-I spent a lot of time searching on this (you can find a full list of references
-at the bottom), and I've even tested a little bit by hosting game servers and
-web projects for code jams, but the problem is twofold. First, if you are in
-the United States and not a business, you probably have a standard plan with
-one of the major ISPs (Verizon, Optimum, etc.). This limits you in a
-few ways.
+I spent a lot of time searching on this (you can find a full list of
+references at the bottom), and I've even tested a little bit by hosting
+game servers and web projects for code jams, but the problem is
+twofold. First, if you are in the United States and not a business,
+you probably have a standard plan with one of the major ISPs (Verizon,
+Optimum, etc.). This limits you in a few ways.
- Your bandwidth is limited, which limits the amount of people you can serve
at one time *and* the rate you can transfer data to them. Think laggy
games and videos that take 10 years to download.
-- Your ISP probably explicitly does not allow this (at least in the US). I have *never* had my
-ISP complain about hosting small personal servers at home, but I imagine if I
-hosted higher traffic things, I would have some problems.
+- Your ISP probably explicitly does not allow this (at least in the US).
+I have *never* had my ISP complain about hosting small personal servers
+at home, but I imagine if I hosted higher traffic things, I would have
+some problems.
### So what should I do