Building an Image Hosting Website

An in-depth post about my time making and operating an image hosting website.

April 15, 2020, noon

Introduction

I developed and operated an image hosting website called imglnx.com (image links/lynx) for just over a year (Dec 5, 2016-Mar 3, 2018).  The domain changed ownership to a trusted friend on Nov 20, 2018, and I have no idea if that friend will recreate imglnx.

I created imglnx (archive) for a very simple reason, to create an image host that focused on free, fast, secure, and simple image hosting with a focus on privacy. Not only did I operate imglnx, but I also operated my own DNS servers. The entire service was based outside of the USA (excluding the domain - was registered at Namecheap).

The project originally started in Aug 2013, but quickly died and then was revived in 2016. My plan was to run imglnx for as long as I could since I was personally using the site to host my screenshots etc.

Research

Building an image hosting website takes a good amount of research, time, and patience. When I started looking into building the site I wanted to make sure it was fast, secure, and private as possible.

The market of image hosts is very saturated and I needed to be unique so I settled on security and privacy over everything. Sure the site was really fast, but the main focus was security and privacy. The original 2016 version was based in the USA and wasn't focused on security and privacy.

Legal

Not only do you have to worry about illegal content, but you have to worry about getting subpoenaed. This was a great worry for me since I did the site under my real name and alias. However, the images stored were in Romania, the DNS was in France and Czechia - the domain was at Namecheap (USA). There was some thought about transferring the domain to a provider like njal.la, but I never did transfer it. Even if I did have everything based out of the USA it doesn't guarantee not being subpoenaed, because FISA is a thing.

My thought process for imglnx and the legal side, was if I was subpoenaed or I was emailed about a DMCA request, etc then I'd comply as much as I could without identifying my users. imglnx didn't store any logs, ips, or identifiable information other than what was supplied at registration (email which didn't have to be legit). On uploads, I even stripped out exif data to help prevent users from being identified.

Development

The initial version from 2016 was written in PHP - just PHP and no frameworks so it was a pain to do things. This version didn't have login/register or any cool features, you could only upload images.

After running the PHP version for a few months and not adding any cool features I decided to change from PHP to Django (Python). Django not only allowed me to do cooler shit like have an admin panel out of the box, but it allowed me to rapid prototype. Sure this was the first real project that I made with Django (and it certainly shows), but I pulled it off really well I think. Writing Django has truly changed the way I develop websites and I don't have to write shitty SQL statements like in PHP. 😉 I choose Django for a number of reasons, but the main one was I had been wanting to use it for a major project.

When I first started the Django project the layout of the project was handle uploading, login/register, and stripping exif data. I then started to focus on albums and other similar features. I also ran a tor version of the site for a short time and I even had my backups routed over tor onto another server for increased privacy.

The design of the website was amazing - yes I'm biased, but I really do think it was great. It was a design that I made from the ground up with bootstrap only.

imglnx design for the entirety of the project.

The final message displayed on the homepage.

Conclusion

Working on this project was amazing and I learned a lot during its development. During the development, I had pushed numerous updated adding new features and fixing bugs. The site changed hosting providers a couple of times and still remained online for over a year.

Building a large-scale website was extremely fun and I'd love to it again. I do wish that I had a friend or two work on it with me as we could've added way more features than planned. During the time that the site was live, it garnered 17462 images uploaded by 158 users which is very impressive for a not known website.

If I were to rebuild imglnx today I'd probably stick with Django for the site as Django is amazing. 😃

 

 

until next time