Open mr-karan opened 3 years ago
couple of things I would suggest
couple of things I would suggest
1. ssh login via key only. AWS makes it by default but DO and others might give you root password or password based login.
That is a good point. DO supports it, but you need to explicitly select a key when creating a droplet. I think it may be a good idea to explain ssh-keys before creating the droplet and suggest the users to create droplets with ssh-key selected, or does it make the flow complicated? @mr-karan?
2. fail2ban setup to protect against bruteforce. 3. logrotation in case access logs are kept. 4. unattended upgrades
fail2ban looks interesting. I think all these are good to include, may be in the last week? @mr-karan?
2-4: Yeah these are nice suggestions for Week 6. fail2ban
however is a bit complicated and not trivial to setup (also it has a lot of false positives in my experience). We can decide on that, rest all LGTM 👍
Just awesome! Looking forward to the course.
@anandology For the logo of the course, I had an idea that would represent a box of "goodies" (aka skillset) that you get once you learn self hosting. The logo basically shows that you learn how to manage/operate a Cloud server based on Linux once you do the course.
But yeah, I know this didn't come off quite as well I'd in mind. Please feel free to either edit this or make a completely new logo :see_no_evil:
https://deploy-preview-34--monschool.netlify.app/self-hosting-101/week1/overview/
^ Week 0, Week 1 are almost in ready shape.
cc @anandology You can review it and share feedback during the weekly sync up call.
cc @anandology You can review it and share feedback during the weekly sync up call.
Sure, I'll be review it before our call.
I'm interested to create this course.
About the course
Title
Self Hosting 101
Subtitle
Learn how to self host and manage applications on servers.
Description
This course is aimed towards beginners who are new to self hosting journey. The course starts with fundamentals like setting up a server, installing apps, configuring the machine, installing dependencies, setting up web server and goes further in explaining Day 2 tasks like setting up background services, debugging breaking applications using logs etc.
Course Outline
Mon School Self Hosting 101
Course Outcomes
At the end of this course, you should be able to:
Day 2
tasks like debugging using metrics and logs.Week 0
Objective: Some reading material will be shared to ignite interest in Self Hosting.
Week 1
Objective: Setup and configure a VPS.
mon-debug-agent
vim
Hostname
ip addr
Week 2
Objective: Deploy a static website with HTML, CSS, JS
nginx
usingapt
index.html
from scratch forhostname-a
.zip
of a new website from.git
repo forhostname-b
symlink
the file to/var/www
certbot
.hello.<username>.monschool.net
which points to their public IP.mon-debug-agent
with mentors.Week 3
Objective: Deploy a Python application
git
to clone a Python applicationPostgreSQL
README
pip
and project dependencies withvirtualenv
gunicorn
/uwsgi
for the webserverWeek 4
Objective: Understanding and setting up system services
systemd
/supervisorctl
to setupcron
/systemd-timer
to run a background task like backing up DB.rq
,redis
Week 5
Objective: Logs, Debugging and Fixing
htop
df
/ncdu
iftop
/easter-egg
endpoint of Python AppWeek 6
Objective: Recap + Further Reads
Optional: Based on the interest in the course we can add a week on Hosting apps using Docker/Containers