What the basic process is: You'll install a web server on your computer which will host your website.
You'll then configure some firewall rules to allow traffic in and out of your system and finally you'll log into your router to direct the traffic from the internet
to your local computer.
Webservers can be setup for a range of purposes. MS Windows works well at hosting standard websites but if your mostly familiar with Apple
or interested in a personal cloud a Linux distro would be a better fit.
If your unfamiliar or intimidated by linux click here for some help getting started.
https://about.gitlab.com/ is a good place to start for specific webserver projects. If instead
you are primarily interested in setting up an online store please review The Web Site Setup section prior to proceeding.
Network Setup if your setting up a dedicated PC for your server you should provide it a hardwired ethernet/cat5 internet connection by
plugging your server directly into either your router or into a switch.
Web Server Software
For both ease of setup as well as superior compatability/functionality I suggest installing either XAMPP which contains
Apache, MarieDB, PHP, and Perl, or WAMP which contains Apache2, MySQL, and PHP bundled together. Both XAMPP and WAMP are
simple and straight forward to install. Windows Pro does come with IIS (Internet Information Services) installed which might be a more familiar interface for those
only familiar with Windows.
To use an firstname.lastname@example.org address to send and recieve messages from your gmail account
Step 1: visitdomains.google.com
Navigate to: Email > Email Forwarding > Add Email Alias
Create a forwarding email address
Step 2: visit myaccount.google.com
Enable Multi Factor Authentication
Navigate to: Security > App Passwords
Select: app = mail
Select: device = other and name it something
copy the password
Step 3: visit gmail.com
Navigate to: Settings > See All Settings
Select: accounts and import > add another email address
Enter a name and the fowarding email address
make sure: treat as alias is checked
SMTP = smtp.gmail.com
username = gmail account username
password = the password you copied in step 1
Step 4: log into your gmail account and click the confirmation message.
Now that you have your webserver up and running you'll now need an actual website.
Which is comprised of mostly .html files stored on your server in locations such as \inetpub\wwwroot
for IIS servers and \xampp\htdocs\dashboard for XAMPP. If you have no web coding (html,css,js,php) background and don't plan
on learning, a good alternative option is Wordpress
which is a CMS or Content Management System used to create webpages meaning no coding is required.
Once your site is built don't forget to visit a Favicon Generator and then
Submit your site to Google as final steps.
If your main reason for setting up a server is to open an online store, WooCommerce is a great option as the
standard store-engine plugin for Wordpress. However, if your store doesn't plan on managing all payments, production, and shipping it may be simpler to save
yourself the work of setting up and maintaining a webserver and instead simply forward your domain to a pre-existing marketplace conneted via API to a third party drop-shipper.
To do this visit Printify or Printful to get started.
Lychee Install Guide Lychee is a free photo-management tool.
Either download and extract lychee to a directory inside your webserver or if you use GIT
open command prompt (cmd) navigate to a folder inside your webserver and type "git clone https://github.com/electerious/Lychee.git"
Next you'll need to create a database for Lychee, to do this open a command prompt (cmd) and type the following:
run command: mysql enter password: password run command: CREATE DATABASE lychee; run command: CREATE USER "username"@"localhost" IDENTIFIED BY "password";
GRANT ALL PRIVILEGES ON lychee.* TO "username"@"localhost"; Next you need to navigate to the folder with the lychee install in it.
c:\inetpub\wwwroot\Lychee and set permissions to allow all privilledges to all groups.
If the read option will not save after being unselected, open a command prompt and naviate to the the folder.
Navigate to Lychee via web browser http://127.0.0.1/Lychee and enter the following values; host: localhost or blank, username: username, password: password, database: lychee.
Kiwi Install Guide Kiwi is a IRC web client.
Before installing be sure to download NPM then open a command prompt and navigate to your server folder.
Type command: mkdir kiwi-irc, Type command: cd kiwi-irc, Type command: git clone https://github.com/prawnsalad/KiwiIRC.gif && cd KiwiIRC
Type command: npm install Type command: copy config.example.js config.js Type command: kiwi build Type command: kiwi start - Thats it. You can now
access Kiwi by visiting http://localhost:7778 to manually start kiwi navigate to the directory via cmd and type command: kiwi start
Once your webserver is online it will require additional configuration to fine tune it to your needs.
MIME stands for Multipurpose Internet Mail Extensions which really doens't matter. What does is that without setting mime type values certain types of files will not
be allowed through your webserver. For instance without a MP4 MIME value your site won't allow online downloading or streaming of song.mp4 files you host.
On IIS servers MIME values can be entered by opening the MIME Type app inside of IIS Manager, on Apache MIME values are entered either into the httpd.conf or .htaccess files.
Below are some manual entry examples.
Websites incorporate a variety of different overlapping languages which pull and compile different assets into a end user experience.
If you're completely new to coding I would suggest installing httrack which allows you to download a local copy of a page.
Also get use to utilizing "view-source" and "inspect-element" options while browsing the web to learn how different web pages work.
Next focusing on learning the below in top-to-bottom order. Click herefor a good place to start learning, if you already know the basics
then instead try codepen
To enable SSL (https) on your server you will need to create an account with a trusted Certificate Authority (CA)
to issue you your certificate. There are multiple types of SSL certificates avaialble each requiring different forms of authorization, the most common options are.
EVSSL - $75 annually - Extended Validation
OVSSL - $30 annually - Organization Validated
DVSSL - $9 annually - Domain Validated
If you are expecting your SSL certificate to be trusted everywhere the best option is an EVSSL certificate the downsize is they cost more, require more forms to be filled out, and take longer to initially enable.
If instead you would like the non-secure warning pages to go away but don't require a PCI level of trust/encryption then a DVSSL may be a better option as it is cheap and can be activated relatively quickly.
Once you have purchased your certificate open IIS Manager and open "Server Certificates".
Select "create certificate request" and complete the fields - Common Name = your sites domain name (www.site.com).
Save the file to your local drive and then open it in notepad to copy the generated key.
Return to the CA website and select "Generate Certificate", enter your key and server information (MS IIS5.x+ later) and click submit.
Next verify ownership of the domain (DVSSL) via whois email, file upload, or CNAME record.
Once ownership has been validated your certificate will be issued (emailed to you).
Return to IIS Manager, click on Server Certificates, and select "Complete Certificate Request".
If an error is thrown click cancel and hit the F5 key to refresh the list. If your certificate is listed then proceed to bindings.
If it is not listed proceed to MMC.
Troubleshooting via MMC: Click start and enter MMC. Select Add/Remove Snap-In, Add Certificates, Computer Account, Local Computer.
Next select - Certificates > Personal > Certificates > All Tasks > Advanced > Create Custom Request > Next/Next/Next.
Then expand "Details" and select "Properties".
select - Base64 and complete the general tab
Switch to the Subject tab and enter the following values
Common Name: Domain (URL)
IP address (V4): server IP address
URL: domain name
Switch to the Private Key tab
Key options - make key exportable
select size 2048
Now generate a new certificate request, save it locally, open it, copy the key and paste it into your CA website to generate a new certificate.
Then return to IIS select Server Certificates and click on "Complete Certificate Request".
If error is still thrown hit F5 (refresh) - it should now be in the list.
Select the site you wish to add the SSL Certificate to and click "Edit site > bindings".
Add Type: https, Ip address: All Unassigned, Port: 443, and select the SSL Certificate from the drop down list.
SSL should now be active on your domain, if it isn't try visiting your domain name provider (domains.google.com) and ensure
SSL is turned on in your DNS settings.
To enable Python after it has been installed open CMD prompt
and type: set path=%path%;C:\Users\ServiceUser\AppData\Local\Programs\Python\Python37 then hit enter
next type: python --version and hit enter again to confirm. *Be sure to change "ServiceUser" to your current username.
To force remove read priviliages from a folder that wont let you navigate to the containing directory of the folder you want to edit in CMD.
cd C:\inetpub\wwwroot\ then type command: icacls trickyfolder /grant:r "Administrators":(OI)(CI)M
How to fix it when your server is live but your site isnt
If when you navigate to http://localhost you get the error System.ServiceModel.Activation.HttpModule
open cmd and browse to
cd\%windir%\Microsoft.NET\Framework64\v4.0.30319 then run cmd:aspnet_regiis.exe /iru
How to fix a cmd that isnt recognized
For example if ipconfig is no longer recognized then check that the default command still works which is: windows\system32\ipconfig /all
To fix this right click "My Computer" & select "Properties." > Click "Advanced" tab. >Click "Environment Variables" button. Then
in the "System variables" box, scroll down to "PATH" and highlight it. Click the "Edit" button and in the "Variable value:" box, add this string to the very
beginning of the text "C:\WINDOWS\system32;" without my quotation marks. Make sure you include the semicolon. Then click OK three times.
That should of have done it to test open cmd, right-click and select "run as administrator", Type cd C:\ hit enter, Type ipconfig, hit enter.
How to auto start services
Open file explorer and navigate to or create C:\autoboot
Open notepad and type a command, for example: cd C:\inetpub\wwwroot\server node server.js or cd c:\inetpub\wwwroot\KiwiIRC kiwi start then save the file as
filename.bat then open a blank notepad and type
Set oShell = CreateObject ("Wscript.Shell")
strArgs = "cmd /c filename.bat"
oShell.Run strArgs, 0, false
then save the file as filename.vbs close notepad and navigate to C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
create a shortcut to C:\autoboot\filename.vbs
How to restart services
Run services.msc and select the service you want to restart. Right-click properties and take note of the service name.
Open notepade and type the following:
NET STOP servicename
timeout /t 5 /nobreak > NUL
NET START servicename
timeout /t 2 /nobreak > NUL
save the file as a .bat and double click it to run.
Tips for those mostly familiar with Apple or interested in a personal cloud server.