An Activitypub Server Implementation in OCaml
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Kiran Gopinathan c4a97b9b92 updated todos 2 days ago
bin completed major refactoring 3 days ago
lib removed redundant code 2 days ago
macros implemented navigation panel, fixed uis, fixed bugs 2 days ago
resources Fixed some minor issues with posts, more to do 2 days ago
scripts setup hetzner 6 months ago
static Fixed some minor issues with posts, more to do 2 days ago
tests completed major refactoring 3 days ago
.dockerignore completed major refactoring 3 days ago
.gitattributes swapped to sihl 2 years ago
.gitignore completed major refactoring 3 days ago
.ocamlformat swapped to sihl 2 years ago
LICENSE Add LICENSE 2 months ago
README.md completed major refactoring 3 days ago
dune-project completed major refactoring 3 days ago
guide.org added files 7 months ago
notes.org completed major refactoring 3 days ago
ocamlot.opam completed major refactoring 3 days ago
todo.org updated todos 2 days ago
watch.sh completed major refactoring 3 days ago

README.md

OCamlot - An OCaml Activitypub Server

Development Setup

To develop OCamlot locally, we provide a docker-compose file for setting up a network with a running OCamlot (port 7331) and pleroma (port 4000) instance. The two containers are connected through a network in which the OCamlot server can be found under the domain name testing.ocamlot.xyz and the Pleroma server can be found under the domain name pleroma.ocamlot.xyz. (Note: because there is no easy way of updating the CA store that elixir uses, you will need to patch your local copy of pleroma to disable certification verification for interaction between the two containers to work).

You will need docker-compose and docker

  1. Clone a copy of pleroma to the tests/integration_test/ directory:
git clone -b stable https://git.pleroma.social/pleroma/pleroma ./tests/integration_test/pleroma
  1. Apply patch to pleroma to disable TLS validation (required for local testing)
(cd ./tests/integration_test/pleroma && git apply ../pleroma.patch)
  1. Change directory into the tests/integration_test/ directory:
cd ./tests/integration_test/
  1. Run docker-compose build with the local docker-compose file:
docker-compose -f ./docker-compose.local.yml build
  1. Run docker-compose up with the local docker-compose file:
docker-compose -f ./docker-compose.local.yml up
  1. (optional), if you want to update the OCamlot server after making some changes locally, do the following:

    • 6.1. Find out the name of the OCamlot server container using docker container list
    • 6.2. Attach to the OCamlot container using docker container exec -it <container-id> bash
    • 6.3. Kill the running OCamlot process using pkill -9 main.exe
    • 6.4. Run dune build and then dune exec ./bin/main.exe -d testingl.ocamlot.xyz -D