It has to be earned income. Even a small business is a grey area (should be licensed, taxed, etc.).
I once met a financial advisor who had a bunch of American English teachers in Japan as clients.
For years he had them max out their ROTHs. He shit bricks when I sent him the IRS ruling on earned income. The English teachers had deducted all of their income as they were overseas and earned less than 105K. IRS ruled they had no earned income.
They had to undo all of those ROTHs and pay penalties.
That said, my kids earned some money this year modeling! My CPA said good to go on a ROTH with those earnings!