Commit graph

20618 commits

Author SHA1 Message Date
Vincent Ambo
cc35bf0fc3 feat(storage): Add support for content-types (GCS only)
Extends storage.Persist to accept a Content-Type argument, which in
the GCS backend is persisted with the object to ensure that the object
is served back with this content-type.

This is not yet implemented for the filesystem backend, where the
parameter is simply ignored.

This should help in the case of clients which expect the returned
objects to have content-types set when, for example, fetching layers
by digest.
2020-10-29 17:07:52 +01:00
Bartosz Stebel
984c90749a feat(web/tvl): graph implr
Considered adding hswaw, but after q3k left it'd be a single edge, so
perhaps no point.

Change-Id: Ifd8609a5227e5c3bee1d5726bb5cf70ebb2cefdf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2053
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-10-27 23:38:27 +00:00
Vincent Ambo
8a5c446bab docs: Add a note about a Nix-native builder to the roadmap
... if I don't mention this somewhere I'll probably never do it!
2020-10-27 23:07:31 +01:00
Griffin Smith
ed9909527c refactor(gs/system): Prefer dobharchu over cerberus
This machine is significantly faster. Also, drop nixbuild, since the
transfer speed is too slow to make it worth it.

Change-Id: Ic14ef96e03a81dc429e4b4fec961c891dbb4b2b9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2066
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-27 21:47:12 +00:00
Griffin Smith
98ed3c56db feat(gs/home): Add ssh host alias for cerberus
My old macbook, which I still use sometimes

Change-Id: I3ad080083b67b6cfab4cd31a4dce0a80a7227bd5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2065
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-27 20:55:24 +00:00
Griffin Smith
a14f44b4fd feat(gs/emacs): Add bindings for smerge-keep-{lower,upper}
Change-Id: I83a251b551e0d6c9ca6994b8f9111ffee33653fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2064
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-27 20:55:24 +00:00
Griffin Smith
aa0b4e430c feat(gs/emacs): Include repo in PR links
When posting a link to a PR created during an org headline, include the
name of the repository the PR was opened to in the link text.

Change-Id: I6c564aee3b098d3c6f96c7d7d609aa2638bc98e1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2063
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-27 20:55:24 +00:00
V
d358b81a10 fix(web/tvl): Fix TVL graph
Change-Id: I6ce3be85a0248841837d18fdd4d251729061bfc8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2062
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: firefly <firefly@firefly.nu>
Tested-by: BuildkiteCI
2020-10-27 15:00:53 +00:00
Vincent Ambo
9e5ebb2f4f feat(main): Implement caching of manifests in CAS
To ensure that registry clients which attempt to pull manifests by
their content hash can interact with Nixery, this change implements
persisting image manifests in the CAS in the same way as image layers.

In combination with the previous refactorings this means that Nixery's
serving flow is now compatible with containerd.

I have verified this locally, but CI currently only runs against
Docker and not containerd, which is something I plan to address in a
subsequent PR.

This fixes #102
2020-10-27 15:29:11 +01:00
Vincent Ambo
94570aa83f feat(main): Implement serving of manifests by digest
Modifies the layer serving endpoint to be a generic blob-serving
endpoint that can handle both manifest and layer object "types".

Note that this commit does not yet populate the CAS with any
manifests.
2020-10-27 15:29:11 +01:00
Vincent Ambo
cbbf45b5cb refactor(storage): Rename ServeLayer -> Serve
This is going to be used for general content-addressed objects, and is
not layer specific anymore.
2020-10-27 15:29:11 +01:00
Vincent Ambo
5ce745d104 refactor(main): Split HTTP handlers into separate functions
There is a new handler coming up to fix #102 and I want to avoid
falling into the classic Go trap of creating thousand-line functions.
2020-10-27 14:03:14 +01:00
Vincent Ambo
4ce32adfe8 fix(build): Work around arbitrary new maxLayers restriction 2020-10-27 13:16:38 +01:00
Vincent Ambo
ad0541940f fix(build): Completely remove Cachix from build setup
Installing Cachix started failing on ARM64.
2020-10-27 13:16:38 +01:00
Griffin Smith
254ddc45f8 fix(gs/mugwump): Add missing scheme to grafana datasource
Change-Id: I954fcca422f2e1325c2455cb1c4d77d53673901f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2061
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-23 15:23:52 +00:00
Griffin Smith
92a371499b feat(gs/mugwump): Only run nix GC monthly
Change-Id: I3b81fe5a76c26e42fb6d2937ce980e12964d70b9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2060
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-23 15:23:52 +00:00
Griffin Smith
5e5a582134 refactor(gs/mugwump): Only one buildkite builder
There's just not enough juice in this machine to run more than one.

Change-Id: I6e6afc86337ca023e718023e4789fc29b6d8e175
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2059
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-23 15:23:52 +00:00
Griffin Smith
f9125971c2 feat(gs/system): Only enable remote builders on chupacabra
Don't enable whitby+nixbuild as remote builders on every machine (eg not
mugwump), only chupacabra

Change-Id: I8aa8f20d76da4ec0d8caa64ef04697b7e76cbc03
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2058
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-23 15:23:52 +00:00
Griffin Smith
f13e88ab07 feat(gs/home): Add script to rebuild mugwump
Eventually this should be generalized, but for now this is good enough +
nice to have

Change-Id: Icca815b651cfb6f8f0cd2d6a1f64e56c63d2fef5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2057
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-23 15:23:52 +00:00
Griffin Smith
af86d08ba8 feat(gs/emacs): Enable lua
Change-Id: Iff1eed338323a49de504a02f870e17eeedde57d3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2056
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-23 15:23:52 +00:00
Elis Hirwing
2a6be2b484 feat(tvl-slapd): add etu to slapd
Change-Id: I39ecf2167fd65f305853bf0e48c6208d94a5bf1f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2055
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-10-22 13:26:25 +00:00
Ben Cartwright-Cox
d4fc093383 fix(tvl-ebooks): Update code to bring up to date with reality
Fixes include:

1) users can now opt out of being mkov'd, instead their messages
will be ascii blocked out.

2) highlights are avoided, by learning names from the main tvl
channel and adding a dot after the first char, for example:

> 21:31:35 <•eta-eb> m.ulti: bas1l we quickly connect controller is mostly agreed

3) highlight avoidance is now stored in redis, to avoid restarts
from destroying the map and causing a bunch of highlights
upon restart

Change-Id: I1055992aab3a06aa1f4ba937fc3ef45f2f78cedc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2054
Tested-by: BuildkiteCI
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: ben <tvl@benjojo.co.uk>
2020-10-20 22:26:23 +00:00
Vincent Ambo
e9e42d5d20 feat(web/tvl): Add graph nodes for AfRA & friends
Change-Id: Iac50cea9277167b28695dd908af66548e0e414b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2052
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
2020-10-20 22:04:33 +00:00
Vincent Ambo
6100e44e72 feat(web/tvl): Accommodate the passage of time in TVL's graph
Some overdue updates: People leaving, people joining. Not all new
people are in here yet either, but you have to start somewhere.

Change-Id: I66dfae443f60d090c02c619d09c12599b936b2dc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2051
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-10-20 16:44:00 +00:00
htbf
41f1b01ba4 feat(tvl-slapd): add htbf
Change-Id: I6da03700708bcafc4f476b01c0a27d27fb85cc4a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2050
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-10-18 02:20:19 +00:00
Griffin Smith
df77855beb feat(gs/system): Setup for yubikey
Install some packages and enable the necessary services + udev stuff to
make yubikeys usable

Change-Id: I8aee8a8b06895880c8195f02fb57b1216a5fdffc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2049
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
963088aff6 feat(gs/system): Install htop on all systems
In this case mostly so I can have it on mugwump

Change-Id: Ifa24caf607b30c1d034f4a9e7044ece88fcee38e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2048
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
703407b2d4 feat(gs/chupacabra): Use mugwump as a binary cache
Since buildkite is running on there, it'll be nice to be able to
download things. Obviously if this laptop ever becomes a laptop again
this'll have to go away (or just become the external domain)

Change-Id: I5fc49c061dbf79f8d523244bcf822e8d96fa6d42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2047
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
3d610828a3 feat(gs/chupacabra): Include desktop module
I accidentally dropped this when reconfiguring things around to get
mugwump working, and when I rebuilt my x session turned off!

Change-Id: I252c90b6f4d796fef1f8183739fcc8dbfdd0fbf4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2046
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
c83b7e7da3 fix(gs/mugwump): Make nginx scraper play well with SSL
Having SSL on all the vhosts in nginx breaks the prometheus scraper with
the default config, since because it's targeting a different domain the
cert validation fails. It's pointing at localhost, so it's fine to just
have it not validate.

Change-Id: I1cbddc73335d4fa060115c253d69e27059a3113f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2045
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
8cb7118f7d feat(gs/mugwump): Add some buildkite agents
Add a couple of buildkite agents, based off of the config we're using
for whitby (thanks!) for building my own projects that are closed
source.

Change-Id: I2c73538595002fdf4116f534dc9a5806f17e0558
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2044
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
199738955c feat(wigglydonke.rs): Make image the width of the page
The default size is a little bit large

Change-Id: I9f7096cdf9f9ba8433e6ead6124bdc04fc88877b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2043
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
bb6e1b8c07 feat(wigglydonke.rs): Add image
The one I had downloaded before was empty, accidentally

Change-Id: I37c2ce8c556aa3f728ee675ccf14ace8416dcca4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2042
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-13 03:35:02 +00:00
Griffin Smith
28df5a585b feat(gs/mugwump): wigglydonke.rs
Kids Love Wiggly Donkers!

Change-Id: I1d37ecc88dd81d91e05fb597155bb91b93f1bccb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2041
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-12 18:50:58 +00:00
Griffin Smith
db66e1d010 feat(gs/mugwump): Enable prometheus-fail2ban-exporter
Change-Id: I200f206b609675632ad6103c84cc37b629ef9708
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2025
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-10-12 18:50:58 +00:00
William Carroll
2290aac2a8 Tweak styles
Add spacing to help the app breathe.
2020-10-11 16:47:31 +01:00
William Carroll
767fed75c3 Support multiple HabitTypes
I could have and should have broken this change into smaller pieces, but when I
came up for air, I had changed too much, and most of the changes are
intermingled. Oh well... this is an exciting change!

Include habits for:
- Morning
- Evening
- Payday (the 25th)
- First of the Month
- First of the Year

Since the Morning and Evening routines might be a bit noisy, I'm excluding them
from the output using a flag, `include{Morning,Evening}`, which I support in the
UI to toggle their visibility.

I made *much* more progress on this app that I expected to today, and I *think*
-- short of supporting a database and a server -- I'm close to
being *completely* finished.

Wahoo!
2020-10-11 16:40:10 +01:00
William Carroll
abf1875934 Support Msg to clear all completed tasks
Add a simple button to clear all completed tasks.
2020-10-11 15:39:01 +01:00
William Carroll
79cf42abd5 Render time remaining in UI
Show the number of minutes remaining before completing all of the tasks.
2020-10-11 15:17:20 +01:00
William Carroll
5684608fed Move tailwind function into Utils module
Instead of accepting `List (String, Int)`, accept `List Strategy` where
`Strategy` defines whether or not the string of selectors should be applied to
the element.

I'm also renaming it `class` so I can just use `Utils.class`; `tailwind` has
little to do with the function itself.
2020-10-11 14:59:42 +01:00
William Carroll
1c8a8f5d2c Expand Habit type
Include:

- habitType: Daily, Weekly, Yearly... what's the trigger?
- minutesDuration: Estimation of how long it'll take to complete
2020-10-11 14:58:49 +01:00
William Carroll
ea0cd01e18 Watch a few movies
Here's what I watched:
- Ran
- Children of Heaven
- Lawrence of Arabia

Only 78/250 movies to go!
2020-10-11 10:28:46 +01:00
William Carroll
05d52e403c Tweak styles
- Change header to blue
- Change habit to gray when completed
- Prefer app font for footer instead of monospaced font
2020-10-11 10:24:11 +01:00
William Carroll
0a15ea7366 Create UI module for common components
Create UI.elm to house components like `button`, which is a simple HTML button
with `focus:outline-none` applied as a `class`, which is an accessibility
feature that I don't need for this touch-screen application.

I like this pattern more than my more opinionated patterns for UI modules in Elm
where I'd define all of the arguments as a record type (i.e. kwargs).
2020-10-11 10:15:03 +01:00
William Carroll
106457de4b Prefer handwritten font
Use the Google Fonts API to fetch a handwritten font, which gives the app a
modicum of personality. There are more "best practices" ways to do this, such
as:

- Download the font once, and include it in the bundle
- Extend the Tailwind configure to recognize the font
- Ditch the inline <style> block

But I don't need the performance benefits that the first bullet provides. And
the second two bullets are more relevant for a larger application with more than
one font. So I think in this case, the easiest solution is best.

Also:
- Use `container` and `mx-auto` to constrain content for wide screens
2020-10-11 10:09:15 +01:00
William Carroll
19fbdad1c0 Support viewing different days
Allow users to browse the habits of the other days of the week.
2020-10-10 18:20:24 +01:00
William Carroll
487232d1aa Ensure weekday is updated
This ensures us that our view is consistent within ~1 minute of reality.
2020-10-10 17:34:14 +01:00
William Carroll
7d425de48d Tweak styles
- Increase font size for header
- Prefer a bulleted list
- Reduce horizontal padding
2020-10-10 17:31:34 +01:00
William Carroll
bfbe7dc988 Add a footer
With personal information and information about the project's stack.
2020-10-10 17:31:00 +01:00
William Carroll
df8e45681d Remove Nap from Saturday; prefer Yin Yoga
Since Warm Yin Yoga is at 15:00, it's difficult to attend that *and* nap.
2020-10-10 17:30:22 +01:00