- Veröffentlicht am
- • How2-Host
Apache Answer mit Docker installieren – einfache Anleitung für dein Q&A-System
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
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
fail2banaktivieren gegen Login-Angriffe- Regelmäßige Backups automatisieren (Cronjob)
Performance
- Aktiviere
proxy_cachein Nginx - Verwende SSD-Speicher für DB-Container
- Reduziere Container-Logs regelmäßig (
logrotate)
Monitoring
docker statszur 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.