How to host Ultralisp on my own server

Easy way

The easiest way to start a local Ultralisp server is to use docker compose.

Checkout the repository:

git clone https://github.com/ultralisp/ultralisp
cd ultralisp

And run:

docker compose run --rm mito migrate
docker compose up app

Note, you have at least 4G of RAM on your machine, to run all services, needed for Ultralisp!

Harder way

You may also build docker images out of Dockerfile and run them manually like this:

docker run --rm \
           --name ultralisp \
           -p 80:80 \
           -p 4005:4005 \
           -v `pwd`:/app \
           -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
           -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
           -e RESEND_API_KEY=key-xxxxxxxxxxxxx \
           -e USER_AGENT=xxxxxxxxxxxxx \
           40ants/ultralisp:latest

See the full list of env variables need by each component in the common-services.yaml file.

Also, you might choose to build each component manuall. See the instruction in the Development section.

Uploading distribution to S3

By default, Ultralisp stores data locally and serves it from the /dist/ folder, like that: http://my-ultralisp.org/dist/. Hovewer, you may want to upload the data to Amazon S3 and to serve it through something like Cloudflare.

To do this, you need to set these environment variables for ultralisp app:

And you need to create a bucket on the S3.

How to create a bucket

This will make this bucket readable to anybody.

Setup a proxy server

You need a proxy or CDN which is able to serve data via plain HTTP, because Quicklisp client does not support HTTPS yet. There is an issue <https://github.com/quicklisp/quicklisp-client/issues/167>_ on the GitHub, please, vote for it.

I use Cloudflare because it is free and easy to setup.

To serve files via Cloudflare, turn on "Static website hosting" of the bucket at AWS. Set the "index document" as "ultralisp.txt".

After that, your quicklisp distribution will be available as http://dist.ultralisp.org.s3-website-eu-west-1.amazonaws.com