depot ===== [![builds.sr.ht status](https://builds.sr.ht/~tazjin/depot/master.svg)](https://builds.sr.ht/~tazjin/depot/master?) This repository is the [monorepo][] for the community around [tazjin's virus lounge][tvl], containing our personal tools and infrastructure. Everything in here is built using [Nix][]. If you've ended up here and have no idea who I am, feel free to follow me [on Twitter][]. # Highlights ## Tools * `tools/emacs` contains my personal Emacs configuration (packages & config) * `fun/aoc2019` contains solutions for a handful of Advent of Code 2019 challenges, before I ran out of interest * `tools/blog_cli` contains my tool for writing new blog posts and storing them in the DNS zone * `tools/cheddar` contains a source code and Markdown rendering tool that is integrated with my cgit instance to render files in various views * `ops/kontemplate` contains my Kubernetes resource templating tool (with which the services in this repository are deployed!) * `ops/besadii` contains a tool that runs as the git `post-receive`-hook on my git server to trigger builds on sourcehut. * `third_party/nix` contains my fork of the Nix package manager ## Packages / Libraries * `nix/buildGo` implements a Nix library that can build Go software in the style of Bazel's `rules_go`. Go programs in this repository are built using this library. * `nix/buildLisp` implements a Nix library that can build Common Lisp software. Currently only SBCL is supported. Lisp programs in this repository are built using this library. * `tools/emacs-pkgs` contains various Emacs libraries that my Emacs setup uses, for example: * `dottime.el` provides [dottime][] in the Emacs modeline * `nix-util.el` provides editing utilities for Nix files * `term-switcher.el` is an ivy-function for switching between vterm buffers * `net/alcoholic_jwt` contains an easy-to-use JWT-validation library for Rust * `net/crimp` contains a high-level HTTP client using cURL for Rust ## Services Services in this repository are deployed on a Google Kubernetes Engine cluster using [Nixery][]. * `web/blog` and `web/homepage` contain my blog and website setup (serving at [tazj.in][]) * `web/cgit-taz` contains a slightly patched version of `cgit` that serves my git web interface at [git.tazj.in][] * `ops/journaldriver` contains a small Rust daemon that can forward logs from journald to Stackdriver Logging ## Miscellaneous Presentations I've given in the past are in the `presentations` folder, these cover a variety of topics and some of them have links to recordings. There's a few fun things in the `fun/` folder, often with context given in the README. Check out my [list of the best tools][best-tools] for example. # Contributing If you'd like to contribute to any of the tools in here, please check out the [contribution guidelines](./docs/CONTRIBUTING.md). [monorepo]: https://en.wikipedia.org/wiki/Monorepo [tvl]: https://tvl.fyi [Nix]: https://nixos.org/nix [on Twitter]: https://twitter.com/tazjin [Nixery]: https://github.com/google/nixery [tazj.in]: https://tazj.in [git.tazj.in]: https://git.tazj.in [best-tools]: /about/fun/best-tools/README.md [dottime]: https://dotti.me