Lt. Henry S. Farley (1840-1863) fired the signal from a mortar at Fort Johnson on James Island. <David Detzer, Allegiance: Fort Sumter, Charleston, and the Beginning of the Civil War (New York: Harcourt, 2001), pp. 268-270.>
The first shot was fired at 4:30 a.m. from Fort Johnson.
As to who fired it: Edmund Ruffin claims to have fired the first shot (his diary, Tulane University), but others say it was Lt. Henry S. Farley (The State, ThoughtCo). Wikipedia and Know We Know Em say Lt. Farley fired it, acting upon the command of Capt. George S. James. Finally, this CWT post says that most historians agree that Capt. George S. James fired the first shot. I'm inclined to say that Capt. George S. James gave the order and Lt. Henry S. Farley executed it.
Edmund Ruffin, noted Secessionist, claims he fired the first shot on Fort Sumter from nearby Fort Johnson. However, Lieutenant Henry S. Farley, who commanded a battery of two 10 inch siege mortars on James Island, fired the first shot at Fort Sumter at 4:30 a.m. David.
Lt. Henry S. Farley fired a single 10-inch mortar round from Fort Johnson "as a signal to open the general bombardment from 43 guns and mortars at Fort Moultrie, Fort Johnson, the floating battery, and Cummings Point."
Though Edmund Ruffin for a long time was credited with firing the first shot, it's now the general consensus that either George S. James or someone under his command fired it (after Roger Pryor turned down the chance). I found numerous sources that said either James fired the shot himself or that he gave the order but Henry S Farley actually carried it out.
So . . . depending on one's definition of who fired it, it could reasonably be either James or Farley.
There at least seems to be no dispute that the shot was fired from Ft Johnson.
1. Captain George S. James commanded the mortar and some accounts states that he alone fired the shot, while others say it was Lt. Henry S. Farley, acting upon James' orders. So I would say it was Lt. Henry S. Farley.