open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Host

Apache Answer mit Docker installieren – einfache Anleitung für dein Q&A-System

Autor
Apache Answer mit Docker installieren – einfache Anleitung für dein Q&A-System

1. Überblick

Apache Answer ist eine moderne Open-Source-Q&A-Plattform (Fragen & Antworten), entwickelt von der Apache Software Foundation. Sie basiert auf Go (Backend) und React / TypeScript (Frontend). Mit Docker lässt sie sich schnell, isoliert und updatefreundlich betreiben.

Offizielle Website: https://answer.apache.org GitHub: https://github.com/apache/answer

2. Voraussetzungen

Komponente Empfehlung
OS Debian 12 / 13 (64-Bit)
CPU 2 Kerne oder mehr
RAM mind. 2 GB
Speicher ≥ 10 GB frei
Ports 80 (HTTP), 443 (HTTPS), 9080 (Answer)

Installiere Docker + Compose

sudo apt update
sudo apt install -y curl ca-certificates gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker

Test:

docker run hello-world

3. Projektverzeichnis erstellen

sudo mkdir -p /opt/answer
cd /opt/answer

4. docker-compose.yml erstellen

sudo nano docker-compose.yml

Inhalt:

version: "3.8"

services:
  db:
    image: mariadb:11
    container_name: answer_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: answer
      MYSQL_USER: answer_user
      MYSQL_PASSWORD: answer_pass
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - answer_net

  answer:
    image: apache/answer:latest
    container_name: answer_app
    restart: always
    depends_on:
      - db
    ports:
      - "9080:80"
    environment:
      DB_TYPE: mysql
      DB_HOST: db
      DB_USER: answer_user
      DB_PASSWORD: answer_pass
      DB_NAME: answer
      SERVER_PORT: 80
      SITE_URL: https://qa.example.com
    volumes:
      - answer_data:/data
    networks:
      - answer_net

networks:
  answer_net:

volumes:
  db_data:
  answer_data:

5. Container starten

sudo docker compose up -d

Status prüfen:

sudo docker compose ps

Wenn alles funktioniert, läuft Answer unter:

http://SERVER-IP:9080

6. Reverse Proxy mit Nginx + SSL (empfohlen)

Installiere Nginx & Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

Nginx-Konfiguration

sudo nano /etc/nginx/sites-available/answer.conf

Inhalt:

server {
    listen 80;
    server_name qa.example.com;

    location / {
        proxy_pass http://127.0.0.1:9080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    access_log /var/log/nginx/answer_access.log;
    error_log /var/log/nginx/answer_error.log;
}

Aktiviere & teste:

sudo ln -s /etc/nginx/sites-available/answer.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

SSL aktivieren

sudo certbot --nginx -d qa.example.com

Nun erreichbar unter: https://qa.example.com

7. Ersteinrichtung

Öffne die Domain im Browser: https://qa.example.com

Du wirst durch den Setup-Wizard geführt:

  • Admin-Account erstellen
  • Community-Name, Logo, Beschreibung
  • Kategorien / Tags einrichten

8. Wartung & Updates

Logs anzeigen

sudo docker compose logs -f

Container stoppen/starten

sudo docker compose stop
sudo docker compose start

Auf neue Version updaten

sudo docker compose pull
sudo docker compose up -d

Datenbank sichern

sudo docker exec answer_db mysqldump -u root -prootpass answer > /opt/answer/backup_$(date +%F).sql

9. Backup & Wiederherstellung

Backup (Datenbank + Uploads):

sudo tar czf /root/answer_backup_$(date +%F).tar.gz /opt/answer/

Restore:

sudo tar xzf /root/answer_backup_DATE.tar.gz -C /
sudo docker compose up -d

10. Tipps & Best Practices

Sicherheit

  • Stelle sicher, dass nur Ports 80/443 öffentlich erreichbar sind
  • Nutze starke Passwörter für DB & Admin
  • fail2ban aktivieren gegen Login-Angriffe
  • Regelmäßige Backups automatisieren (Cronjob)

Performance

  • Aktiviere proxy_cache in Nginx
  • Verwende SSD-Speicher für DB-Container
  • Reduziere Container-Logs regelmäßig (logrotate)

Monitoring

  • docker stats zur Ressourcenkontrolle
  • Optional: Integration mit Netdata oder Prometheus

E-Mail-Integration Für Registrierungen und Benachrichtigungen:

SMTP_HOST: smtp.example.com
SMTP_PORT: 587
SMTP_USER: noreply@example.com
SMTP_PASSWORD: DEIN_PASSWORT

11. Deinstallation

cd /opt/answer
sudo docker compose down -v
sudo rm -rf /opt/answer

Mit Docker lässt sich Apache Answer in wenigen Minuten produktiv einsetzen. Durch das Container-Setup ist das System leicht wartbar, update-sicher und bestens geeignet für eigene Wissenscommunities, Supportforen oder interne Q&A-Plattformen.