@ -0,0 +1,5 @@ | |||||
_site | |||||
.sass-cache | |||||
.jekyll-cache | |||||
.jekyll-metadata | |||||
vendor |
@ -0,0 +1,25 @@ | |||||
--- | |||||
permalink: /404.html | |||||
layout: default | |||||
--- | |||||
<style type="text/css" media="screen"> | |||||
.container { | |||||
margin: 10px auto; | |||||
max-width: 600px; | |||||
text-align: center; | |||||
} | |||||
h1 { | |||||
margin: 30px 0; | |||||
font-size: 4em; | |||||
line-height: 1; | |||||
letter-spacing: -1px; | |||||
} | |||||
</style> | |||||
<div class="container"> | |||||
<h1>404</h1> | |||||
<p><strong>Page not found :(</strong></p> | |||||
<p>The requested page could not be found.</p> | |||||
</div> |
@ -0,0 +1,30 @@ | |||||
source "https://rubygems.org" | |||||
# Hello! This is where you manage which Jekyll version is used to run. | |||||
# When you want to use a different version, change it below, save the | |||||
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: | |||||
# | |||||
# bundle exec jekyll serve | |||||
# | |||||
# This will help ensure the proper Jekyll version is running. | |||||
# Happy Jekylling! | |||||
gem "jekyll", "~> 4.0.1" | |||||
# This is the default theme for new Jekyll sites. You may change this to anything you like. | |||||
gem "minima", "~> 2.5" | |||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and | |||||
# uncomment the line below. To upgrade, run `bundle update github-pages`. | |||||
# gem "github-pages", group: :jekyll_plugins | |||||
# If you have any plugins, put them here! | |||||
group :jekyll_plugins do | |||||
gem "jekyll-feed", "~> 0.12" | |||||
end | |||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem | |||||
# and associated library. | |||||
install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do | |||||
gem "tzinfo", "~> 1.2" | |||||
gem "tzinfo-data" | |||||
end | |||||
# Performance-booster for watching directories on Windows | |||||
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform? | |||||
gem "just-the-docs" |
@ -0,0 +1,92 @@ | |||||
GEM | |||||
remote: https://rubygems.org/ | |||||
specs: | |||||
addressable (2.7.0) | |||||
public_suffix (>= 2.0.2, < 5.0) | |||||
colorator (1.1.0) | |||||
concurrent-ruby (1.1.8) | |||||
em-websocket (0.5.2) | |||||
eventmachine (>= 0.12.9) | |||||
http_parser.rb (~> 0.6.0) | |||||
eventmachine (1.2.7) | |||||
ffi (1.14.2) | |||||
forwardable-extended (2.6.0) | |||||
http_parser.rb (0.6.0) | |||||
i18n (1.8.9) | |||||
concurrent-ruby (~> 1.0) | |||||
jekyll (4.0.1) | |||||
addressable (~> 2.4) | |||||
colorator (~> 1.0) | |||||
em-websocket (~> 0.5) | |||||
i18n (>= 0.9.5, < 2) | |||||
jekyll-sass-converter (~> 2.0) | |||||
jekyll-watch (~> 2.0) | |||||
kramdown (~> 2.1) | |||||
kramdown-parser-gfm (~> 1.0) | |||||
liquid (~> 4.0) | |||||
mercenary (~> 0.3.3) | |||||
pathutil (~> 0.9) | |||||
rouge (~> 3.0) | |||||
safe_yaml (~> 1.0) | |||||
terminal-table (~> 1.8) | |||||
jekyll-feed (0.15.1) | |||||
jekyll (>= 3.7, < 5.0) | |||||
jekyll-sass-converter (2.1.0) | |||||
sassc (> 2.0.1, < 3.0) | |||||
jekyll-seo-tag (2.7.1) | |||||
jekyll (>= 3.8, < 5.0) | |||||
jekyll-watch (2.2.1) | |||||
listen (~> 3.0) | |||||
just-the-docs (0.3.3) | |||||
jekyll (>= 3.8.5) | |||||
jekyll-seo-tag (~> 2.0) | |||||
rake (>= 12.3.1, < 13.1.0) | |||||
kramdown (2.3.0) | |||||
rexml | |||||
kramdown-parser-gfm (1.1.0) | |||||
kramdown (~> 2.0) | |||||
liquid (4.0.3) | |||||
listen (3.4.1) | |||||
rb-fsevent (~> 0.10, >= 0.10.3) | |||||
rb-inotify (~> 0.9, >= 0.9.10) | |||||
mercenary (0.3.6) | |||||
minima (2.5.1) | |||||
jekyll (>= 3.5, < 5.0) | |||||
jekyll-feed (~> 0.9) | |||||
jekyll-seo-tag (~> 2.1) | |||||
pathutil (0.16.2) | |||||
forwardable-extended (~> 2.6) | |||||
public_suffix (4.0.6) | |||||
rake (13.0.3) | |||||
rb-fsevent (0.10.4) | |||||
rb-inotify (0.10.1) | |||||
ffi (~> 1.0) | |||||
rexml (3.2.4) | |||||
rouge (3.26.0) | |||||
safe_yaml (1.0.5) | |||||
sassc (2.4.0) | |||||
ffi (~> 1.9) | |||||
terminal-table (1.8.0) | |||||
unicode-display_width (~> 1.1, >= 1.1.1) | |||||
thread_safe (0.3.6) | |||||
tzinfo (1.2.9) | |||||
thread_safe (~> 0.1) | |||||
tzinfo-data (1.2021.1) | |||||
tzinfo (>= 1.0.0) | |||||
unicode-display_width (1.7.0) | |||||
wdm (0.1.1) | |||||
PLATFORMS | |||||
ruby | |||||
DEPENDENCIES | |||||
jekyll (~> 4.0.1) | |||||
jekyll-feed (~> 0.12) | |||||
just-the-docs | |||||
minima (~> 2.5) | |||||
tzinfo (~> 1.2) | |||||
tzinfo-data | |||||
wdm (~> 0.1.1) | |||||
BUNDLED WITH | |||||
2.1.4 |
@ -0,0 +1,58 @@ | |||||
# Welcome to Jekyll! | |||||
# | |||||
# This config file is meant for settings that affect your whole blog, values | |||||
# which you are expected to set up once and rarely edit after that. If you find | |||||
# yourself editing this file very often, consider using Jekyll's data files | |||||
# feature for the data you need to update frequently. | |||||
# | |||||
# For technical reasons, this file is *NOT* reloaded automatically when you use | |||||
# 'bundle exec jekyll serve'. If you change this file, please restart the server process. | |||||
# | |||||
# If you need help with YAML syntax, here are some quick references for you: | |||||
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml | |||||
# https://learnxinyminutes.com/docs/yaml/ | |||||
# | |||||
# Site settings | |||||
# These are used to personalize your new site. If you look in the HTML files, | |||||
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. | |||||
# You can create any custom variable you would like, and they will be accessible | |||||
# in the templates via {{ site.myvariable }}. | |||||
title: Self Hosted Education | |||||
email: abhas@abhas.io | |||||
description: >- # this means to ignore newlines until "baseurl:" | |||||
Write an awesome description for your new site here. You can edit this | |||||
line in _config.yml. It will appear in your document head meta (for | |||||
Google search results) and in your feed.xml site description. | |||||
baseurl: "" # the subpath of your site, e.g. /blog | |||||
url: "https://selfhosted.education" # the base hostname & protocol for your site, e.g. http://example.com | |||||
twitter_username: abhasabhinav | |||||
github_username: abhas | |||||
logo: "/assets/she-logo.png" | |||||
search_enabled: false | |||||
# Build settings | |||||
theme: "just-the-docs" | |||||
plugins: | |||||
- jekyll-feed | |||||
# Exclude from processing. | |||||
# The following items will not be processed, by default. | |||||
# Any item listed under the `exclude:` key here will be automatically added to | |||||
# the internal "default list". | |||||
# | |||||
# Excluded items can be processed by explicitly listing the directories or | |||||
# their entries' file path in the `include:` list. | |||||
# | |||||
# exclude: | |||||
# - .sass-cache/ | |||||
# - .jekyll-cache/ | |||||
# - gemfiles/ | |||||
# - Gemfile | |||||
# - Gemfile.lock | |||||
# - node_modules/ | |||||
# - vendor/bundle/ | |||||
# - vendor/cache/ | |||||
# - vendor/gems/ | |||||
# - vendor/ruby/ |
@ -0,0 +1,206 @@ | |||||
--- | |||||
layout: table_wrappers | |||||
--- | |||||
<!DOCTYPE html> | |||||
<html lang="{{ site.lang | default: 'en-US' }}"> | |||||
{% include head.html %} | |||||
<body> | |||||
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> | |||||
<symbol id="svg-link" viewBox="0 0 24 24"> | |||||
<title>Link</title> | |||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> | |||||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> | |||||
</svg> | |||||
</symbol> | |||||
<symbol id="svg-search" viewBox="0 0 24 24"> | |||||
<title>Search</title> | |||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> | |||||
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> | |||||
</svg> | |||||
</symbol> | |||||
<symbol id="svg-menu" viewBox="0 0 24 24"> | |||||
<title>Menu</title> | |||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> | |||||
<line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> | |||||
</svg> | |||||
</symbol> | |||||
<symbol id="svg-arrow-right" viewBox="0 0 24 24"> | |||||
<title>Expand</title> | |||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> | |||||
<polyline points="9 18 15 12 9 6"></polyline> | |||||
</svg> | |||||
</symbol> | |||||
<symbol id="svg-doc" viewBox="0 0 24 24"> | |||||
<title>Document</title> | |||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> | |||||
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> | |||||
</svg> | |||||
</symbol> | |||||
</svg> | |||||
<div class="side-bar"> | |||||
<div class="site-header"> | |||||
<a href="{{ '/' | absolute_url }}" class="site-title lh-tight">{% include title.html %}</a> | |||||
<a href="#" id="menu-button" class="site-button"> | |||||
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg> | |||||
</a> | |||||
</div> | |||||
<nav role="navigation" aria-label="Main" id="site-nav" class="site-nav"> | |||||
{% if site.just_the_docs.collections %} | |||||
{% assign collections_size = site.just_the_docs.collections | size %} | |||||
{% for collection_entry in site.just_the_docs.collections %} | |||||
{% assign collection_key = collection_entry[0] %} | |||||
{% assign collection_value = collection_entry[1] %} | |||||
{% assign collection = site[collection_key] %} | |||||
{% if collection_value.nav_exclude != true %} | |||||
{% if collections_size > 1 %} | |||||
<div class="nav-category">{{ collection_value.name }}</div> | |||||
{% endif %} | |||||
{% include nav.html pages=collection %} | |||||
{% endif %} | |||||
{% endfor %} | |||||
{% else %} | |||||
{% include nav.html pages=site.html_pages %} | |||||
{% endif %} | |||||
</nav> | |||||
<footer class="site-footer"> | |||||
The "Self Hosted Education" initiative is a public service initiative | |||||
to encourage schools, colleges, universities etc. to use Free Software | |||||
for all aspects of their computing needs. | |||||
</footer> | |||||
</div> | |||||
<div class="main" id="top"> | |||||
<div id="main-header" class="main-header"> | |||||
{% if site.search_enabled != false %} | |||||
<div class="search"> | |||||
<div class="search-input-wrap"> | |||||
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search {{ site.title }}" aria-label="Search {{ site.title }}" autocomplete="off"> | |||||
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label> | |||||
</div> | |||||
<div id="search-results" class="search-results"></div> | |||||
</div> | |||||
{% endif %} | |||||
{% include header_custom.html %} | |||||
{% if site.aux_links %} | |||||
<nav aria-label="Auxiliary" class="aux-nav"> | |||||
<ul class="aux-nav-list"> | |||||
{% for link in site.aux_links %} | |||||
<li class="aux-nav-list-item"> | |||||
<a href="{{ link.last }}" class="site-button" | |||||
{% if site.aux_links_new_tab %} | |||||
target="_blank" rel="noopener noreferrer" | |||||
{% endif %} | |||||
> | |||||
{{ link.first }} | |||||
</a> | |||||
</li> | |||||
{% endfor %} | |||||
</ul> | |||||
</nav> | |||||
{% endif %} | |||||
</div> | |||||
<div id="main-content-wrap" class="main-content-wrap"> | |||||
{% unless page.url == "/" %} | |||||
{% if page.parent %} | |||||
{%- for node in pages_list -%} | |||||
{%- if node.parent == nil -%} | |||||
{%- if page.parent == node.title or page.grand_parent == node.title -%} | |||||
{%- assign first_level_url = node.url | absolute_url -%} | |||||
{%- endif -%} | |||||
{%- if node.has_children -%} | |||||
{%- assign children_list = pages_list | where: "parent", node.title -%} | |||||
{%- for child in children_list -%} | |||||
{%- if page.url == child.url or page.parent == child.title -%} | |||||
{%- assign second_level_url = child.url | absolute_url -%} | |||||
{%- endif -%} | |||||
{%- endfor -%} | |||||
{%- endif -%} | |||||
{%- endif -%} | |||||
{%- endfor -%} | |||||
<nav aria-label="Breadcrumb" class="breadcrumb-nav"> | |||||
<ol class="breadcrumb-nav-list"> | |||||
{% if page.grand_parent %} | |||||
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li> | |||||
<li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li> | |||||
{% else %} | |||||
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li> | |||||
{% endif %} | |||||
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li> | |||||
</ol> | |||||
</nav> | |||||
{% endif %} | |||||
{% endunless %} | |||||
<div id="main-content" class="main-content" role="main"> | |||||
{% if site.heading_anchors != false %} | |||||
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %} | |||||
{% else %} | |||||
{{ content }} | |||||
{% endif %} | |||||
{% if page.has_children == true and page.has_toc != false %} | |||||
<hr> | |||||
<h2 class="text-delta">Table of contents</h2> | |||||
<ul> | |||||
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%} | |||||
{% for child in children_list %} | |||||
<li> | |||||
<a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %} | |||||
</li> | |||||
{% endfor %} | |||||
</ul> | |||||
{% endif %} | |||||
{% capture footer_custom %} | |||||
{%- include footer_custom.html -%} | |||||
{% endcapture %} | |||||
{% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %} | |||||
<hr> | |||||
<footer> | |||||
{% if site.back_to_top %} | |||||
<p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p> | |||||
{% endif %} | |||||
{{ footer_custom }} | |||||
{% if site.last_edit_timestamp or site.gh_edit_link %} | |||||
<div class="d-flex mt-2"> | |||||
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %} | |||||
<p class="text-small text-grey-dk-000 mb-0 mr-2"> | |||||
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>. | |||||
</p> | |||||
{% endif %} | |||||
{% if | |||||
site.gh_edit_link and | |||||
site.gh_edit_link_text and | |||||
site.gh_edit_repository and | |||||
site.gh_edit_branch and | |||||
site.gh_edit_view_mode | |||||
%} | |||||
<p class="text-small text-grey-dk-000 mb-0"> | |||||
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a> | |||||
</p> | |||||
{% endif %} | |||||
</div> | |||||
{% endif %} | |||||
</footer> | |||||
{% endif %} | |||||
</div> | |||||
</div> | |||||
{% if site.search_enabled != false %} | |||||
{% if site.search.button %} | |||||
<a href="#" id="search-button" class="search-button"> | |||||
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg> | |||||
</a> | |||||
{% endif %} | |||||
<div class="search-overlay"></div> | |||||
{% endif %} | |||||
</div> | |||||
</body> | |||||
</html> |
@ -0,0 +1,29 @@ | |||||
--- | |||||
layout: post | |||||
title: "Welcome to Jekyll!" | |||||
date: 2021-02-25 00:19:13 +0530 | |||||
categories: jekyll update | |||||
--- | |||||
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. | |||||
Jekyll requires blog post files to be named according to the following format: | |||||
`YEAR-MONTH-DAY-title.MARKUP` | |||||
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works. | |||||
Jekyll also offers powerful support for code snippets: | |||||
{% highlight ruby %} | |||||
def print_hi(name) | |||||
puts "Hi, #{name}" | |||||
end | |||||
print_hi('Tom') | |||||
#=> prints 'Hi, Tom' to STDOUT. | |||||
{% endhighlight %} | |||||
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. | |||||
[jekyll-docs]: https://jekyllrb.com/docs/home | |||||
[jekyll-gh]: https://github.com/jekyll/jekyll | |||||
[jekyll-talk]: https://talk.jekyllrb.com/ |
@ -0,0 +1,21 @@ | |||||
body { | |||||
font-family: Iosevka; | |||||
font-weight: 400; | |||||
font-feature-settings: "kern" 1, "liga" 1; | |||||
font-optical-sizing: auto; | |||||
color: #010101; | |||||
} | |||||
.site-footer { | |||||
text-align: justify; | |||||
color: #4f4f4f; | |||||
font-weight: 500; | |||||
line-height: 1.2em; | |||||
font-size: 120%; | |||||
} | |||||
h1, h2 { | |||||
font-family: Iosevka; | |||||
color: #3771C9; | |||||
font-weight: 500; | |||||
} |
@ -0,0 +1,10 @@ | |||||
--- | |||||
layout: page | |||||
title: About | |||||
nav_order: 1 | |||||
permalink: /about/ | |||||
--- | |||||
<img src="/assets/she-logo.png"> | |||||
@ -0,0 +1,7 @@ | |||||
--- | |||||
layout: default | |||||
title: Take Action | |||||
nav_order: 7 | |||||
--- | |||||
# Take Action |
@ -0,0 +1,32 @@ | |||||
--- | |||||
layout: default | |||||
title: Benefits for Students | |||||
nav_order: 5 | |||||
--- | |||||
# Benefits for Students | |||||
## Hands-on Experience | |||||
Students will gain complete hands-on experience on the tools that are regularly | |||||
used in industry and the FOSS community. Pro-actively building skills in such | |||||
tools will make it possible for them to contribute to FOSS and also pitch for | |||||
systems design and administration, research and software development | |||||
opportunities professionally. | |||||
## Awareness and Skills | |||||
Awareness of methods and practices used in industry or FOSS community: It is | |||||
not just tools that are essential – awareness and experience with established | |||||
and ad-hoc methods and practices will enable students to fit in easily and | |||||
quickly into global communities and participate effectively. | |||||
## Opportunity to learn and experiment safely | |||||
Opportunity to experiment and learn safely without affecting the production | |||||
deployment of services in the lab. Students should not just be users and | |||||
consumers of technology. By demonstrating the fact that such infrastructure can | |||||
be built effectively and affordably by choosing Self Hosting and Free Software, | |||||
we can enable them to also attempt to do the same and learn and build so much | |||||
more. | |||||
@ -0,0 +1,7 @@ | |||||
--- | |||||
layout: default | |||||
title: Credits | |||||
nav_order: 6 | |||||
--- | |||||
# Credits |
@ -0,0 +1 @@ | |||||
rsync -apv _site/* root@h0gvpn:/home/websites/selfhosted.education |
@ -0,0 +1,22 @@ | |||||
--- | |||||
layout: default | |||||
title: Services and Solutions | |||||
nav_order: 4 | |||||
has_children: true | |||||
--- | |||||
# Essential Services & Solutions | |||||
Presented here is an overview of solutions that are essential and | |||||
indispensable for any college campus or departmental network. | |||||
The goal of this note is to explain what these solutions are, how they | |||||
work, why they are useful and how they provide more value to everyone | |||||
while enabling us to become more effective in whatever we do. | |||||
There are three core ideologies which form the basis for our | |||||
discussion here: | |||||
* Free / Open Source Software, | |||||
* Self-Hosting, and | |||||
* Build-it-Yourself |
@ -0,0 +1,9 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 3 | |||||
title: Communication Tools | |||||
--- | |||||
# Email, Communication & Collaboration | |||||
@ -0,0 +1,8 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 5 | |||||
title: File Sharing + Archival | |||||
--- | |||||
# File Sharing, Collaboration and Media Archival |
@ -0,0 +1,9 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 1 | |||||
title: Identity Management | |||||
--- | |||||
# Identity Management & Centralised Authentication | |||||
@ -0,0 +1,8 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 2 | |||||
title: Lab Automation | |||||
--- | |||||
# Lab Automation & Local Repository Mirrors |
@ -0,0 +1,8 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 4 | |||||
title: Request Tracking | |||||
--- | |||||
# Helpdesks & Request Tracking |
@ -0,0 +1,8 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 6 | |||||
title: Source Code | |||||
--- | |||||
# Source Code management, Versioning, Collaboration, Review, Release, Packaging, Documentation & Deployment. |
@ -0,0 +1,8 @@ | |||||
--- | |||||
layout: default | |||||
parent: Services and Solutions | |||||
nav_order: 7 | |||||
title: Virtualisation | |||||
--- | |||||
# Virtualisation, Private Cloud & Infrastructure / Container / Platform as a Service |
@ -0,0 +1,11 @@ | |||||
--- | |||||
# Feel free to add content and custom Front Matter to this file. | |||||
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults | |||||
layout: home | |||||
--- | |||||
<img src="/assets/she-logo.png"> | |||||
<h2> Free Software Solutions For Educational Institutions </h2> <h3 style="margin-top: -0.2em"> Technical Details, Common Problems and Benefits </h3> | |||||
@ -0,0 +1,22 @@ | |||||
--- | |||||
layout: default | |||||
title: Network Solutions | |||||
nav_order: 3 | |||||
has_children: true | |||||
--- | |||||
# Network Solutions | |||||
Presented here is an overview of solutions that are essential and | |||||
indispensable for any college campus or departmental network. | |||||
The goal of this note is to explain what these solutions are, how they | |||||
work, why they are useful and how they provide more value to everyone | |||||
while enabling us to become more effective in whatever we do. | |||||
There are three core ideologies which form the basis for our | |||||
discussion here: | |||||
* Free / Open Source Software, | |||||
* Self-Hosting, and | |||||
* Build-it-Yourself |
@ -0,0 +1,9 @@ | |||||
--- | |||||
layout: default | |||||
parent: Network Solutions | |||||
nav_order: 4 | |||||
title: Access Control | |||||
--- | |||||
# Network Access Control, Captive Portal, BYOD Management, Centralised Wired and Wireless Management | |||||
@ -0,0 +1,82 @@ | |||||
--- | |||||
layout: default | |||||
parent: Network Solutions | |||||
nav_order: 1 | |||||
title: Firewalls | |||||
--- | |||||
# Firewalls, Bandwidth Management and Link Aggregation and Failover | |||||
<div style="text-align: center; width: 100%;"> | |||||
<img src="/assets/firewalls.png"> | |||||
</div> | |||||
## Overview | |||||
A firewall is a hardware + software solution that connects and shares | |||||
Internet bandwidth with your local network. It isolates and protects | |||||
the local network from the Internet and also allows you to securely | |||||
expose specific applications, services and servers on the local | |||||
network. | |||||
A bandwidth management solution helps you monitor your bandwidth usage | |||||
and then allows you to define bandwidth and Internet usage priorities | |||||
and policies. | |||||
A link aggregation and failover solution lets you connect multiple | |||||
Internet links to your firewall so that you can have more bandwidth | |||||
available to users on the local network. This also means that you | |||||
don’t rely on a single Internet link or ISP for your Internet | |||||
connectivity needs. | |||||
## Common Problems | |||||
* You have a firewall but you need to repeatedly call a service provider or | |||||
vendor to manage the rules for you. | |||||
* You have a lot of Internet bandwidth but your Internet usage and experience | |||||
is slow. | |||||
* When large or bulk files are repeatedly downloaded, it causes a slowdown for | |||||
other users. | |||||
* It is impossible to account for your bandwidth utilisation. | |||||
* When your main Internet link goes down, or is slow, it cuts off the entire | |||||
network from the Internet | |||||
* You are having to depend on third-party ISPs to provide high- speed and | |||||
unrestricted access to the Internet | |||||
* Even when you have multiple links to the Internet, you might not be able to | |||||
use them all at the same time. Or specify policies on who can use which one | |||||
at what time. | |||||
## Benefits | |||||
* No dependency on 3rd party for firewall management. | |||||
* No risk of usage data being sent to a firewall vendor's cloud setup for | |||||
analysis – thereby, ensuring better privacy for users | |||||
* Optimal utilisation of all the available Internet links simultaneously and | |||||
automatic failover | |||||
* Fair sharing of bandwidth amongst users so that prioritised traffic and users | |||||
always get the required bandwidth | |||||
* Actionable Internet utilisation reports | |||||
* Caching of frequently accessed content from the Internet saves bandwidth and | |||||
improves user experience | |||||
* Extended caching of bulk content like OS updates, Anti-Virus updates etc | |||||
* Granular Web Access controls depending on user, time of day, day of week, | |||||
content-type, request-type etc | |||||
* Logs can be retained for as long as required for data and trend analysis | |||||
* User identity and authentication is mapped from a singular, campus-wide | |||||
service that is used for all other applications as well | |||||
@ -0,0 +1,64 @@ | |||||
--- | |||||
layout: default | |||||
parent: Network Solutions | |||||
nav_order: 2 | |||||
title: Security | |||||
--- | |||||
# Network Security and Intrusion / Malware Detection | |||||
## Overview | |||||
Keeping the network secure is as important as keeping it fully- | |||||
functional. The traditional approach of just using an equipment at the | |||||
gateway is not sufficient. The threats can emanate from inside the | |||||
networks as much as they come from the Internet. | |||||
A functional and up-to-date Intrusion Detection and Prevention System | |||||
(IDS/IPS) is an integral part of a secure network in addition to anti- | |||||
malware software. An IDS/IPS inspects all the traffic passing through | |||||
the network in real-time and matches them with pre-defined signatures | |||||
to generate alerts and/or block the malicious activities from outside | |||||
or inside the network. | |||||
A SIEM (Security Incident and Events Monitoring) system can collect | |||||
logs generated from various components like firewalls, servers, | |||||
IDS/IPS, network access controllers, DHCP Servers etc to provide a | |||||
holistic view of the security situation of the network. | |||||
## Common Problems | |||||
* There are infected machines in the network which are generating huge amount | |||||
of traffic affecting the whole network. These things can happen silently | |||||
without any outward symptoms till it begins to affect users in a negative way. | |||||
* There are Trojans installed in the machines which spread through the network | |||||
or can be part of a bigger attacks and are just waiting for a trigger from | |||||
“Command and Control” (CnC) server on the Internet | |||||
* You are not even aware that there are a lot of Intrusion or Denial-of-Service | |||||
(DoS) attacks are happening on your network which are eating system resources | |||||
of your gateway firewall | |||||
* Students could be trying to learn about security by attacking the servers | |||||
inside the college network (or on the Internet) | |||||
* Unauthorised access attempts to the servers or computers inside the network | |||||
are not noticed | |||||
## Benefits | |||||
* Visibility into malicious activity present in the network - originating from | |||||
either the Internet or within the local network | |||||
* Automatic blocking of the hosts generating such activities from the Internet | |||||
* Automatic isolation of the hosts generating malicious traffic from within the | |||||
network with the users and administrators get notified of the same | |||||
* Various vulnerabilities get highlighted on the SIEM which when fixed on time | |||||
save the network from catastrophic downtime | |||||
* The possibility of machines inside the network getting involved in large | |||||
scale attacks on the Internet gets minimised to a great extent | |||||
@ -0,0 +1,9 @@ | |||||
--- | |||||
layout: default | |||||
parent: Network Solutions | |||||
nav_order: 3 | |||||
title: Wireless | |||||
--- | |||||
# Campus Wireless Networking and Access Points | |||||
@ -0,0 +1,22 @@ | |||||
--- | |||||
layout: default | |||||
title: Overview | |||||
nav_order: 2 | |||||
has_children: true | |||||
--- | |||||
# Overview | |||||
Presented here is an overview of solutions that are essential and | |||||
indispensable for any college campus or departmental network. | |||||
The goal of this note is to explain what these solutions are, how they | |||||
work, why they are useful and how they provide more value to everyone | |||||
while enabling us to become more effective in whatever we do. | |||||
There are three core ideologies which form the basis for our | |||||
discussion here: | |||||
* Free / Open Source Software, | |||||
* Self-Hosting, and | |||||
* Build-it-Yourself |
@ -0,0 +1,8 @@ | |||||
--- | |||||
layout: default | |||||
parent: Overview | |||||
nav_order: 3 | |||||
title: Build it yourself | |||||
--- | |||||
# Build it yourself |
@ -0,0 +1,57 @@ | |||||
--- | |||||
layout: default | |||||
parent: Overview | |||||
nav_order: 1 | |||||
title: What is Free Software? | |||||
--- | |||||
# What is Free/Libre/Open Source Software? | |||||
Free / Open Source Software is software that provides the following | |||||
four freedoms to us: | |||||
* Freedom to use the software for any purpose | |||||
* Freedom to study the source code of the software and learn from it | |||||
* Freedom to modify the software and make changes to it | |||||
* Freedom to share the software (in its original and modified form) | |||||
These freedoms are essential as they provide us with the essential | |||||
framework for learning and sharing knowledge. | |||||
The freedom to use software for any purpose ensures that anyone can | |||||
use the software for any endeavour (educational, personal, commercial, | |||||
non-profit, governmental, defence and more) and in any region. Free | |||||
Software does not discriminate. | |||||
> <em> For the purpose of this document, we use the terms “Free Software” and “Free | |||||
> / Open Source Software” interchangeably to refer to software that provides | |||||
> freedom to us. While “Free Software” is the original term that was used to | |||||
> describe such a body of software, the term “Open Source” has also gained a | |||||
> lot of popularity . We consider “Free Software” to be a more useful term | |||||
> since it captures the essence of this philosophy and does not dilute it for | |||||
> whatever pragmatic or marketing reasons. </em> | |||||
The availability of source code provides us an opportunity to study | |||||
and understand how something works. Without this freedom we would | |||||
never be able to learn from what others have done or apply that | |||||
learning to our own lives. | |||||
The freedom to modify the software enables to learn and gain | |||||
confidence by doing things. It allows us to extend the software, fix | |||||
bugs in it, translate or localise it and adapt it for other purposes. | |||||
Finally, the freedom to share a program (in its original or modified | |||||
form) allows us to help others while also providing subsequent users | |||||
with the same sort of freedom that we enjoy. It ensures that the | |||||
software remains free and provides every user, teacher and developer | |||||
equitable freedom. | |||||
Proprietary software (ie. software that is distributed only as a | |||||
binary and where we are restricted from accessing its source code or | |||||
modifying it or sharing it freely), on the other hand, does not | |||||
provide us with any opportunity to learn or understand how things work | |||||
or make changes to them to test and validate our understanding. | |||||
@ -0,0 +1,9 @@ | |||||
--- | |||||
layout: default | |||||
parent: Overview | |||||
nav_order: 4 | |||||
title: Why is this relevant? | |||||
--- | |||||
# Why is this relevant for us? | |||||
@ -0,0 +1,10 @@ | |||||
--- | |||||
layout: default | |||||
parent: Overview | |||||
nav_order: 2 | |||||
title: Choosing Self Hosting | |||||
--- | |||||
# Why choose self hosting? | |||||
@ -0,0 +1,9 @@ | |||||
--- | |||||
layout: default | |||||
parent: Overview | |||||
nav_order: 5 | |||||
title: What can we build? | |||||
--- | |||||
# What can we build? | |||||