The reasons for needing webspace are obvious. An automated plattform to create webspace aswell, but combining this with instant micropayments utilizing the bitcoin blockchain leads to a completely autnomous system that provides what both end-user and the provider want.
What it does
On lightning space a user could rapidly spawn a webhosting within a minute of time and have quick access to SSH/FTP/HTTP/Mail/etc. The user can use the webspace for testing purposes and create short-term accounts while still being able to extend it to the needed time span afterwards. There is no need for a subscription based model if there is no need for human interaction on the provider side.
How I built it
lightning-space combines two major components: A bitcoin full node (bitcoin core) in cooperation with a lightning node (c-lightning) together with lightning-charge for payments and a hosting panel (ISPConfig) to create new webhostings via it's API. lightning-space itself is an MVC-based Plugin for Typo3, an enterprise CMS.
Challenges I ran into
While creating all the lightning parts was fairly straightforward, creating webspace via the SOAP-API of ISPConfig and thinking of all possibilties was not so easy because all of the parameters that needs to be set. Also handling all use cases like extending the duration of the space, sending emails with invoices and providing a good user experience where more challenging than I anticipated in the first place.
Accomplishments that I'm proud of
Providing a fully working hosting plattform that users can work on is a very pleasing thing. Handling everything automated from expiring hostings, sending expiration mails, deactivating and removing hostings and all the lightning integration that comes with it were a lot of fun to implement
What I learned
Using lightning for your project is a very straightforward thing to do and i really look forward to implement more projects and further develop lightning-space.
What's next for lightning-space
- Finishing the REST-API to be able to use lightning space directly from your project. For example: create space, manage your space, get the status of your page and extending space via API calls
- Providing a lightning node with every webspace to create lightning projects on lightning-space itself. This is not an easy task but I would love to have that running!
- Creating a script to integrate lightning-space into a gitlab cli-runner to create test-spawns of your application directly to lightning-space.