Deploy a complete ILP Kit in one command
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
azure
nginx-letsencrypt-proxy
.gitignore
README.md
docker-compose.yml
test.js

README.md

ILP Kit Docker-Compose

Deploy a complete ILP kit through docker

This repository aims to reduce the setup time for ILP Kit to a single command. Depends on docker and docker-compose.

Installing Docker on a vps is not always as straight-forward as it may seem; there are several versions of Docker, and the docker-compose.yml file used in this repo is not compatible with all of them. Before you start, consider whether the Azure instructions are an option for you, they are the easiest ilp-kit install instructions to use.

In order to start an ILP Kit, you need to:

  • Have a domain that points to your host machine.
  • Have an email address (different from the above domain).
  • Decide on a currency code for your ILP Kit's ledger.
  • Generate a SECURE base64 secret value (eg. with openssl rand 32 | base64).

To start ILP Kit, run the command below, but with your own values instead of these placeholders.

First, ping your domain name to double-check that it points to the IP address of your server. If it does, ssh to your server, and run:

ILP_DOMAIN='example.com' \
ILP_EMAIL='alice@email.example' \
ILP_CURRENCY='USD' \
ILP_SECRET='Z4ZwCWbuo18eMrS1Tgn5L0FPUgK/2pKvgdvZzMogPw4' \
docker-compose up -d

Be very careful to use the same hostname, without spelling mistakes, in the ILP_DOMAIN variable there, and in your DNS zone. This is the mistake that most often causes errors for this deploy method.

Also take care to use an upper-case currency code, not lower-case; it should be one of the currency codes supported by fixer.io (unless you configure your ilp-kit with a custom exchange rate backend).

Log in to your ilp-kit

First, wait for about 10 minutes! Until then, there will be nothing to see yet on your ilp-kit URL, or just an nginx default page.

Then, go to your ilp-kit's URL with your browser, and make sure to explicitly type 'https://' in the address bar first (so https://example.com, and not http://example.com or example.com, in the example above). Once you see a login page, log in with user 'admin' and your ILP_SECRET as the password.

If you deployed on Azure, then you will have a user and password for your vps; use these to ssh to your vps, and when you log in, your ILP_SECRET will be printed as part of the ssh Welcome Banner.

If you generated your ILP_SECRET yourself like described above, then you can directly paste it into the password field on the login page.

Troubleshooting

You can watch the logs with docker-compose logs -f ilp-kit.

Check that all three containers started successfully, using docker ps, docker ps -a and for instance docker logs letsencrypt.

If the letsencrypt, ilp-kit, and postgres containers are all running, log in to your ilp-kit using user 'admin', and using the ILP_SECRET you generated as the password.

To auto deploy to Azure see the Azure Resource Template

Currently Included

  • ILP Kit
  • Postgres database (storing in the local data folder)
  • Automatic Letsencrypt setup (storing certs and keys in the data folder)
  • Nginx reverse proxy, exposing ILP Kit on port 443.

Planned Additions

  • Use different secrets between API, admin, connector, etc.
  • Allow advanced configuration for options like Github and Mailgun.