Gordo's guide to hosting your photos online for FREE! pt. 1

Gordo1

Forum Enthusiast
Messages
257
Reaction score
0
Location
CA, US
Benefit from virtually unlimited free bandwidth to host your photos, forever! The below technique has worked well for me over the past several years for posting photos on a variety of forums, so I thought I'd share it with all of you DPReviewers. Let me know if this is at all useful to any of you.

Disclaimer: These instructions are mostly for geeks that want the utmost control over their picture posting capabilities and have time to blow setting all this up. If you're not so inclined, then please pay the very reasonable $23/yr and get yourself a PBase account or some other reasonable online (free/pay) photo hosting service. Furthermore, there is a certain "Rube Goldberg" nature to all of this -- every element has to be set just right for it to work properly. It's worked well for me with virtually zero maintenance for 2+ years, but you may very well find it to be a nightmare to maintain -- so be forewarned that your mileage may vary. And finally, I cannot offer support to you in this endeavor, nor do I take responsibility for any consequences associated with implementing any or all of these instructions. Use at your own risk.

Before we get started... please read the minimum requirements carefully!

Minimum Requirements:
  • You should be reasonably savvy at installing programs on your computer and editing configuration settings in text files. You should also understand what URLs and domain names are. If that scares you, bail now please, as this guide is NOT for newbies and you could seriously compromise your computer's security (read: get hacked) if you guess your way through this. In fact, even if you know what you're doing, you could get hacked by following these instructions. Consider yourself warned twice.
  • You need a computer that is powered on and connected to the Internet 24x7 (or at least most of the time).
  • You need ample storage space for the pictures you want to host.
  • (Ideally), you should have a broadband Internet connection.
Overview of Steps:

1. Update your OS/Enable your computer's firewall.
2. Setup a dynamic DNS name for your computer.
3. Install a Dynamic DNS agent on your computer.
4. Install/configure/secure a web server on your computer.
5. Add pictures/documents you want to share.
6. Post photos to DPReview using Coral Cache equivalents.
7. Benefit from virtually unlimited free bandwidth to host your photos forever!

Continued in next post...
 
1. Update your OS/Enable your computer's firewall.

Everyone has a different setup, but in case you're running Windows XP Service Pack 2... You should ensure that its firewall is protecting the network interface your computer uses to connect to the Internet. By default Windows XP SP2 turns on the firewall, so if you're up-to-date, you're probably ok. If not, update to SP2 now and/or the latest patch level/service pack for your respective OS and enable a firewall. If you don't know how to do any of this on your own, this guide is definitely not for you.

2. Setup a dynamic DNS name for your computer.

Most home users who connect to the Internet via dial-up, DSL or cable modems have a dynamic (changing) IP address assigned to them by their ISP. Since we intend to host photos from our computer, if our address is constantly changing, no one will be able to find our computer consistently, so we must attach a static hostname to it. That way, regardless of what the IP address changes to, people can always find our photos. There are numerous services that will assign your dynamic IP address to a static hostname for free. I use http://www.dyndns.com , but there are other perfectly useable alternatives. If you use dyndns, follow these steps. Sign up for a free account, log in and navigate to "My Services" --> "Add Host Services" --> "Add Dynamic DNS host". Here's where we must decide on a fancy name for our computer. Enter the desired hostname (for our example, let’s use "bobo"). Next, choose one of the permitted domain names such as "dyndns.org". In this case, we've now created a static alias for our computer called "bobo.dyndns.org". The IP address of your computer should be automatically populated, but if it isn't, you can find it out by running "cmd.exe" from your computer's Start --> Run... menu and typing "ipconfig" in the command window that appears. Back to dyndns.com... leave the other fields empty and click "Add Host". Onto the next step...

3. Install a Dynamic DNS agent on your computer.

Now dyndns.com has associated our IP address with our chosen hostname... but what if our IP address changes? Ahah, that's why we need to install an agent on our computer that will constantly monitor our IP address and notify dyndns.com when it changes! Again, many agents are available out there. Dyndns.com recommends "DynDNS Updater", which can be downloaded here: https://www.dyndns.com/support/clients/ . Run its setup program, accepting all defaults. Run the DynDNS Updater. It should pop up a Wizard on first install: Make sure it detects your external IP address. Create a group (name it whatever you want). Enter your dyndns.com user login and password credentials. Perform an automatic download when it asks. If you entered the correct login information, it should find your host ("bobo.dyndns.org" in our example case). Select it. Enable automatic updates. When you exit the wizard, you should see a green checkbox in the Windows taskbar if everything went as planned. Right click on it and ensure "Start with Windows" and "Enable Automatic Update" are checked. This ensures the agent will always be running and keeping dyndns.com apprised of your computer's current IP address.

Continued in next post...
 
4. Install a web server on your computer.

You can use any web server you're familiar with. One of the most popular web servers is Apache. It runs on a variety of operating systems including Linux and Windows. Its main download page is here: http://httpd.apache.org/download.cgi . Currently, the latest stable version of Apache for Windows is 2.0.54-Win32, downloadable from here: http://apache.cs.utah.edu/httpd/binaries/win32/apache_2.0.54-win32-x86-no_ssl.msi

Note: If you already have something running on port 80, Apache may fail to install properly. Skype is notorious for listening on port 80, so if it's active, close it before installing Apache.

a. Run the installer. When prompted, enter your server information:

b. For Network Domain, you want to use whatever domain you chose at dyndns.com (in our case, it's "dyndns.org" -- without the quotes).

c. For Server Name, use the full hostname + domain name (in our case it's "bobo.dyndns.org").
d. Optionally set an administrator email address.

e. When prompted how to install Apache, choose "for all users, on Port 80, as a service".
f. Use defaults for the rest of the install.

Important: If you use Windows XP SP2, the firewall will ask you if it's ok to let Apache communicate through port 80. You have two choices: let it communicate over the default port 80, or follow the below instructions to use a non-default port. I HIGHLY recommend not opening port 80 and prefer to use a non-default port for my web server, since I feel somewhat safer hosting my pics from a place that few people would otherwise guess. It also keeps the logs to a minimum as there is a lot of garbage (old worms and stuff) floating around on port 80. Keep in mind, if you're running on old unpatched OS (Windows 95, 98, 2000 or XP with no service packs), do NOT by any means open up port 80, as you could be compromised by an old worm in a matter of minutes! Also, your ISP may block incoming connections to port 80 for all its users anyway, in which case, no one will be able to read from your computer at all!

To set a non-default webserver port, follow these instructions:

g. Navigate to the Apache configuration file, located in the conf folder (for me: C:\program files\apache group\apache2\conf\httpd.conf).
h. Open with Wordpad or Notepad.

i. Find the line that reads "Listen 80". Change it to the port you'd like to listen on. I recommend a port above 1024 (and must be below 65000) that is seldom used for anything else. For our example, let's use 3821. So the line would now read "Listen 3821" in our case.

j. Next find a line that looks something like "ServerName bobo.dyndns.org:80" change the "80" to the same port number you've chosen (in our case "bobo.dyndns.org:3821").
k. Save the file and exit your text editor.

l. Stop and Restart Apache to read the changed conf file. On Windows, you can do this simply by double-clicking on the Apache monitor and choosing "Restart" from the window that appears.

m. Test your apache server by opening your web browser and navigating to your web server address (in our case " http://bobo.dyndns.org:3821 "). You should get some type of Apache welcome screen. If not, then something must have messed up somewhere along the line. Retrace all your steps.

Now, if Windows doesn't automatically notify us of its intentions to allow incoming connections to our web server, (or if we have a different firewall installed) we may need to manually open it so others can connect to us, in which case we need to go into our firewall settings and allow incoming access to the port our server is running on. In our example case, we will need to open up incoming TCP connections to port 3821.

Continued in next post...
 
5. Add pictures/documents you want to share.

I like to create a shortcut on my desktop to my webserver docs folder, where I store all my online shared pics. The default docs folder for Apache is called "htdocs" and is located here on my computer (yours may be slightly different): "C:\Program Files\Apache Group\Apache2\htdocs\".

When you create a PhotoShop gallery, you may also want to point it to this folder, so it will automagically make your gallery available online!

6. Post pics to DPReview using Coral Cache equivalents.

Still with me? Good, cause we're almost done.

Now, when you post pictures on DPReview forums (or anywhere for that matter), there are two ways you can do it:

a. The first way is to enter the URL directly to your web server. In our case, let's say there's a picture called "cat.jpg" in the "...htdocs\animals\" folder. Using the example we've used so far, the URL link would look like this:



;. Notice that everything up to and including the htdocs directory is left out of the web URL. We've just posted our first pic!

...However, if you post this on a really busy forum with a worldwide audience (like most DPReview forums), you might notice that every time someone wants to see your cat, they’re sent right to your poor computer! This can quickly eat up your available bandwidth and people may start to complain that they can't access the pic or that it's incredibly slow loading. Fortunately, there is a magical way to alleviate this problem, and it's called the Coral Cache Network. Read all about it here: http://www.coralcdn.org/ . In a nutshell, the first person to read our cat.jpg image through Coral will force it to be cached on the Coral servers, so that all subsequent accesses to the image will go to Coral and not even touch our computer! That's right, virtually limitless bandwidth for free and even our lowly 56k dial-up connection is saved from having to serve up the same image over and over again.

To be completely honest, Coral may ask for the picture a few times over a 24 hour period just to make sure nothing’s changed, but the potential savings in bandwidth can reach 1000:1 or greater for very popular files.

b. So, how can we take advantage of coral cache?

Using the above URL as an example, we need to modify it slightly by adding ".nyud.net:8090" to the domain name and making one other minor change. The final Coral Cache version of the above URL would look like this:
http://bobo.dyndns.org.3821.nyud.net:8090/animals/cat.jpg

Ok, kind of a mouthful. Let's break it down... The http: part should be obvious, then we have our chosen domain name "bobo.dyndns.org" then we have our web server port number separated from the domain name by a period (instead of a colon!) Then we add the ".nyud.net:8090" qualifier that points to the Coral Cache network, then the local folder (if any) and finally the image name.

Use this URL format for all pics you post, and you truly benefit from virtually unlimited bandwidth from your computer.

Note: Your computer will have to remain mostly accessible to serve up your pics, as Coral Cache will check to see if your web server is alive from time to time.

Note: Some folks browsing from work may not be able to web browse to a site using a port other than 80 because of some pesky proxy server limitation or whatnot. In this case, Coral Cache is out, and so is our local web server if it’s likewise not using port 80. Not much you can do for these folks, other than to tell them to check it out when they get home.

7. Benefit from virtually unlimited free bandwidth to host your pics forever!

Ok, so forever is relative. Coral Cache may cease to exist, dyndns.com may close shop, your hard drive might crash or your apache server may get hosed. But with any luck, none of these things will happen, and you'll be home free to host your photos to your heart's content.

Thanks for your attention and good luck.
--Gordo
 
no offense but i would much rather pay my $30 to smugmug and recieve unlimited upload storage for a year...much less work and they have a referral system to recieve money off your next purchase.
--
Dave
http://daaaveg.smugmug.com/
 
Hi Gordo,

Thanks for sharing your technic. I appreciate you taking the time to post it. I'm a poor student who has her computer on all the time anyway. This will save me some money. Also, I find smugmug and pbase both are kinda slow. I'm sure my own computer won't be much faster, but at least it's free.

Thanks again,
deyell
 
And it works great !!!
Thanks Gordo. Excellent info.

Now to take some worthwhile photos to put in my new online gallery. :)

Thanks Again,
Chewch
 
Many universities offer ample online storage space and personal web pages.
I'm a poor student who has her computer on all the time
anyway.
--
Warm regards,
Dad-of-four
Looking for a Smugmug account?
Enter code kHmP122izH9gg in the Referred by field to save $5.
 
Hate to burst your bubble, but not everyone gets unlimited bandwidth from home and also violates TOS of most ISP's. I just use my smugmug account (below ($5 off when go through my link)) ISP's in western Canada have serious restrictions on bandwidth usage and well it screws allot of people.
--
http://photos.trevorharrison.net
 
Self hosting a web on your PC may be okay for some applications but I feel for most people it is way too slow for photos. The reason is that the download speed that others will see is your UPLOAD speed, which even with broadband is often limited to about 256 Kbps. That is dog slow when you are putting large JPEG files on line. The person who is self hosting often doesn't realize this because when they access their local website they are getting a fast speed, but that is not what others are seeing. So although I have setup a home based webserver using dynamic DNS, in the end I find using something like SmugMug just a lot better approach for photos.

For those determined geeks how have more than one computer connected to a broadband router, you need to enable port forwarding Fix the IP on the computer you are running the webserver and forward Port 80 to that fixed IP (use something like 192.168.0.100)

Franz
 
I personally have no use for hosting directly from my PC since I have a free online hosting website from 1and1, but found the Coral Cache information useful, since that'll help me get around the 4GB of transfer per month limit. I had never heard of it, basically it's the poor man's free Akamai
 
Hi Gordo,

Thanks for sharing your technic. I appreciate you taking the time
to post it. I'm a poor student who has her computer on all the time
anyway. This will save me some money. Also, I find smugmug and
pbase both are kinda slow. I'm sure my own computer won't be much
faster, but at least it's free.
you could also use flickr for free
Thanks again,
deyell
--
D70 and photo discussion
D70 custom tone curves @ http://forum.mastersphoto.net
 

Keyboard shortcuts

Back
Top