Serge Bazanski
194b1c8e62
This introduces Nix, the package manager, and nixpkgs, the package collection, into hscloud's bazel build machinery. There are two reasons behind this: - on NixOS, it's painful or at least very difficult to run hscloud out of the box. Especially with rules_go, that download a blob from the Internet to get a Go toolchain, it just fails outright. This solves this and allows hscloud to be used on NixOS. - on non-NixOS platforms that still might have access to Nix this allows to somewhat hermeticize the build. Notably, Python now comes from nixpkgs, and is fabricobbled in a way that makes pip3_import use Nix system dependencies for ncurses and libpq. This has been tested to run ci_presubmit on NixOS 20.09pre and Gentoo ~amd64. Change-Id: Ic16e4827cb52a05aea0df0eed84d80c5e9ae0e07 |
||
---|---|---|
app | ||
bgpwtf | ||
bzl | ||
cluster | ||
dc | ||
devtools | ||
doc | ||
games/factorio/modproxy | ||
gcp | ||
go | ||
hswaw | ||
kube | ||
nix | ||
ops | ||
personal | ||
third_party | ||
tools | ||
.bazelrc | ||
.gitignore | ||
BUILD | ||
ci_presubmit.sh | ||
COPYING | ||
default.nix | ||
env.fish | ||
env.sh | ||
hackdoc.toml | ||
OWNERS | ||
README.md | ||
WORKSPACE |
hscloud
is the main monorepo of the Warsaw Hackerspace infrastructure code.
Any time you see a //path/like/this
, it refers to the root of hscloud, ie. the path path/like/this
in this repository. Perforce and/or Bazel users should feel right at home.
Viewing this documentation
For a pleaseant web viewing experience, see this documentation in hackdoc. This will allow you to read this markdown file (and others) in a pretty, linkable view.
Getting started
See //doc/codelabs for tutorials on how to use hscloud.
If you want to browse the source of hscloud
in a web browser, use cs.hackerspace.pl.
If you want some other help, talk to q3k, informatic or your therapist.
Directory Structure
Directories you should care about:
- app: external services that we host that are somewhat universal: matrix, covid-formity, etc.
- bgpwtf: code related to our little ISP
- cluster: code related to our Kubernetes cluster (
k0.hswaw.net
) - dc: code related to datacenter automation
- devtools: code related to developer tooling, like gerrit or hackdoc
- doc: high-level documentation that doesn't fit anywhere else, ie. codelabs
- hswaw: Warsaw Hackerspace specific/internal services. The line between this and app is unfortunately blurry.
- personal: user's personal (experimental) directories
- kube, go: code specific to languages but general to the whole of hscloud
Licensing
Unless noted otherwise, code in hscloud is licensed under the BSD 0-clause license - see COPYING.