2022-11-13 21:45:50 +00:00
|
|
|
{ sources, system ? builtins.currentSystem, ... }@args:
|
2020-11-27 20:56:20 +00:00
|
|
|
|
|
|
|
let
|
2021-01-11 00:11:40 +00:00
|
|
|
pkgs = import sources.nixpkgs args;
|
2021-03-02 20:37:36 +00:00
|
|
|
unstable = import sources.nixpkgs-unstable args;
|
2020-11-27 20:56:20 +00:00
|
|
|
|
2021-01-10 23:53:41 +00:00
|
|
|
callPackage = pkgs.lib.callPackageWith (pkgs // newpkgs);
|
2020-11-30 18:30:24 +00:00
|
|
|
|
2020-11-27 20:56:20 +00:00
|
|
|
newpkgs = {
|
2021-08-28 14:30:02 +00:00
|
|
|
|
2022-11-13 21:45:50 +00:00
|
|
|
mattermost = callPackage ./mattermost {inherit sources;};
|
hainich: hacky version of thelounge as webchat
Intended for KontraIAA; requirements were that it should be a simple and
non-confusing as possible.
I tried both KiwiIRC and thelounge, and found both horrible to
package (a fact not helped by the somewhat opaque structure of
nixpkgs.nodePackages, which does contain a version of thelounge but
will apparently ignore overrides of the src attribute).
Instead, this now contains a very hacky version of thelounge, which
merely takes the already-built version from nixpkgs and glues some extra
css to it which hides potentially confusing fields.
Things hidden on the "connect" screen:
- the "name" field (since thelounge offers "nick" "name" and "realname"
by default, which seems too much for something embedded on a website)
- the "I have a password" checkbox
Things hidden on the general view:
- the button to open the side panel (the panel itself is not hidden,
and will appear by itself on wider layouts), so that users will only
see that one channel
- the "channel options" menu (which includes a "leave channel" option
which would effectively break the webchat)
Things not addressed:
- thelounge has autocompletion for /join /leave, etc. Do we want to
disable that as well?
- It would probably useful to suppress all the "x joined the channel"
messages. Thelounge supports this, but apparently doesn't support
setting it as default?
Misc:
- for now, users will be connected to #thelounge on libera.chat, which
appears to be okay with being used as an experimental channel
- I allowed prefetching link previews, but only on the server's side
(i.e. users' browsers won't fetch content from arbitrary sites)
- not yet tested on hainich, but should work (tested in a NixOS
container)
- currently assumes a "webchat.voc.hacc.space" domain (I think we had a
voc domain? but I forgot where it is …)
2021-08-05 17:11:43 +00:00
|
|
|
|
2023-01-22 01:25:07 +00:00
|
|
|
tracktrain = import sources.tracktrain {
|
|
|
|
nixpkgs = pkgs;
|
|
|
|
};
|
|
|
|
|
hainich: hacky version of thelounge as webchat
Intended for KontraIAA; requirements were that it should be a simple and
non-confusing as possible.
I tried both KiwiIRC and thelounge, and found both horrible to
package (a fact not helped by the somewhat opaque structure of
nixpkgs.nodePackages, which does contain a version of thelounge but
will apparently ignore overrides of the src attribute).
Instead, this now contains a very hacky version of thelounge, which
merely takes the already-built version from nixpkgs and glues some extra
css to it which hides potentially confusing fields.
Things hidden on the "connect" screen:
- the "name" field (since thelounge offers "nick" "name" and "realname"
by default, which seems too much for something embedded on a website)
- the "I have a password" checkbox
Things hidden on the general view:
- the button to open the side panel (the panel itself is not hidden,
and will appear by itself on wider layouts), so that users will only
see that one channel
- the "channel options" menu (which includes a "leave channel" option
which would effectively break the webchat)
Things not addressed:
- thelounge has autocompletion for /join /leave, etc. Do we want to
disable that as well?
- It would probably useful to suppress all the "x joined the channel"
messages. Thelounge supports this, but apparently doesn't support
setting it as default?
Misc:
- for now, users will be connected to #thelounge on libera.chat, which
appears to be okay with being used as an experimental channel
- I allowed prefetching link previews, but only on the server's side
(i.e. users' browsers won't fetch content from arbitrary sites)
- not yet tested on hainich, but should work (tested in a NixOS
container)
- currently assumes a "webchat.voc.hacc.space" domain (I think we had a
voc domain? but I forgot where it is …)
2021-08-05 17:11:43 +00:00
|
|
|
# a version of the lounge with some extra css that
|
|
|
|
# hides things the hacc-voc doesn't need
|
|
|
|
thelounge-hacked = pkgs.stdenv.mkDerivation {
|
|
|
|
name = "thelounge-hacked";
|
|
|
|
src = pkgs.thelounge;
|
|
|
|
|
|
|
|
phases = [ "buildPhase" "installPhase" ];
|
|
|
|
buildPhase = ''
|
|
|
|
cp $src/* -r .
|
|
|
|
chmod 777 lib/node_modules/thelounge/public/css/style.css
|
|
|
|
cat ${./thelounge/css-patch.css} >> lib/node_modules/thelounge/public/css/style.css
|
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out
|
|
|
|
cp * -r $out
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2022-04-30 20:43:12 +00:00
|
|
|
uffd = callPackage ./uffd {};
|
|
|
|
|
2022-12-09 13:08:17 +00:00
|
|
|
# netbox takes a python3, then overrides stuff on it before using it.
|
|
|
|
# since overrides don't accumulate, this does both the override we want
|
|
|
|
# and the one the netbox package would otherwise do, then disables overrides
|
|
|
|
netbox = pkgs.netbox.override rec {
|
2022-12-17 14:54:31 +00:00
|
|
|
python3 = (pkgs.python3.override {
|
2022-12-09 13:08:17 +00:00
|
|
|
packageOverrides = self: super: {
|
|
|
|
django = super.django_4;
|
|
|
|
social-auth-core = super.social-auth-core.overrideAttrs ( old: {
|
|
|
|
patches = [ ./netbox/0001-add-uffd-oauth2-backend.patch ];
|
|
|
|
} );
|
|
|
|
};
|
|
|
|
}) // { override = ignored: python3; };
|
|
|
|
};
|
2022-12-09 01:53:48 +00:00
|
|
|
|
2022-11-10 20:23:32 +00:00
|
|
|
inherit (unstable) vaultwarden vaultwarden-vault;
|
2020-11-27 20:56:20 +00:00
|
|
|
};
|
|
|
|
|
2021-01-27 05:24:12 +00:00
|
|
|
in pkgs.extend(_: _: newpkgs)
|