Übersetzungen dieser Seite:
  • de

ODK Central Server bei Hetzner

Diese Anleitung ist WIP!

Anleitung:\ Installing Central on DigitalOcean

SSH-Schlüssel erzeugen

Server bestellen

  • Typ: CPX11
  • 2 VCPU
  • 2 GB Ram
  • Ubuntu 22.04

DNS anlegen

odk              IN A {IPV4}
odk              IN AAAA {IPv6}
central.odk      IN CNAME odk

Docker installieren

Siehe: Install Docker Engine on Ubuntu

  • Uninstall old versions
  root@...# for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
  • Set up Docker's apt repository.
  # Add Docker's official GPG key:
  root@...# apt-get update
  root@...# apt-get install ca-certificates curl gnupg
  root@...# install -m 0755 -d /etc/apt/keyrings
  root@...# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  root@...# chmod a+r /etc/apt/keyrings/docker.gpg
  # Add the repository to Apt sources:
  root@...# echo \
    "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  root@...# apt-get update
  • Install the Docker packages.
  root@...# apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • Verify that the Docker Engine installation is successful by running the hello-world image.
  root@...# docker run hello-world
  • Test docker version:
  root@...# docker --version && docker compose version
  • To update docker:
  $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Firewall überprüfen

  • Status checken:
  root@...# ufw status verbose
  • Evtl. die Firewall deaktivieren:
  root@...# ufw disable

Install ODK Central and configure it

  cd /srv
  git clone https://github.com/getodk/central
  cd central
  git submodule update -i
  cp .env.template .env
  vim .env
  • Allow PostGres updates:
  touch ./files/allow-postgres14-upgrade
  • Bundle everything together into a server:
  docker compose build

Configure Hetzner Email Server

Hetzner email accounts documentation: Email-Konto einrichten

  • Edit .env file:
# Optional: configure a custom mail server
EMAIL_FROM=noreply@diggin-data.de
EMAIL_HOST=mail.your-server.de
EMAIL_PORT=143
EMAIL_SECURE=false
EMAIL_IGNORE_TLS=true
EMAIL_USER=KONTONAME@diggin-data.de
EMAIL_PASSWORD=KONTOPASSWORD
  • Build and restart the service container.
  root@...# docker compose build service && docker compose stop service && docker compose up -d service

Starting up Central

  • Start the server software:
  docker compose up -d
  • See whether it is running:
  $ docker compose ps
  • Restart the server

Create an Admin User account

  • Create a new admin account:
  root@...# docker compose exec service odk-cmd --email YOUREMAIL@ADDRESSHERE.com user-create
  • Make the new account an administrator:
  root@...# docker compose exec service odk-cmd --email YOUREMAIL@ADDRESSHERE.com user-promote
  • If you ever lose track of your password, you can reset it:
  root@...# docker compose exec service odk-cmd --email YOUREMAIL@ADDRESSHERE.com user-set-password