1 to run web3.js whether I must run Geth on the same server
You only need to connect to a node in rpc.
Web3.js make the connection between the blockchain and your back-end.
Then, you choose to use a particular smart-contract on the chain using web3js.
So, to recap, you have to deploy your smart-conttract on the blockchain.
Set up a node (or more).
And connect your back-end to your node with web3js in order to communicate with your smart-contract.