I have been in almost the exact same position. My first job out of college was for a small firm. The CEO was the only developer, and he hired me to make a "lite" web-based version of their software. On top of that, I graduated from a somewhat below-par computer science university. I have been at this job for about 3.5 years.
Your employer is not expecting too much from you if he supplies you with what you need. You need to learn. You need to make mistakes and learn from those mistakes. And your employer needs to understand what he's risking by trusting an inexperienced developer. If he understands that and is OK with it, keep going.
You are most certainly lacking skills. Who isn't? There will always be something to learn in this field. When I started working for my employer, my method of version control was dropping all my code into a new .zip file at the end of the day. Over time I learned about version control software such as Subversion and Git. Just because you don't know the essentials doesn't mean you won't eventually know them. Your boss just needs to understand that he needs to invest in your learning as well as your project.
I think it would help you to look at the big picture. Sure, you need other developers to rub shoulders with. Your job isn't perfect. But let me share with you my experience in a similar job after 3 years:
I am a learner. Learning to be a better developer and finding the right tools to do things the right way are super important to producing quality software. So I spend a non-trivial amount of time time at work reading blogs, stackoverflow, P.SE, Hacker News, etc. I follow developers on Twitter. I've occasionally read books on the clock, and I go to the nearby software conferences on the clock.
This learning at work is what led me to use essential practices that I never would have come across otherwise. Essential things like version control, unit testing, the SOLID principles, continuous integration, etc. Many foundational things, and I did not learn about them in college - I learned them at work. After all, if my boss wants me to do quality work, he's got to invest in my learning. I don't know jack squat, and he knew that when he hired me.
My learning was hard - I had to experience the problems that are created when doing things wrong. Then I found solutions to the problems and implemented them. Now I know much more deeply why software developers do certain things, rather than stepping into a junior developer position at a large company and taking all that new knowledge for granted.
My boss understands that he needs to keep me happy. As a result, he pays me well enough and gives me great benefits (good health insurance, etc). I am compensated well enough to not be tempted to go looking for other jobs, and my projects are decently funded. But as Uncle Ben says, "With great [compensation] comes great responsibility." He pays me well, so I gotta work hard. These days I rarely work more than 45 hours per week, but I still work hard.
After a while of learning and developing our web-based solution, I have slowly transitioned to a new role in the company. I'm no longer just the new developer with a single project. I'm a more experienced developer who has made many mistakes and learned from those mistakes. I have grown enough in my skills that I will soon be able to start working on establishing a software development team. I've started writing a software developer's handbook - a document we can hand to future developers that details the methodology we use to write software at the company. The vast majority of the handbook is basically a compilation of the many lessons I've learned over the past few years, and it will be the foundation of how we do software for the next few years. Of course it will never be finished... I'm still very much a noob compared to a lot of other people in the industry.
I actually suspect this was my boss's intention all along - the original project he had me work on was partly for making money (of course), but also for putting me in a position to make mistakes and learn. Now he has a little more confidence in me, so he can trust me with more important tasks.
I would kill to be able to rub shoulders with people who are more experienced than I. I have a coworker now who has less experience than I do, and that's been great - he's challenged my thinking a lot and helped me grow even though he's less experienced. Still, one of my requests for hiring a new developer is that he/she be someone who starts with a little more experience than I did.
My job isn't perfect at all. I get stressed sometimes, and I tend to be critical of many things we do at the company. But things are always improving. I am thankful I'm not another code monkey in a large bureaucracy, doing more paperwork than writing code. This job has also been good for my character - I am more capable and mature than I was when I started because I got pushed into the deep end from the beginning. It was hard, and still is, but the difficult things in life are the things that make us grow. And it's fun/rewarding because of the large amount of creativity and development that is required.
Your experience may not turn out to be the same. Just know that while you have many reasons to be unhappy with your current situation, there may be lots of benefits to being the only developer at a small company as well. No matter what kind of job you have, there will always be trade offs.