Free Hosting
Description
The plan is to make a reliable static website hosting service that is built arround foss and built with no javascript.
Goals
This wants to achive the following goals:
- low resource usage
- 100% foss
- easy to setup on diferent servers
- atract more people to creating their own personal website
- make more people interested in foss
Service Usage
In the begining the service will be invite only ensuring it can scale well with development These will be the rules:
- an user’s invite code will only become valid after 1 month.
- an user with a valid code can only invite 1 user per week and a max of 3 users.
Theres also a need for an admin pannel or scripts to manage user accounts, invite code generation, change of settings.
Users will have a simple online pannel where they can change passwords, check their invite codes and manage their services.
Hosting Plans
The service will offer a free plan and several upgrades. These upgrades will be one-time-purchages for upgrades. These upgrades do not expire and will not be subscriptions.
Software
Website
The main website will be built exclusivly with html and css using html templates, which will generate the website with Go, ensuring faster development.
Account creation will be handled with html forms connected to the backend written in Go.
Containers
Each user will have each own sftp container pointing to their own www directory that nginx will then host.
So basically, upon creating an account, the program running the server will create an sftp container and an nginx entry.
For now, it seems that the user creation process will be as follows:
- account creation
- container creation
- nginx entry
- nginx restart
- certbot
- nginx restart
Database
The database will be made with sqlite3 and data will be encrypted and salted with bcrypt. It will hold usernames, passwords, invite code, remaining invites, account status
payment system
Payments will be handled with stripe, which will ask for email and debit/credit card. Other payment options like monero will be tested and considered.
Closing thoughts
Many of these things will probably change with development for one reason or another, but I think its fine as long as it all works decently well in the end. I will make another blog post when I have a bare minimum working, by then I will make a git repository on git.based.pt.
I don’t have any experience in web development, so this will definitly be a fun project.