Do you run a website 'on' ethereum or 'with' ethereum and if the latter, is that only with 'nodejs'?
Ethereum is a smart contract platform. You don't run websites neither on it, nor with it. You can only deploy smart contracts on Ethereum and interact with them from the outside world. To interact with the smart contracts running within Ethereum, you need a client that can translate your worldly requests into Ethereum transactions. The most popular ones are written in Go and C++. Thus to interact with Ethereum, you need one of these clients running locally, and your website or any other system needs to talk to the node itself.
This is fine if you just provide a front end website that interacts with the blockchain on your server. However if you want to interact with the blockchain on the user's side (i.e. no server), then you need access to user's client, which you won't get via normal means. The solution currently is to get users to load your website through the Mist browser, which has its own node built in and does all the nitty-gritty for you. However, you still need to serve up your website (even if only statis assets) from some server. Eventually this will be covered by Swarm, but that's quite further out.
Today you can do this with Ethereum clients which support IPFS. Eventually it will be generally possible with Ethereum.
Complex features of a modern website such as search, user-generated content feeds, and secure user-data, aren't directly available but can be built atop Ethereum and are being developed for a variety of DApps.