Created Sunday 20 March 2022
For your project, your team will work towards a documented implementation (or proof-of-concept) of any IT/Computer related task or service: The catch is; it must be "self-hosted."
Self-hosted is the most important part; let's talk about what that means. Roughly, it will likely be the kind of thing that's associated with "hosting" or "the cloud" — but unlike many of those, you have full access to the code running the project on a computer you own or control.
A short list of examples might be:
- A file synchronization service (e.g. Syncthing or Nextcloud as a Dropbox replacement)
- A music server (e.g. Funkwhale or MPD as a Spotify replacement)
- A media server (e.g. Plex or Jellyfin as a Netflix replacement)
- A voice controlled assistant (e.g. Mycroft or json2voice as a Siri/Alexa replacement)
- Self Hosted AI ?( e.g. LLama or Vicuna or Stable Diffusion as a ChatGPT replacement)
You are by no means llmited to the choices here. Below is a large list of possible ideas.
Note, docker and other containerization technology has greatly streamlined this process. It is not *required* but will likely be the easiest way to do this.
You are likely to want to be able to show me and your friends your work directly over the internet; this can be done in a number of ways, but might be challening for beginners: Here are your options.
https://ngrok.io - or...
FINALLY, a very good (if boring) default project, for which I have step-by-step instructions is to run a local webserver (LAMP). You can follow this.
Older LAMP Guide
VIDEO AND INFO FOR THE ABOVE
Here are videos and the corresponding links for getting Docker and your project going.
Part 1 is here (again, go ahead and just *stop* at about the 30 min mark, and then do the below)
(there's some not entirely unexpected, but loud, music in there at times, watch your volume)
What you will deliver to me is documentation and proof of effort. Text only is sufficient, but I anticipate that many of may find the inclusion of examples and screenshots of your work to be beneficial as well. Either way, please provide your final documentation as a pdf.
You should provide:
I. An Introduction.
The introduction should state
- If applicable, name the (perhaps presently more popular) technology you are intending to replace or augment).
- A short statement of scope (i.e. what are you going to do, and what you are not going to do.)
- Finally, name the technology you propose to actually use or attempt to use in the beginning, including the "machine" and the "software."
II. An overview
Why is it useful, and specifically, why might your idea be superior
Explain what (possible) paid or cloud service this might replace.
Provide other possible options and possibilities.
Who are ALL the users (e.g. will there be administrators vs regular users?)
Where will it be hosted?
When will it be active?
III. A summary of what you actually did
Be sure to state with specificity what worked, what didn't, why things worked out the way they did and what you might do in the future.