To be frank, I don't think any server hosts will be willing to allow you to use their servers for absolutely free. You MIGHT be able to host at home, but only if the computer you are hosting on meets some requirements:
1. Has a connection of at LEAST 10 Mb/s up and down(More is recommended). Must be low latency and stable. Connection via WiFi isn't a great idea.
2. Has a fast processor
3. Has a decently fast hard drive(Otherwise chunk generation will be very laggy).
4. Has at LEAST 4 gigabytes of RAM(More is HIGHLY recommended)
5. If you are planning on running your client on the server computer, it is a good idea to have a multi-core processor and at least 8 gigabytes of RAM(So both the client and server can get their RAM requirements while leaving the OS some)
Also, knowledge of Linux is a great boon.