====== ODK Central Server bei Hetzner ====== Diese Anleitung ist WIP! Anleitung:\ [[https://docs.getodk.org/central-install-digital-ocean/#central-install-digital-ocean|Installing Central on DigitalOcean]] ===== SSH-Schlüssel erzeugen ===== * siehe [[ops:start#ssh|DevOps SSH]] ===== 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: [[https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository|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 * Create environment file and edit. See also [[#configure_hetzner_email_server|Configure Hetzner Email Server]] below: 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: [[https://docs.hetzner.com/de/konsoleh/account-management/email/setting-up-an-email-account/|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 * Visit your domain name in a web browser: [[https://central.odk.diggin-data.de/|ODK Central Login Page]] * 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