about summary refs log tree commit diff
path: root/tools/nixery/static/index.html
blob: 24aa879a535d3c154686252a22ac8f47f9ef017f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Nixery</title>
    <style>
      body {
        margin: 40px auto;
        max-width: 650px;
        line-height: 1.6;
        font-size: 18px;
        color: #444;
        padding: 010px
      }

      .logo {
          max-width: 650px;
      }

      h1, h2, h3 {
        line-height: 1.2
      }
    </style>
  </head>
  <body>
    <header>
      <div align="center">
        <img class="logo" src="nixery-logo.png">
      </div>
      <aside>ad-hoc container images - powered by <a href="https://nixos.org/nix/">Nix</a></aside>
      <hr>
    </header>

    <p>
      This is an instance
      of <a href="https://github.com/google/nixery">Nixery</a>, which
      provides the ability to pull ad-hoc container images from a
      Docker-compatible registry server. The image names specify the
      contents the image should contain, which are then retrieved and
      built by the Nix package manager.
    </p>
    <p>
      Nix is also responsible for the creation of the container images
      themselves. To do this it uses an interesting layering strategy
      described in
      <a href="https://grahamc.com/blog/nix-and-layered-docker-images">this blog post</a>.
    </p>
    <h3>How does it work?</h3>
    <p>
      Simply point your local Docker installation (or other compatible
      registry client) at Nixery and ask for an image with the
      contents you desire. Image contents are path separated in the
      name, so for example if you needed an image that contains a
      shell and <code>emacs</code> you could pull it as such:
    </p>
    <p>
      <code>nixery.dev/shell/emacs25-nox</code>
    </p>
    <p>
      Image tags are currently ignored. Every package name needs to
      correspond to a key in the
      <a href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/all-packages.nix">nixpkgs package set</a>.
    </p>
    <p>
      The special meta-package <i>shell </i> provides default packages
      you would expect in an interactive environment (such as an
      interactively configured bash). If you use this package
      you <b>must</b> specify it as the first package in an image.
    </p>
    <h3>FAQ</h3>
    <ul>
      <li>
        <strong>Where is the source code for this?</strong>
        <br>
        Over <a href="https://github.com/google/nixery">on Github</a>.
      </li>
      <li>
        <strong>Which revision of <code>nixpkgs</code> is used?</strong>
        <br>
        Nixery imports a Nix channel
        via <code>builtins.fetchTarball</code>. Currently the channel
        to which this instance is pinned is NixOS 19.03.
      </li>
      <li>
        <strong>Is this an official Google project?</strong>
        <br>
        <strong>No.</strong> Nixery is not officially supported by
        Google.
      </li>
      <li>
        <strong>Can I depend on the demo instance in production?</strong>
        <br>
        <strong>No.</strong> The demo instance is just a demo. It
        might go down, move, or disappear entirely at any point.
        <br>
        To make use of Nixery in your project, please deploy a private
        instance. Stay tuned for instructions for how to do this on
        GKE.
      </li>
      <li>
        <strong>Who made this?</strong>
        <br>
        <a href="https://github.com/tazjin">tazjin</a>
      </li>
    </ul>
  </body>
</html>