aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 6760c78e5623a62f4e50a2d2a038164af093141f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Picarones

*"next slide please" as a service*

A simple web app which displays slides, and allows multiple people
to switch between them. Useful for presentations held in video chats
that aren't meant for presentations (e.g. jitsi, zoom, ...). May also
be useful to decrease bandwith when livestreaming talks.

## Usage
Go to the main site of your instance.

Render your slides onto pdfs numbered 01.png, 02.png ... xy.png, and
put them on some webserver which sets the cors header to either * or
the origin of your instance (see the usage hint on the main page if
you don't know how to do that).

Tell Picarones the prefix of your images, and how many of them there
are. Then share the generated link with all participants.

If you need a version of your slides without a UI around it (e.g. for
screen recorders or similar), replace the "slides.html" in the url
with "display.html".

## Installation

If you use NixOS, just use it like this:

```nix
{config, pkgs, ...}:

{
  imports = [ path-to-this-repo ];

  services.picarones = {
    enable = true;
    frontend = {
      enable = true;
      domain = "example.org";
      proxyBackend = true;
      # the attributes in this set are passed to the nginx virtualhost
      config = {
       enableACME = true;
       forceSSL = true;
      };
    };
  };

  networking.firewall.allowedTCPPorts = [ 80 443 ];
}
```

If you use some other OS, you can either still use nix to compile the front-
and backend packages; alternatively, you can compile the backend (in `picarones-hs`)
using `cabal`, and clobber the frontend together using the elm compiler. Elm
doesn't have a sensible build system, so if you really don't want to use Nix
you'll probably have to fiddle around with it manually.