Oldpage
Created Wednesday 20 March 2024
Practical Project Final Info
Created Sunday 20 March 2022
Practical Project Brainstorm
For your proposal, please provide at least one possible idea that your team is interested in. You will not be held to the thing you name here,but I'd like it there for at least a start. Additionally, and this is important, I need to know about your team. If you are sticking with your same team, that's fine, let me know. If you are not, please ensure that you have reached out and worked things out with your team members. *Document this,* especially if you are NOT able to effectively reach them. Communication is key.
Project Rubric
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." — or at least self-hostable.
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 do, or you can, 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.
https://github.com/awesome-selfhosted/awesome-selfhosted
https://www.reddit.com/r/selfhosted/
DOCKER:
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.
https://medium.com/codingthesmartway-com-blog/docker-beginners-guide-part-1-images-containers-6f3507fffc98
https://thesmarthomejourney.com/2021/10/25/home-server-docker-compose/
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...
https://github.com/anderspitman/awesome-tunneling
Default project
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.
https://soupbowl.io/2020/03/replace-lamp-with-docker-the-easy-way
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)
https://us.bbcollab.com/recording/c6e8ff860f2c4a0e95a6ee12198bc8fe
Part 2
https://us.bbcollab.com/recording/d16c81e7f0f1435eb17c18f389348b2f
(there's some not entirely unexpected, but loud, music in there at times, watch your volume)
Links:
https://soupbowl.io/2020/03/replace-lamp-with-docker-the-easy-way
https://ngrok.com/
https://hub.docker.com/r/linuxserver/mstream
DELIVERABLE
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.
IV. Conclusions