Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
136 lines (121 sloc) 5.16 KB
[% WRAPPER layout.tt title="NixOS Linux" hideTitle=1 menu='nixos' %]
[% USE JSON.Escape %]
[% USE IO.All %]
[% USE HTML %]
[% USE String %]
<link rel="alternate" type="application/rss+xml" title="RSS" href="/news-rss.xml" />
<div class="jumbotron">
<img class="right-logo" src="[%root%]logo/nixos-logo-only-hires.png" alt="NixOS Logo"/>
<h1>NixOS</h1>
<h2>The Purely Functional Linux Distribution</h2>
<p class="lead">NixOS is a Linux distribution with a unique approach
to package and configuration management. Built on top of the <a
href="[%root%]nix">Nix package manager</a>, it is completely
declarative, makes upgrading systems reliable, and has <a
href="[%root%]nixos/about.html">many other advantages</a>.</p>
<a class="btn btn-large btn-success"
href="[%root%]nixos/download.html"><i class="fa
fa-cloud-download"></i> Get NixOS</a>
</div>
<hr />
<div class="row-fluid">
<div class="span4">
<h2>Declarative</h2>
<p>NixOS has a completely <strong>declarative</strong> approach to
configuration management: you write a specification of the desired
configuration of your system in NixOS’s modular language, and
NixOS takes care of making it happen.</p>
</div>
<div class="span4">
<h2>Reliable</h2>
<p>NixOS has <strong>atomic upgrades and rollbacks</strong>. It’s
always safe to try an upgrade or configuration change: if things
go wrong, you can always roll back to the previous
configuration.</p>
</div>
<div class="span4">
<h2>DevOps-friendly</h2>
<p>Declarative specs and safe upgrades make NixOS a great system
for DevOps use. <a
href="[%root%]nixops"><strong>NixOps</strong></a>, the NixOS cloud
deployment tool, allows you to provision and manage networks of
NixOS machines in environments like Amazon EC2 and VirtualBox.</p>
</div>
</div>
<hr />
<div class="row-fluid">
<div class="span6">
<h3>
<a href="/news-rss.xml">
<img src="/logo/rss.png"/>
</a>
News
</h3>
[% INSERT "latest-news.xhtml" %]
<p><a href="news.html" class="btn btn-mini">More »</a></p>
</div>
<div class="span6">
<h3>
<a href="/blogs.xml">
<img src="/logo/rss.png"/>
</a>
Blog Posts
</h3>
<ul class="nixos-blogs">
[% FOREACH b IN JSON.Escape.json_decode(IO.All.new('blogs.json').all).channel.item.first(5); IF b; %]
<li>
<div class="nixos-blog">
[% author = b.title.split(':').0.trim;
title = b.title.remove('^[^:]*:').trim
%]
<div class="nixos-blog-title">
<a [% HTML.attributes(href => b.link) %]>[% HTML.escape(title.ucfirst) %]</a>
</div>
<div class="nixos-blog-author-info">
<span class="nixos-blog-author">[% HTML.escape(author) %]</span>
<span class="muted"> wrote on [% HTML.escape(b.pubDate) %]</span>
</div>
</div>
</li>
[% END; END %]
<p><a href="http://planet.nixos.org/" class="btn btn-mini">More »</a></p>
</ul>
<h3>Commits</h3>
[% stats = JSON.Escape.json_decode(IO.All.new('nixpkgs-commit-stats.json').all).all;
nrCommits = 0; FOREACH s IN stats; nrCommits = nrCommits + s; END %]
<p class="muted">[% stats.-1 %] commits in the last week, [% nrCommits %] in the last year</p>
<ul class="nixos-commits">
[% FOREACH c IN JSON.Escape.json_decode(IO.All.new('nixpkgs-commits.json').all).first(5); IF c; %]
<li>
<div class="nixos-commit">
<img class="nixos-commit-avatar" [% HTML.attributes(src => c.author ? c.author.avatar_url : root _ "images/GitHub-Mark-32px.png", alt => "Avatar") %]/>
<div class="nixos-commit-summary">
[% IF c.commit.message %]
<a [% HTML.attributes(href => c.html_url) %]>[% USE msg = String(c.commit.message.split('\n').0); HTML.escape(msg.truncate(60, '…')) %]</a>
[% ELSE %]
<em>No commit message</em>
[% END %]
</div>
<div class="nixos-commit-author-info">
<span class="nixos-commit-author">
[% IF c.author %]
<a [% HTML.attributes(href => c.author.html_url) %]>[% HTML.escape(c.commit.author.name) %]</a>
[% ELSE %]
[% HTML.escape(c.commit.author.name) %]
[% END %]
</span>
<span class="muted">authored [% HTML.escape(c.commit.author.date) %]</span>
</div>
</div>
</li>
[% END; END %]
</ul>
<p><a href="https://github.com/NixOS/nixpkgs/commits/master" class="btn btn-mini">More »</a></p>
<h3>Twitter</h3>
<p>
<a class="twitter-timeline" data-chrome="noheader nofooter transparent" href="https://twitter.com/nixos_org" data-widget-id="433975692670152704">Tweets by @nixos_org</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</p>
</div>
</div>
[% END %]