Giter Site home page Giter Site logo

0xcf / decal-web Goto Github PK

View Code? Open in Web Editor NEW
19.0 7.0 39.0 91.17 MB

Course information for the XCF/OCF Unix System Administration DeCal

Home Page: https://decal.ocf.berkeley.edu

License: MIT License

HTML 75.54% Ruby 0.23% Liquid 1.80% SCSS 16.56% Makefile 1.67% Smarty 4.20%

decal-web's Introduction

OCF/XCF Linux SysAdmin DeCal Website

Build Status

This is the source of the OCF/XCF Unix System Administration DeCal website, currently available at decal.ocf.berkeley.edu.

The current iteration uses Jekyll to produce pages.

Development

decal-web is built for Jekyll, a static site generator. View the quick start guide for more information.

Developing using Docker

This is the reccomended method for development.

  1. Install Docker following instructions from here
  2. Pull the Docker image
$ docker pull jekyll/jekyll
  1. Clone this repository
$ git clone https://github.com/0xcf/decal-web
$ cd decal-web
  1. Build the site
$ docker run --rm --volume=$PWD:/srv/jekyll:Z  \
    --volume=$PWD/vendor/bundle:/usr/local/bundle:Z \
    jekyll/jekyll:latest jekyll build

The first volume is necessary to provide the build files to Jekyll but the second volume is optional and used to cache Gems. 5. Serve the site on your local machine

$ docker run --rm --volume=$PWD:/srv/jekyll:Z  \
    --volume=$PWD/vendor/bundle:/usr/local/bundle:Z \
    --publish [::1]:4000:4000 jekyll/jekyll:latest jekyll serve

The website should be served on http://localhost:4000 and will reflect changes that you make.

Developing on Supernova

This method currently does not work.

  1. SSH into supernova
$ ssh <ocf-username>@supernova.ocf.berkeley.edu
  1. Clone this repository
$ git clone https://github.com/0xcf/decal-web
  1. Start the Jekyll server on supernova with:
$ cd decal-web
$ make supernova

The console should ouput a web address (http://supernova.ocf.berkeley.edu:8xxx/). This web-page will update as you make changes, reload your browser tab to preview the changes.

Developing on your local machine

You will need Ruby 2 to build the site (it has been tested on Ruby2.7.4).

  • On Ubuntu 20.04, Ruby can be installed using sudo apt install ruby-full.
  • If using Arch, follow this guide to install it.
  • ruby-install is a helpful script- you can run ruby-install 2.7.4 if Ruby is on the wrong version in your package manager.
  • You can also use asdf-vm. After installing Ruby ( asdf install ruby 2.7.2 ), prepend asdf exec to all commands that require it (example: asdf exec bundle exec jekyll serve).

You may also need to install Bundler 2.3.10: gem install bundler:2.3.10

  1. Install Jekyll
$ bundle install
  1. Start your local Jekyll server. You can also use make local-dev.
$ bundle exec jekyll serve
  1. The console should output a server address (localhost:8xxx). Open that address in your browser.
  2. Reload your web browser after making a change to preview its effect.

For more information, refer to Just the Docs.

decal-web's People

Contributors

64bitpandas avatar abizer avatar baisang avatar ben9583 avatar bernardzhao avatar billqmao avatar bzh-bzh avatar c2tonyc2 avatar cg505 avatar dependabot[bot] avatar dkess avatar doku avatar dongkyunc avatar encadyma avatar ethanhs avatar fydai avatar glee- avatar ishaandham19 avatar ja5087 avatar jaysa68 avatar jvperrin avatar kalissaac avatar kashuncheng avatar kkuehlz avatar laksith19 avatar lancemathias avatar milotrince avatar stefkuk avatar tanx16 avatar tliu22 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

decal-web's Issues

Lab a6 Q3b: no retry:n in Linux /etc/resolv.conf

In checkpoint 2 Q3b*, it turned out that there isn't a retry:n in Linux /etc/resolv.conf. When I did a6 I assumed it was attempts:n**: sets the number of times the resolver will send a query to its name servers before giving up and returning an error to the calling application.

For Solaris, however, there is indeed a retry:n***: Sets the number of attempts made to connect to each name server.

See the linked Oracle manual for more info.

We should probably change retry:n to attempts:n, and update the solutions accordingly.

*: https://decal.ocf.berkeley.edu/labs/a6#checkpoint-2
**: https://linux.die.net/man/5/resolv.conf
***: https://docs.oracle.com/cd/E88353_01/html/E37852/resolv.conf-5.html

Update lab 0

  • Add some more questions to get a better idea of the general audience that is signing up for the decal
  • Make different labs depending on which track people want to sign up for

Add a table of contents for lab pages

Some of the labs have lengthy lecture notes built into the lab, with the actual lab questions at the end of the page. (Example: lab b3) A table of contents to skip to different sections on the page would make navigating these labs easier. We should add an auto-generated table of contents sidebar on each lab page.

Add tests for links on homepage

It would be nice to have a test (and pre-commit check) that all links on the homepage are valid and don't 404. This could prevent a lot of potential careless mistakes down the line.

I'm assigning myself on this but if anyone has ideas/thoughts on implementation, feel free to discuss here or make a PR.

Update bundler

We need to bump the version of our dependencies to much newer versions.

Fix build race conditions in Jenkins

Notice builds 30 and 31 on Jenkins. These correspond to pushes that happened within a few seconds of each other. Build 30 started first, but finished after 31, causing the changes of build 31 to get overwritten and the website to display an old version. After noticing this, I manually ran a build to fix the problem-- but there should be a way to ensure this doesn't happen.

@jvperrin, any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.