Commit graph

21629 commits

Author SHA1 Message Date
Vincent Ambo
98aee9f84a fix(ops/machines): add missing bugry & nevsky entries
Why are we doing this manually again?

Change-Id: I5a941d677e7c6e762f97d8b607d8409b6e9badb9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13000
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-15 15:38:48 +00:00
Vincent Ambo
aea48b54aa chore(ops/nixery): use unstable nixpkgs channel for nixery
We switched to stable temporarily in 2023 (!) because of some breakage that has
long been fixed.

In general, running nixery against stable is probably advisable, but because of
our Lisp package situation updating stable is not possible at the moment.

Change-Id: I122ac63d6307cab76a3069101682fc5f8f985914
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12999
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-15 15:38:48 +00:00
Vincent Ambo
96a42945a5 feat(ops/glesys): point nixery.dev records at bugry
Change-Id: I360876dfd416eb1cce4dd2772ef312aae6dd7ac3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12998
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-15 15:38:48 +00:00
Vincent Ambo
5a33dd7ec3 feat(ops/bugry): run nixery instance
Running Nixery on bugry is much more cost efficient (better traffic economics
than on a cloud provider, and Nixery is mostly a traffic-heavy service), and
frees up my Yandex Cloud credits for adding another builder.

Change-Id: Id6c8c76b28a5ce13cc8b743ad6e72fffd19353fb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12997
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
2025-01-15 15:38:48 +00:00
Vincent Ambo
c49297d9ad chore(3p/sources): bump channels & overlays (2025-01-12)
This (temporarily) bumps the nixpkgs channel to nixos-unstable-small, because it
has an update I really want, and also to stress-test the new builders.

Included fixes:

* disabled tests in niri to avoid a flaky test; this is fixed upstream already,
  but the change is still percolating through
* regenerated Go protobufs

Change-Id: Ia09fdc38f620fe8301c2111b0e4c142f37df2dd5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12991
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2025-01-15 11:57:22 +00:00
Vincent Ambo
b153679388 fix(ops/bugry): enable TVL binary cache
I thought this was enabled and got confused when deploying ... cache should
always be enabled on machines that don't build themselves.

Change-Id: Ie52b27c44db4c26387b05553dbe36f7693628e89
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12993
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-14 17:51:54 +00:00
Vincent Ambo
f081642b3a feat(ops/nevsky): run buildkite agents on nevsky
This relates to b/433.

Change-Id: Ic39e4836ca354ce2f9f365cba95f96ceb5eec281
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12990
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-14 17:51:54 +00:00
Vincent Ambo
d2d06241a0 feat(ops/tvl-cache): add option for using experimental cache
Adds a `tvl.cache.builderball` option for cache *consumers* which enables the
experimental builderball cache. This cache uses whitby AND nevsky.

Change-Id: I4d99ba52d6ebd9a49e6fcb931d01e69383b15bcf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12986
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-14 17:51:21 +00:00
Vincent Ambo
c948a26d7d feat(ops/modules): configure builderball cache setup
Configures an experimental setup for a builderball-based public cache.

This cache only includes the two build machines (whitby & nevsky), for the time
period where both of them exist simultaneously.

The idea is this:

All participating hosts run a harmonia binary cache locally (whitby already
does). They then run builderball instances pointing at each other's harmonia
caches (through dedicated public hostnames).

When a request comes in, the first matching cache address is returned and Nix
will substitute from there.

Change-Id: Ia7d5357fd5e04f77b460205544fa24e82b100230
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12975
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-14 17:51:21 +00:00
Vincent Ambo
6733b26ba5 feat(ops/secrets): grant nevsky builder secret access
Change-Id: I2343357b7c92c49a9bb22d1b8ce20091d6ab70ba
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12987
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2025-01-14 17:51:21 +00:00
Vincent Ambo
ec06690c42 fix(ops/nevsky): include known hosts module
Otherwise pushes to Github from CI will fail.

Change-Id: Ib3eb3165577cb98c5a7d5f2055b09dbf118da6c3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12994
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-14 17:40:26 +00:00
Vincent Ambo
bf552f7a9b feat(ops/machines): IPv6 setup for bugry
Adman (the hoster) have not provided an ETA for native v6 on bugry yet, so we
establish a public v6 connection through nevsky for now.

In traffic flows going West->East the overhead is minimal (a few ms), though I
guess it might be worse if you're in the middle (Yekaterinburg or something).

The prefix was chosen by the bugry public v4 address encoded in hex, and
appended to the nevsky prefix.

Change-Id: I133622c17bd02eade0a6febc6bdf97f403fed14c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12974
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-14 16:44:26 +00:00
Vincent Ambo
dbdf211fe4 chore(ops/pipelines): pin anchoring step to whitby agents
Change-Id: Ia7d556667faf44094cb5545e4f38d85260c5aafa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12989
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-14 11:34:33 +00:00
Vincent Ambo
4210e2c480 refactor(ops/tvl-buildkite): remove hardcoded whitby references
Change-Id: I3b2df9d3926f4698cbc0b557ad5b522e1921ca13
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12988
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: aaqaishtyaq <aaqaishtyaq@gmail.com>
Tested-by: BuildkiteCI
2025-01-14 11:34:33 +00:00
Vincent Ambo
83b22e177b fix(3p/overlays): revert harmonia back to 1.0.2
Change-Id: I2c895f91da271b61e10ea216957832a129febd20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12985
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
2025-01-14 11:34:33 +00:00
Vincent Ambo
5cdede844f feat(planet-mars): add CI configuration
Adds CI configuration that builds the Rust package, and exports the package back
to Github after submits to canon.

Change-Id: I2f8dcff2a614898c55115f44510543ff25d46b55
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12996
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: thk <thomas@koch.ro>
2025-01-13 09:06:40 +00:00
Vincent Ambo
0a83e6567b subtree(web/planet-mars): import project from previous upstream
This project is moving into the depot. Upstream is
github/thkoch2001/planet-mars.

This commit does not yet add a Nix build, only imports the code and matches
formatting requirements.

The import has been josh-filtered, which will allow us to continue publishing
the history to the previous repo.

Change-Id: I9cb184b5af3f74a0b4079bac499b4db039b7939b
2025-01-13 11:48:33 +03:00
Thomas Koch
1d9812d3cb also commit Cargo.lock 2025-01-13 09:27:39 +02:00
Thomas Koch
0bd9eb5051 update README 2025-01-13 09:26:36 +02:00
Vincent Ambo
c30344475c fix(tvl-headscale): restore default ACL policy
I omitted the `acls` section when adding the tag configuration. In "normal"
tailscale, emitting this is equivalent to putting the defaults there (i.e. all
traffic inside the tailnet is allowed), however in headscale it defaults to
blocking everything instead.

This meant that internal tailnet traffic wasn't really working correctly anymore.

Change-Id: Ic37504e9a8a97b9f8eb3ac173c88201aef1c044a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12972
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2025-01-12 21:53:54 +00:00
Vincent Ambo
ddae25ebb5 chore(ops/secrets): add pubkeys for nesvky & bugry
Change-Id: Iff5589722baf527f064db965be6445109eabb66d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12973
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-12 21:53:53 +00:00
Vincent Ambo
70282aa412 feat(ops/machines): add NixOS configuration for nevsky
This is just a carbon-copy of other machine configurations for now. The plan is
to switch this over to sixos, but I have to get a sane NixOS setup first because
this still requires a lot of experimentation (and stuff to be built *on* this
machine, since it's the fastest one we have).

Change-Id: I2e55e63ed5192eb748855999bb87d43498e706fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12971
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-12 21:50:52 +00:00
Thomas Koch
08160c315b fix previous commit :-( 2025-01-12 21:15:26 +02:00
Thomas Koch
ac805654bd set explicit versions for deps and update 2025-01-12 21:14:37 +02:00
Thomas Koch
ef8c39ed85 fix double https://https:// in useragent 2025-01-12 21:14:20 +02:00
Thomas Koch
c8c0f691ab fix typo in atom template, link element 2025-01-12 20:49:38 +02:00
Thomas Koch
150314936c get authors also from feed data + some css 2025-01-12 20:13:18 +02:00
Thomas Koch
4a9f5201d1 add some docs 2025-01-12 13:02:45 +02:00
Thomas Koch
81f1e22d53 generate a blogroll 2025-01-12 11:23:31 +02:00
Thomas Koch
a345107228 resolved error handling todos 2025-01-12 10:58:15 +02:00
Thomas Koch
fabd40e0b6 add Cargo metadata 2025-01-11 21:44:16 +02:00
Thomas Koch
2fa661c752 rm done todos from readme 2025-01-11 21:26:54 +02:00
Thomas Koch
cfab9ef5c0 implemented also atom feed via template 2025-01-11 21:17:55 +02:00
Vincent Ambo
dacbde58ea feat(ops/machines): add system configuration for bugry
WIP

Change-Id: Icac44225ca340cc57505bbd85e117334af42ad68
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12968
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-11 19:00:58 +00:00
Vincent Ambo
b1df479f5b feat(ops/glesys): add DNS record for bugry.tvl.fyi
Another new dedicated server, which we can use for various ... dedicated server
things. Located in Novosibirsk.

The name of the old village that used to be where the city now is, Бугры, was
too good to pass up when spelled in English as a hostname. Obvious choice!

Change-Id: I9de7bc078199e9d87284139556024dc3738d3b24
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12967
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-11 17:47:47 +00:00
Vincent Ambo
52124c76ce feat(ops/glesys): add nevsky.tvl.fyi to DNS setup
This is a candidate for the new builder, featuring a beefy new AMD CPU with 32
threads and more than double the per-core performance of whitby, as well as
brand-new DDR5 RAM and NVMe disks.

The machine is hosted with Timeweb, in St. Petersburg.

We'll see how this performs.

Change-Id: I5ccbf42cd5274d3a4703afd6942fb42a915bed7a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12966
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-11 17:47:47 +00:00
sterni
5dd66ab066 feat(sterni/ingeborg/monitoring): send smartd warnings to IRC
Though netdata integrates smartd data it doesn't generate warnings like
smartd does. It would be nice to have them go to IRC. The NixOS module
for some reason has decided to implement its own very restricted
notifications framework on top of the one that smartd provides
dispatching to either mail (note that this is implemented in the NixOS
module and doesn't use smartd's own support for this), wall(1) or some
systemd mechanism. This is implemented in some shell script that can't
be provided by the user.

Luckily, the module is relatively small otherwise and we can easily
inline the relevant service definitions and use our own script instead.

Change-Id: I1e1ceff3c21a92ac42079c02813366671141b9b4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12969
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2025-01-11 16:11:46 +00:00
sterni
767d6fdf78 feat(.envrc): only gcroot explicitly specified 3p/sources
Not all dependencies in //third_party/sources are equally important for
evaluation, some are never used (e.g. rustsec-advisory-db is re-fetched
using fetchFromGitHub). It seems to be a good idea to make it
configurable what to gcroot and thus unconditionally download as soon
as .envrc is loaded for the first time.

This frees //third_party/sources to be used more extensively, e.g. for
managing third_party dependencies that aren't used at eval time.

This commit is very conservative and only gcroots:

- nixpkgs, nixpgs-stable (obviously)
- rust-overlay (applied to our nixpkgs instance unconditionally)
- home-manager (used in //third_party/overlays/tvl)

I'm open to re-enabling gcrooting of the following other sources which
are only necessary to evaluate some targets:

- agenix (obvious candidate, widely used in depot)
- naersk (used for many targets)
- napalm (used in //users/Profpatsch and //users/sterni)
- impermanence (only used in //users/tazjin)

Change-Id: I39eef14d08bec6857499655e30ecf47d5fdd1260
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12965
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2025-01-11 16:04:43 +00:00
Thomas Koch
8b17e93d74 stuff 2025-01-11 13:45:03 +02:00
Thomas Koch
85b5c2be89 Fix caching
Nginx's std cfg only returns 304 with If-Unmodified-Since header, if the date
is exactly the one it expects, not the date the client did its last request.

This makes sense as it is much easier to compare two strings for equality than
to parse the date received from the client and check the ordering with the
server known last_modified value.
2025-01-11 13:38:20 +02:00
Thomas Koch
3bee93ecb3 generating html from 12 feeds works 2025-01-10 20:17:06 +02:00
Thomas Koch
b422ece932 . 2025-01-10 11:39:54 +02:00
Vincent Ambo
3e802d3bdf feat(ops/builderball): introduce bouncing Nix cache proxy
Adds a Nix cache proxy which can be used to send a Nix cache lookup to the first
available cache that has the given NAR. We will use this for dynamically created
builders.

Relates to b/432.

Change-Id: If970d2393e43ba032b5b7d653f2b92f6ac0eab63
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12949
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2025-01-08 20:51:39 +00:00
Vincent Ambo
45f8f7d39f feat(tvl-headscale): configure tag for TVL builders
Configures an ACL for a tailscale tag that can be added by the `tvl` and
`tvl-builders` users.

This tag will be used by dynamic builders to bootstrap and advertise to other
builders that they might be valid substitution targets.

Relates to b/432.

Change-Id: I561a5b4bfeb7e7b306edfaf18b42404d33d84519
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12948
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
2025-01-08 20:40:35 +00:00
Thomas Koch
1aeecaedae feat(docs/CONTRIBUTING.md): reference to Conventional Commits
Change-Id: Ia0205ed51cbc717e4da438de1c0f6a3defa467f0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12962
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-08 06:30:48 +00:00
Vincent Ambo
b9e0a682ab fix(users/tazjin): disable systemd user slice freezing
I have a suspicion that some systemd bugs around this feature (I actually
couldn't figure out what it does and why?) introduced in systemd 256 lead to
issues with suspend that I've seen in recent times.

In the issue, my machine is seemingly frozen after resuming from suspend. I'd
seen this previously on EXWM with xsecurelock, but now I'm seeing it on niri
with swaylock, where it is more severe because switching to a VT is impossible.

Upstream tickets:

- https://github.com/systemd/systemd/issues/33083
- https://github.com/systemd/systemd/issues/33626
- https://bugzilla.redhat.com/show_bug.cgi?id=2321268

I'm not running a VM, but there seem to be multiple different bugs leading to
this, so who knows. It's worth a try.

The long-term fix will be getting rid of systemd)

Change-Id: Ie985a3f222f3daac1e3c7db79ee8624c66297374
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12961
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-07 09:45:08 +00:00
Thomas Koch
5c9e671c1f feat(users/thk): add OWNERS
Change-Id: I141bd12ff83dae0debe664d0ef5d21d109660688
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12959
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2025-01-07 03:57:33 +00:00
Profpatsch
3040fe2e90 feat(users/Profpatsch/whatcd-resolver): implement artist refresh v0
This is kind of a chonker because I went into so many rabbit holes.

Foremost this implements a simple “Refresh Artist” button that fetches
current artist torrent groups.

BUG: the `artist` endpoint torrent struct is shite, it’s missing most
info that we get in the `search` endpoint torrent struct, plus it’s
organized differently (e.g. the `artists` thingy is in the
torrent_group not the torrent).

I should switch everything over to fetching the `torrent_group.id`s
first and then going through and slowly fetching every torrent group
separately … however that might time out very quickly. ugh. There
doesn’t seem to be a way of fetching multiple torrent groups.

Random other shit & improvements:

* intersperse for builders
* fix json errors so that the structs don’t get too
  big (`restrictJson`)
* show error messages as json so jaeger displays it with nested UI
* color pretty-printed json outpt on command line
* add some important integral functions to MyPrelude
* add `sintersperse` and `mintersperse` to MyPrelude

Change-Id: If8bfcd68dc5c905e118ad86d50d7416962bf55d4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12960
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2025-01-06 16:43:05 +00:00
Profpatsch
cabb8cd3d0 fix(users/Profpatsch/whatcd-resolver): handle redacted too many req
We can’t do more than like 5 requests right next to each other, so
let’s handle the timeout they request.

This kinda destroys search speeds for large search results,
so we might have to filter out collections somehow, or do something
smarter like schedule things out and show a preliminary result at one
point.

Change-Id: If916379eb6e19cf8e960cf7553965b338645e560
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12958
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2025-01-05 21:00:11 +00:00
Profpatsch
08131be8e0 feat(users/Profpatsch/whatcd-resolver): improve release sorting
Change-Id: I4f9ce0c563b21e0cf8dc688e92438e20c103a2de
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12957
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2025-01-05 21:00:11 +00:00