Files
codapi/docs/install.md
2023-12-01 00:59:33 +05:00

2.0 KiB

Installing Codapi

Steps for Debian (11/12) or Ubuntu (20.04/22.04).

  1. Install necessary packages (as root):
apt update && apt install -y ca-certificates curl docker.io make unzip
systemctl enable docker.service
systemctl restart docker.service
  1. Create Codapi user (as root):
useradd --groups docker --shell /usr/bin/bash --create-home --home /opt/codapi codapi
  1. Verify that Docker is working (as codapi):
docker run hello-world
  1. Install Codapi (as codapi):
cd /opt/codapi
curl -L -O "https://github.com/nalgeon/codapi/releases/download/0.5.0/codapi_0.5.0_linux_amd64.tar.gz"
tar xvzf codapi_0.5.0_linux_amd64.tar.gz
chmod +x codapi
rm -f codapi_0.5.0_linux_amd64.tar.gz
  1. Build Docker images (as codapi):
cd /opt/codapi
docker build --file images/alpine/Dockerfile --tag codapi/alpine:latest images/alpine/
  1. Verify that Codapi starts without errors (as codapi):
cd /opt/codapi
./codapi

Should print the alpine box and the sh command:

2023/09/16 15:18:05 codapi 20230915:691d224
2023/09/16 15:18:05 listening on port 1313...
2023/09/16 15:18:05 workers: 8
2023/09/16 15:18:05 boxes: [alpine]
2023/09/16 15:18:05 commands: [sh]

Stop it with Ctrl+C.

  1. Configure Codapi as systemd service (as root):
mv /opt/codapi/codapi.service /etc/systemd/system/
chown root:root /etc/systemd/system/codapi.service
systemctl enable codapi.service
systemctl start codapi.service

Verify that the Codapi service is running:

systemctl status codapi.service

Should print active (running):

codapi.service - Code playgrounds
    Loaded: loaded (/etc/systemd/system/codapi.service; enabled; preset: enabled)
    Active: active (running)
...
  1. Verify that Codapi is working:
curl -H "content-type: application/json" -d '{ "sandbox": "sh", "command": "run", "files": {"": "echo hello" }}' http://localhost:1313/v1/exec

Should print ok = true:

{
    "id": "sh_run_dd27ed27",
    "ok": true,
    "duration": 650,
    "stdout": "hello\n",
    "stderr": ""
}