summaryrefslogtreecommitdiff
path: root/README
blob: 2ad05302ec1c0e031709a8384a2c5a352be367fd (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#+title: Demanding Interoperability to Strengthen the Free (Libre) Web: Introducing DISFLUID
#+language: en
#+author: Vivien Kraus
#+email: vivien@planete-kraus.eu

This is a WIP implementation of the OIDC specification with
decentralization through webid.

* Installation

You can install it with GNU Guix, by using the following channel:

[[https://labo.planete-kraus.eu/webid-oidc-channel.git]]

It always tracks the latest commit.

Otherwise, you need the following tools:

- the autotools: automake, autoconf, autoconf-archive, libtool, gettext;
- pkg-config;
- texinfo;
- help2man to generate the manual;
- which and the coreutils;
- guile;
- guile-json;
- guile-rdf: [[https://framagit.org/tyreunom/guile-rdf]]
- guile-jsonld: [[https://framagit.org/tyreunom/guile-jsonld]]
- nettle.

These are the run-time dependencies:

- guile
- guile-json
- guile-rdf
- guile-jsonld
- gnutls (so that guile can fetch resources with https)
- nettle

To build, first run the =bootstrap= script, then =./configure=,
=make=. You can run the program without installing it, by running
=./pre-inst-env guile src/disfluid=, or you can install it with
=make install=.

* Running

Once installed, you get a program named =disfluid=. Run it with =-h=
to get the options.

* Running as a docker image
The =guix/vkraus/systems/test.scm= contains a couple of servers, one
for [[http://localhost:8081/alice#me]] (the password is "alice"), and one
for [[http://localhost:8082/bob#me]] (the password is "bob"). Both servers
running on localhost:8081 and localhost:8082 are aware that they are
http-only and run on these ports.

Once you have the Guix channel installed, you can build the image as:

#+begin_src shell
  sudo docker load -i $(guix system docker-image guix/vkraus/systems/test.scm) \
      && sudo docker tag guix:latest vivienkraus/disfluid:test-bench
#+end_src

I try to publish recent versions of the test bench on Docker Hub, but
I may forget. Don’t forget to remind me if you think it’s too old.

Then, you will need to start the container:

#+begin_src shell
  export container_id="$(sudo docker create vivienkraus/disfluid:test-bench)"
  sudo docker start $container_id
#+end_src

You can enter the container to check the log files, for instance:

#+begin_src shell
  sudo docker exec -it $container_id /run/current-system/profile/bin/bash --login
#+end_src

Unfortunately, I don’t know how to let the host access the 8081 and
8082 ports.

# Local Variables:
# mode: org
# End: